예제 #1
0
 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;
 }
예제 #2
0
        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;
        }
예제 #3
0
        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();
        }
예제 #4
0
 public static IList<Territory> GetSubTerritories(Territory parent)
 {
     return salesRepository.GetSubTerritories(parent);
 }
예제 #5
0
        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();
        }