public RouteMarketsViewModel GetRouteMarketsById(int routeId, int tenantId, string searchText = null) { var mc = _currentDbContext.MarketRouteMap.Where(r => r.MarketRouteId == routeId) .Select(c => new MarketRouteAccountViewModel() { MarketId = c.MarketId, MarketName = c.Market.Name, SortOrder = c.SortOrder }).OrderBy(x => x.SortOrder).ToList(); var accIds = mc.Select(x => x.MarketId); var ac = _currentDbContext.Markets.Where(x => !accIds.Contains(x.Id) && x.TenantId == tenantId && (searchText == null || x.Name.Contains(searchText) || x.Description.Contains(searchText))) .Select(x => new MarketRouteAccountViewModel() { MarketId = x.Id, MarketName = x.Name, }).ToList(); RouteMarketsViewModel marketRoutes = new RouteMarketsViewModel(); marketRoutes.SelectedMarkets = Mapper.Map(mc, new List <MarketRouteAccountViewModel>()); marketRoutes.AvailableMarkets = Mapper.Map(ac, new List <MarketRouteAccountViewModel>()); var routeViewModel = marketRoutes; routeViewModel.RouteId = routeId; return(routeViewModel); }
public ActionResult SaveRouteMarkets(RouteMarketsViewModel model) { model.MarketRouteAccounts = (List <SelectedMarketViewModel>)Newtonsoft.Json.JsonConvert.DeserializeObject(model.RouteMarketsEntries, typeof(List <SelectedMarketViewModel>)); _marketServices.SaveRouteMarkets(model, CurrentUserId); return(RedirectToAction("RouteMarkets", new { id = model.RouteId })); }
public ActionResult SearchAvailable(int id, string query) { var model = new RouteMarketsViewModel() { RouteId = id }; if (query != null) { model = _marketServices.GetRouteMarketsById(id, CurrentTenantId, query); } return(PartialView("_SearchAvailableResult", model)); }
public RouteMarketsViewModel SaveRouteMarkets(RouteMarketsViewModel model, int userId) { var routeId = model.RouteId; if (model.RouteId > 0) { var existingMarketIds = model.MarketRouteAccounts.Select(a => a.MarketId); var existingMaps = _currentDbContext.MarketRouteMap.Where(m => m.MarketRouteId == routeId && existingMarketIds.Contains(m.MarketId)).ToList(); foreach (var map in existingMaps) { var marketRouteItem = model.MarketRouteAccounts.FirstOrDefault(a => a.MarketId == map.MarketId); map.SortOrder = marketRouteItem.SortOrder; map.MarketRouteId = model.RouteId; map.MarketId = marketRouteItem.MarketId; _currentDbContext.Entry(map).State = EntityState.Modified; } var newMarkets = model.MarketRouteAccounts.Where(m => !existingMaps.Select(a => a.MarketId).Contains(m.MarketId)); foreach (var account in newMarkets) { MarketRouteMap cust = new MarketRouteMap(); cust.MarketRouteId = routeId; cust.SortOrder = account.SortOrder; cust.MarketId = account.MarketId; _currentDbContext.Entry(cust).State = EntityState.Added; } var deletedAccounts = _currentDbContext.MarketRouteMap.Where(m => m.MarketRouteId == routeId && !existingMarketIds.Contains(m.MarketId)).ToList(); foreach (var account in deletedAccounts) { _currentDbContext.Entry(account).State = EntityState.Deleted; } _currentDbContext.SaveChanges(); } _currentDbContext.SaveChanges(); return(model); }
public ActionResult RouteMarkets(int id) { if (!caSession.AuthoriseSession()) { return(Redirect((string)Session["ErrorUrl"])); } var model = new RouteMarketsViewModel() { RouteId = id }; if (id > 0) { ViewBag.RouteName = _marketServices.GetMarketRouteById(id).Name; model = _marketServices.GetRouteMarketsById(id, CurrentTenantId, null); model.RouteMarketsEntries = Newtonsoft.Json.JsonConvert.SerializeObject(model.SelectedMarkets); } return(View(model)); }