Example #1
0
        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);
        }
Example #2
0
        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 }));
        }
Example #3
0
        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));
        }
Example #4
0
        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);
        }
Example #5
0
        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));
        }