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 UsersCollectionBuilder : EntityCollectionBuilderBase { private bool deleted; public UsersCollectionBuilder(ObservablesContext context) : base(context) { } protected override IQueryable OnSetQuery(IQueryable query) { if (!deleted) { return query.Where(x => !x.Deleted); } else { return query; } } public virtual UsersCollectionBuilder WithDeleted() { deleted = true; return this; } public virtual UsersCollectionBuilder WithContacts() { return AddQueryStep(2, (query) => { return query.Include(x => x.Contact); }); } public virtual UsersCollectionBuilder WithAddress() { return AddQueryStep(3, (query) => { return query.Include(x => x.Address); }); } public virtual UsersCollectionBuilder WithOrganization() { return AddQueryStep(4, (query) => { return query.Include(x => x.Organization); }); } } }