using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using System.Data.Entity; namespace Tango.BL.Builders { public class OrganizationsCollectionBuilder : EntityCollectionBuilderBase { public OrganizationsCollectionBuilder(ObservablesContext context) : base(context) { } protected override IQueryable OnSetQuery(IQueryable query) { return query.Include(x => x.Contact).Include(x => x.Address); } public virtual OrganizationsCollectionBuilder WithMachines() { return AddQueryStep(1, (query) => { return query.Include(x => x.Machines); }); } public virtual OrganizationsCollectionBuilder WithUsers() { return AddStep(2, () => { foreach (var organization in Entities) { new UsersCollectionBuilder(Context).Set(x => x.OrganizationGuid == organization.Guid).WithAddress().WithContacts().Build(); } }); } } }