System.Collections.Generic.IEnumerable.Contains(ServiceRoute)

Here are the examples of the csharp api System.Collections.Generic.IEnumerable.Contains(ServiceRoute) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

19 Source : SharedFileServiceRouteManager.cs
with MIT License
from fanliang11

private async Task EntryRoutes(string file)
        {
            var oldRoutes = _routes?.ToArray();
            var newRoutes = (await GetRoutes(file)).ToArray();
            _routes = newRoutes;
            if (oldRoutes == null)
            {
                //触发服务路由创建事件。
                OnCreated(newRoutes.Select(route => new ServiceRouteEventArgs(route)).ToArray());
            }
            else
            {
                //旧的服务Id集合。
                var oldServiceIds = oldRoutes.Select(i => i.ServiceDescriptor.Id).ToArray();
                //新的服务Id集合。
                var newServiceIds = newRoutes.Select(i => i.ServiceDescriptor.Id).ToArray();

                //被删除的服务Id集合
                var removeServiceIds = oldServiceIds.Except(newServiceIds).ToArray();
                //新增的服务Id集合。
                var addServiceIds = newServiceIds.Except(oldServiceIds).ToArray();
                //可能被修改的服务Id集合。
                var mayModifyServiceIds = newServiceIds.Except(removeServiceIds).ToArray();

                //触发服务路由创建事件。
                OnCreated(
                    newRoutes.Where(i => addServiceIds.Contains(i.ServiceDescriptor.Id))
                        .Select(route => new ServiceRouteEventArgs(route))
                        .ToArray());

                //触发服务路由删除事件。
                OnRemoved(
                    oldRoutes.Where(i => removeServiceIds.Contains(i.ServiceDescriptor.Id))
                        .Select(route => new ServiceRouteEventArgs(route))
                        .ToArray());

                //触发服务路由变更事件。
                var currentMayModifyRoutes =
                    newRoutes.Where(i => mayModifyServiceIds.Contains(i.ServiceDescriptor.Id)).ToArray();
                var oldMayModifyRoutes =
                    oldRoutes.Where(i => mayModifyServiceIds.Contains(i.ServiceDescriptor.Id)).ToArray();

                foreach (var oldMayModifyRoute in oldMayModifyRoutes)
                {
                    if (!currentMayModifyRoutes.Contains(oldMayModifyRoute))
                        OnChanged(
                            new ServiceRouteChangedEventArgs(
                                currentMayModifyRoutes.First(
                                    i => i.ServiceDescriptor.Id == oldMayModifyRoute.ServiceDescriptor.Id),
                                oldMayModifyRoute));
                }
            }
        }

19 Source : SharedFileServiceRouteManager.cs
with Apache License 2.0
from steveleeCN87

private async Task EntryRoutes(string file)
        {
            var oldRoutes = _routes?.ToArray();
            var newRoutes = (await GetRoutes(file)).ToArray();
            _routes = newRoutes;
            if (oldRoutes == null)
            {
                //触发服务路由创建事件
                OnCreated(newRoutes.Select(route => new ServiceRouteEventArgs(route)).ToArray());
            }
            else
            {
                //旧的服务Id集合
                var oldServiceIds = oldRoutes.Select(i => i.ServiceDescriptor.Id).ToArray();
                //新的服务Id集合
                var newServiceIds = newRoutes.Select(i => i.ServiceDescriptor.Id).ToArray();

                //被删除的服务Id集合
                var removeServiceIds = oldServiceIds.Except(newServiceIds).ToArray();
                //新增的服务Id集合
                var addServiceIds = newServiceIds.Except(oldServiceIds).ToArray();
                //可能被修改的服务Id集合
                var mayModifyServiceIds = newServiceIds.Except(removeServiceIds).ToArray();

                //触发服务路由创建事件
                OnCreated(
                    newRoutes.Where(i => addServiceIds.Contains(i.ServiceDescriptor.Id))
                        .Select(route => new ServiceRouteEventArgs(route))
                        .ToArray());

                //触发服务路由删除事件
                OnRemoved(
                    oldRoutes.Where(i => removeServiceIds.Contains(i.ServiceDescriptor.Id))
                        .Select(route => new ServiceRouteEventArgs(route))
                        .ToArray());

                //触发服务路由变更事件
                var currentMayModifyRoutes =
                    newRoutes.Where(i => mayModifyServiceIds.Contains(i.ServiceDescriptor.Id)).ToArray();
                var oldMayModifyRoutes =
                    oldRoutes.Where(i => mayModifyServiceIds.Contains(i.ServiceDescriptor.Id)).ToArray();

                foreach (var oldMayModifyRoute in oldMayModifyRoutes)
                {
                    if (!currentMayModifyRoutes.Contains(oldMayModifyRoute))
                        OnChanged(
                            new ServiceRouteChangedEventArgs(
                                currentMayModifyRoutes.First(
                                    i => i.ServiceDescriptor.Id == oldMayModifyRoute.ServiceDescriptor.Id),
                                oldMayModifyRoute));
                }
            }
        }