using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using System.Data.Entity; using Tango.BL.Enumerations; namespace Tango.BL.Builders { public class ActionLogsCollectionBuilder : EntityCollectionBuilderBase { public ActionLogsCollectionBuilder(ObservablesContext context) : base(context) { } public virtual ActionLogsCollectionBuilder WithUsers() { return AddQueryStep(1, (query) => { return query.Include(x => x.User).Include(x => x.User.Contact); }); } public virtual ActionLogsCollectionBuilder WithActionType(IEnumerable types) { return AddQueryStep(2, (query) => { if (types != null && types.Count() > 0) { int[] actionTypes = types.Select(x => (int)x).ToArray(); return query.Where(x => actionTypes.Contains(x.Type)); } else { return query; } }); } } }