// для списка заявок на ремонт контроллера: отсеивает список 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)); } }
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("", "Даты необходимо ввести в формате ДД.ММ.ГГГГ"); } }
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); }