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
19
Source : SharedFileServiceRouteManager.cs
with MIT License
from fanliang11
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
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));
}
}
}