コード例 #1
0
 // для списка заявок на ремонт контроллера: отсеивает список
 void ApplyCRepOrderListFilters(CreporderList_VM model)
 {
     //фильтры номера и адреса ТП
     model.Orders = MyLogic.ApplyFilters(model.Orders, model.HSFilter, model.AdressFilter);
     //фильтры по номеру предприятия, если предриятие = 0, то отображаем все заявки
     if(model.Enterprise!=0)
     {
         model.Orders = model.Orders.Where(o => o.Heat_Station.HS_Enterprise == model.Enterprise);
     }
     // фильтры по галкам: если какойто фильтр не отмечен галкой то удаляем соответствующие заявки из выборки
     if(!model.BilledFilter)
     {
         model.Orders = model.Orders.Except(model.Orders.Where(o => o.CRO_billedDate != null));
     }
     if (!model.ClosedFilter)
     {
         model.Orders = model.Orders.Except(model.Orders.Where(o =>
             o.CRO_billedDate == null &&
             o.CRO_closedDate!=null
             ));
     }
     if (!model.ExaminedFilter)
     {
         model.Orders = model.Orders.Except(model.Orders.Where(o =>
             o.CRO_billedDate == null &&
             o.CRO_closedDate == null &&
             o.CRO_examinedDate != null
             ));
     }
     if (!model.SendedFilter)
     {
         model.Orders = model.Orders.Except(model.Orders.Where(o =>
         o.CRO_billedDate == null &&
         o.CRO_closedDate == null &&
         o.CRO_examinedDate == null &&
         o.CRO_sendedDate !=null
         ));
     }
     if (!model.NotSendedFilter)
     {
         model.Orders = model.Orders.Except(model.Orders.Where(o =>
             o.CRO_billedDate == null &&
             o.CRO_closedDate == null &&
             o.CRO_examinedDate == null &&
             o.CRO_sendedDate == null
             ));
     }
     //фильтры по датам обнаружения
     if (model.StartRevDate!=null)
     {
         model.Orders = model.Orders.Where(o => o.CRO_revealedDate>=DateTime.Parse(model.StartRevDate));
     }
     if (model.FinishRevDate != null)
     {
         model.Orders = model.Orders.Where(o => o.CRO_revealedDate <= DateTime.Parse(model.FinishRevDate));
     }
 }
コード例 #2
0
 void ValidateCreporderList_VM(CreporderList_VM model, ModelStateDictionary state)
 {
     state.Clear();
     //введенные даты, должны иметь правильный формат
     DateTime Date;
     try
     {
         if (model.StartRevDate!=null)Date = DateTime.Parse(model.StartRevDate);
         if (model.FinishRevDate!=null)Date = DateTime.Parse(model.FinishRevDate);
     }
     catch
     {
         state.AddModelError("", "Даты необходимо ввести в формате ДД.ММ.ГГГГ");
     }
 }
コード例 #3
0
        public ActionResult CreporderList(CreporderList_VM model, bool ApplyDefaultFilters = true)
        {
            //если в метод передана модель флагом needToApplyFilters, то значит пользователь применил фильтр
            //если нет, то применяются фильтры по умолчанию
            model.Orders = repairRepository.CRepOrders;
            model.Enterprises = dataRepository.Enterprises;

            if (ApplyDefaultFilters==true)
            {
                model.Enterprise = userRepository.Users.SingleOrDefault(u => u.Name == System.Web.HttpContext.Current.User.Identity.Name).Enterprise;
                model.UserEnterprise = model.Enterprise;
                model.HSFilter = "";
                model.AdressFilter = "";
                model.NotSendedFilter = true;
                model.SendedFilter = true;
                model.ExaminedFilter = true;
                model.ClosedFilter = false;
                model.BilledFilter = false;
            }

            ValidateCreporderList_VM(model, ModelState);
            if(ModelState.IsValid)
            {
                ApplyCRepOrderListFilters(model); //применим фильтры
            }

            return View(model);
        }