public static IList<Territory> GetAllChildTerritories(Territory territory) { IList<Territory> result = territory.SubTerritories; foreach (Territory terr in result) { IList<Territory> subTer = GetAllChildTerritories(terr); result = result.Concat(subTer).ToList(); } return result; }
public IList<Territory> GetSubTerritories(Territory parent) { ISession session = HBManager.Instance.GetSession(); IList<Territory> result = null; if (parent == null) result = session.CreateCriteria(typeof(Territory)) .Add(Expression.IsNull("ParentTerritory")).List<Territory>(); else result = session.CreateCriteria(typeof(Territory)) .Add(Expression.Eq("ParentTerritory", parent)).List<Territory>(); return result; }
public static IList<CustomerFacility> GetFacilities(string name,Customer customer, Territory territory) { Repository<CustomerFacility, Guid> repo = new Repository<CustomerFacility, Guid>(); var result = repo.GetAll() .Where(fac => fac.Name.Contains(name)); if (customer != null) result = result.Where(fac => fac.Customer.CustomerID == customer.CustomerID); if (territory != null) { result = result.Where(fac => fac.Territory.TerritoryID == territory.TerritoryID); IList<Territory> allTerr = GetAllChildTerritories(territory); allTerr.Add(territory); var allTerrId = from pG in allTerr select pG.TerritoryID; result = from p in result where allTerrId.Contains(p.Territory.TerritoryID) select p; } return result.ToList(); }
public static IList<Territory> GetSubTerritories(Territory parent) { return salesRepository.GetSubTerritories(parent); }
public static IList<Order> GetOrders(Customer customer, Employee emp, Territory terr, DateTime? startDate, DateTime? endDate, Dictionary orderStatus) { Repository<Order, Guid> rep = new Repository<Order, Guid>(); var result = from o in rep.GetQueryable() select o; if (customer != null) result = result.Where(o => o.CustomerFacility.Customer == customer); if (emp != null) result = result.Where(o => o.Employee == emp); if (terr != null) result = result.Where(o => o.Territory == terr); if (orderStatus != null) result = result.Where(o => o.OrderStatus == orderStatus); if (startDate.HasValue) result = result.Where(o => o.OrderDate > startDate.Value); if (endDate.HasValue) result = result.Where(o => o.OrderDate < endDate.Value); return result.ToList(); }