public void EditScheme(SpecialSchemeViewModel model) { var enumMonth = (Months)model.SpecialScheme.DisplayMonthId; var currentDate = DateTime.Now; var month = currentDate.Month > model.SpecialScheme.DisplayMonthId ? masterService.FindAndCreateMonth(enumMonth.ToString(), currentDate.AddYears(1).Year) : masterService.FindAndCreateMonth(enumMonth.ToString(), currentDate.Year); var specialScheme = SpecialSchemeModel.ToDomainModel(model.SpecialScheme); specialScheme.MonthId = month.Id; if (specialScheme.Id > 0) { masterService.UpdateSpecialScheme(specialScheme); } else { var regionIds = new[] { model.SpecialScheme.RegionId ?? 0 }.ToList(); var stateIds = new[] { model.SpecialScheme.StateId ?? 0 }.ToList(); var dealerIds = new[] { model.SpecialScheme.DealerId ?? 0 }.ToList(); if (model.SpecialScheme.RegionId.HasValue && model.SpecialScheme.RegionId > 0) { if (model.SpecialScheme.StateId.HasValue && model.SpecialScheme.StateId > 0) { if (model.SpecialScheme.DealerId.HasValue && model.SpecialScheme.DealerId <= 0) { dealerIds = masterService.FindDealers(x => x.StateId == model.SpecialScheme.StateId).Select(x => x.Id).ToList(); } } else { stateIds = masterService.FindStates(x => x.RegionId == model.SpecialScheme.RegionId).Select(x => x.Id).ToList(); dealerIds = masterService.FindDealers(x => stateIds.Contains(x.StateId)).Select(x => x.Id).ToList(); } } else { regionIds = masterService.GetAllRegions().Select(x => x.Id).ToList(); stateIds = masterService.FindStates(x => regionIds.Contains(x.RegionId)).Select(x => x.Id).ToList(); dealerIds = masterService.FindDealers(x => stateIds.Contains(x.StateId)).Select(x => x.Id).ToList(); } var schemeList = (from region in regionIds from state in stateIds from dealer in dealerIds select new SpecialScheme { Id = 0, Name = specialScheme.Name, RegionId = region, StateId = state, DealerId = dealer, Description = specialScheme.Description, MonthId = month.Id }).ToList(); masterService.AddSpecialScheme(schemeList); } }
public ActionResult SpecialSchemes() { var model = new SpecialSchemeViewModel { SpecialSchemes = masterService.GetSpecialSchemes().Select(SpecialSchemeModel.FromDomainModel) }; ViewBag.List = Session["BreadcrumbList"]; return View(model); }
public ActionResult EditScheme(int id) { var model = new SpecialSchemeViewModel { SpecialScheme = id > 0 ? SpecialSchemeModel.FromDomainModel(masterService.GetSpecialScheme(id)) : new SpecialSchemeModel(), Regions = masterService.GetAllRegions().Select(x => new KeyValuePair<int, string>(x.Id, x.Name)).ToList(), States = id > 0 ? masterService.GetAllStates().Select(x => new KeyValuePair<int, string>(x.Id, x.Name)).ToList() : new List<KeyValuePair<int, string>>(), Dealers = id > 0 ? masterService.GetAllDealers().Select(x => new KeyValuePair<int, string>(x.Id, x.Name)).ToList() : new List<KeyValuePair<int, string>>(), Months = Enumeration.GetAll<Months>(), }; model.SpecialScheme.DisplayMonthId = id > 0 ? masterService.GetMonthIndex(model.SpecialScheme.Month.Split('-')[0]) : DateTime.Now.Month; return PartialView("EditScheme", model); }