Skip to content

Commit e918f79

Browse files
committed
Updated extensions
1 parent 73ba3bb commit e918f79

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/EcsRx.Infrastructure.Ninject/NinjectDependencyContainer.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ public void Bind<TFrom, TTo>(BindingConfiguration configuration = null) where TT
7171

7272
foreach (var constructorArg in configuration.WithNamedConstructorArgs)
7373
{ binding.WithConstructorArgument(constructorArg.Key, constructorArg.Value); }
74+
75+
foreach (var constructorArg in configuration.WithTypedConstructorArgs)
76+
{ binding.WithConstructorArgument(constructorArg.Key, constructorArg.Value); }
7477
}
7578

7679
public void Bind<T>(BindingConfiguration configuration = null)

src/EcsRx/Extensions/IEnumerableExtensions.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static IEnumerable<ISystem> GetApplicableSystems(this IEnumerable<ISystem
3434
return systems.Where(x => x.Group.RequiredComponents.All(y => componentTypes.Contains(y)));
3535
}
3636

37-
public static IEnumerable<T> OrderByPriority<T>(this IEnumerable<T> listToPrioritize)
37+
public static IOrderedEnumerable<T> OrderByPriority<T>(this IEnumerable<T> listToPrioritize)
3838
{
3939
var priorityAttributeType = typeof(PriorityAttribute);
4040
return listToPrioritize.OrderBy(x =>
@@ -46,5 +46,18 @@ public static IEnumerable<T> OrderByPriority<T>(this IEnumerable<T> listToPriori
4646
return -priorityAttribute.Priority;
4747
});
4848
}
49+
50+
public static IOrderedEnumerable<T> ThenByPriority<T>(this IOrderedEnumerable<T> listToPrioritize)
51+
{
52+
var priorityAttributeType = typeof(PriorityAttribute);
53+
return listToPrioritize.ThenBy(x =>
54+
{
55+
var priorityAttributes = x.GetType().GetCustomAttributes(priorityAttributeType, true);
56+
if (priorityAttributes.Length <= 0) { return 0; }
57+
58+
var priorityAttribute = priorityAttributes.FirstOrDefault() as PriorityAttribute;
59+
return -priorityAttribute.Priority;
60+
});
61+
}
4962
}
5063
}

0 commit comments

Comments
 (0)