Exemple #1
0
        // GET: Offer
        public ActionResult Index()
        {
            OfferListViewModel model = new OfferListViewModel();

            model.OfferList = new List <OfferViewModel>();
            //Pull data from database and display in table.
            CompanyService companyService = new CompanyService();
            OfferService   offerService   = new OfferService();

            var company   = base.UserCompany;
            var offerList = offerService.GetAllOffers(company.Id);

            foreach (var item in offerList)
            {
                OfferViewModel offerViewModel = new OfferViewModel();
                offerViewModel.Title        = item.Title;
                offerViewModel.Description  = item.Description;
                offerViewModel.Url          = item.Url;
                offerViewModel.Category     = item.Category;
                offerViewModel.TotalClaimed = item.TotalClaimed;
                offerViewModel.TotalCodes   = item.TotalCodes;
                model.OfferList.Add(offerViewModel);
                offerViewModel.Id = item.Id;
            }

            return(View(model));
        }
Exemple #2
0
        public ActionResult OfferList()
        {
            var model = new OfferListViewModel()
            {
                Offers = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(_offerService.GetOffers(i => i.Game, i => i.UserProfile, i => i.Order).ToList())
            };

            return(View(model));
        }
        public async Task <ActionResult> Index(OfferListViewModel model)
        {
            model.Filter.PageSize     = PageSize;
            Session[FilterSessionKey] = model.Filter;

            var result = await OfferFacade.ListOffersAsync(model.Filter);

            var newModel = await InitializeOfferListViewModel(result);

            return(View("OfferListView", newModel));
        }
Exemple #4
0
 public static Offer ToModel(this OfferListViewModel offerView)
 {
     return(new Offer()
     {
         Id = offerView.Id,
         Title = offerView.Title,
         Description = offerView.Description,
         ValidUntil = offerView.ValidUntil,
         DateCreated = offerView.DateCreated
     });
 }
        public void OnGet(int id)
        {
            var menuItem = _offersService.GetById(id);

            if (menuItem == null)
            {
                ErrorMessage = $"There is no offer with ID: {id}";
            }
            else
            {
                Offer = menuItem.ToOfferListViewModel();
            }
        }
Exemple #6
0
 public IActionResult OnPost(OfferListViewModel offer)
 {
     if (ModelState.IsValid)
     {
         var domainModel = offer.ToModel();
         var response    = _offersService.Create(domainModel);
         if (!response.IsSuccessfull)
         {
             ErrorMessage = response.Message;
             return(Page());
         }
     }
     return(RedirectToPage("/Admin/OffersList"));
 }
Exemple #7
0
        public ActionResult ListOffers(int page = 1, int pageSize = 5)
        {
            var countOffers     = OfferService.GetOffersCount();
            var totalPagesCount = (int)Math.Ceiling(1D * countOffers / pageSize);

            if (page > totalPagesCount)
            {
                page = 1;
            }
            var items = OfferService.GetOffers(page, pageSize).ToList <Offer>();

            var model = OfferListViewModel.CreateOfferListViewModel(page, pageSize, countOffers, totalPagesCount, items);

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Exemple #8
0
        public PartialViewResult OfferListInfo(SearchOffersInfoViewModel searchInfo)
        {
            searchInfo.SearchString = searchInfo.SearchString ?? "";
            var offers = _offerService.GetOffers(m => m.UserProfileId == searchInfo.UserId && m.State == OfferState.active, o => o.Game);

            var modelOffers = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(offers.ToList());
            IList <GameViewModel> gameList = new List <GameViewModel>();
            var offerViewModels            = modelOffers.ToList();

            foreach (var offer in offerViewModels)
            {
                GameViewModel game = new GameViewModel()
                {
                    Name = offer.Game.Name, Value = offer.Game.Value
                };
                if (!gameList.Contains(game))
                {
                    gameList.Add(game);
                }
            }
            var games = gameList;

            modelOffers = offerViewModels.Where(o => o.Header.Replace(" ", "").ToLower().Contains(searchInfo.SearchString.Replace(" ", "").ToLower()) || o.Discription.Replace(" ", "").ToLower().Contains(searchInfo.SearchString.Replace(" ", "").ToLower()));
            if (searchInfo.Game != null && searchInfo.Game != "all")
            {
                modelOffers = modelOffers.Where(m => m.Game.Value == searchInfo.Game);
            }

            var viewModels = modelOffers.ToList();
            var model      = new OfferListViewModel
            {
                Games    = games,
                Offers   = viewModels.Skip((searchInfo.Page - 1) * pageSizeInUserInfo).Take(pageSizeInUserInfo),
                PageInfo = new PageInfoViewModel
                {
                    PageSize   = pageSizeInUserInfo,
                    PageNumber = searchInfo.Page,
                    TotalItems = viewModels.Count
                },
                SearchInfo = new SearchViewModel
                {
                    SearchString = searchInfo.SearchString,
                    Page         = searchInfo.Page
                }
            };

            return(PartialView("_OfferListInfo", model));
        }
Exemple #9
0
        public ViewResult Closed()
        {
            var currentUserId = User.Identity.GetUserId();
            IEnumerable <Offer> offersActive   = _offerService.GetOffers(m => m.UserProfileId == currentUserId && m.State == OfferState.active, o => o.Game).ToList();
            IEnumerable <Offer> offersInactive = _offerService.GetOffers(m => m.UserProfileId == currentUserId && m.State == OfferState.inactive, o => o.Game).ToList();
            IEnumerable <Offer> offersClosed   = _offerService.GetOffers(m => m.UserProfileId == currentUserId && m.State == OfferState.closed, o => o.Game).ToList();
            var offerViewModels      = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(offersClosed.ToList());
            OfferListViewModel model = new OfferListViewModel
            {
                Offers              = offerViewModels.OrderByDescending(o => o.DateCreated),
                ActiveOffersCount   = offersActive.Count(),
                InactiveOffersCount = offersInactive.Count(),
                CloseOffersCount    = offersClosed.Count()
            };

            return(View(model));
        }
Exemple #10
0
        public async Task <ActionResult> List(string game = "csgo")
        {
            var offers = await offerService.GetOffersAsync(o => o.Game.Value == game, i => i.Game, i => i.UserProfile);

            var model   = new OfferListViewModel();
            var gameObj = gameService.GetGameByValue(game);

            model.SearchInfo = new SearchOfferViewModel
            {
                Game = game
            };
            model.GameName = gameObj == null ? "" : gameObj.Name;
            model.Offers   = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(offers).Take(pageSize);
            model.PageInfo = new PageInfoViewModel
            {
                PageNumber = 1,
                PageSize   = pageSize,
                TotalItems = offers.Count()
            };
            return(View(model));
        }
Exemple #11
0
        private OfferListViewModel OffersToOfferListViewModel(OfferListPart offerListPart, Offers offers)
        {
            var offerListViewModel = new OfferListViewModel {
                Title = offerListPart.Title
            };

            if (offers == null || offers.Offer == null)
            {
                return(offerListViewModel);
            }

            var offer = offers.Offer.FirstOrDefault(o => o.ProductOffers != null && o.ProductOffers.ProductOffer != null && o.ProductOffers.ProductOffer.Length > 0) ??
                        offers.Offer[0];

            offerListViewModel.Title      = offerListPart.Title;
            offerListViewModel.Id         = offer.Id;
            offerListViewModel.Name       = offer.Name;
            offerListViewModel.Type       = offer.Type;
            offerListViewModel.Image      = offer.Image;
            offerListViewModel.SalesPitch = offer.SalesPitch;
            if (offer.ProductOffers == null || offer.ProductOffers.ProductOffer == null)
            {
                return(offerListViewModel);
            }

            if (offer.ProductOffers.ProductOffer.Length > offerListPart.MaxNProducts)
            {
                var limitedProductOffers = new ProductOffer[offerListPart.MaxNProducts];
                for (var i = 0; i < offerListPart.MaxNProducts; i++)
                {
                    limitedProductOffers[i] = offer.ProductOffers.ProductOffer[i];
                }
                offerListViewModel.ProductOfferViewModels = limitedProductOffers.Select(po => ProductOfferToProductOfferViewModel(offer.Id, po)).ToArray();
            }
            else
            {
                offerListViewModel.ProductOfferViewModels = offer.ProductOffers.ProductOffer.Select(po => ProductOfferToProductOfferViewModel(offer.Id, po)).ToArray();
            }
            return(offerListViewModel);
        }
Exemple #12
0
        public async Task <ActionResult> OfferSearch(SearchOfferViewModel search)
        {
            Sort sort = (Sort)Enum.Parse(typeof(Sort), search.SortBy, true);


            List <Offer> offers = await offerService.GetOffersAsync(o => o.Game.Value == search.Game, i => i.Game, i => i.UserProfile);

            if (search.PersonalAccount)
            {
                offers = offers.Where(o => o.PersonalAccount).ToList();
            }

            if (search.IsBanned)
            {
                offers = offers.Where(o => o.IsBanned).ToList();
            }

            //offers = offers.Where(o => search.IsBanned && o.IsBanned).ToList();
            //offers = offers.Where(o => search.Game == o.Game.Value).ToList();

            if (offers.Any() && search.PriceFrom == 0)
            {
                search.PriceFrom = offers.Min(o => o.Price);
            }
            if (offers.Any() && search.PriceTo == 0)
            {
                search.PriceTo = offers.Max(o => o.Price);
            }
            offers = offers.Where(o => search.PriceFrom <= o.Price && search.PriceTo >= o.Price).ToList();
            switch (sort)
            {
            case Sort.BestSeller:
                offers = offers.OrderBy(o => o.UserProfile.Rating).ToList();
                break;

            case Sort.Newest:
                offers = offers.OrderBy(o => o.CreatedDate).ToList();
                break;

            case Sort.PriceAsc:
                offers = offers.OrderBy(o => o.Price).ToList();
                break;

            case Sort.PriceDesc:
                offers = offers.OrderByDescending(o => o.Price).ToList();
                break;

            default:
                offers = offers.OrderBy(o => o.UserProfile.Rating).ToList();
                break;
            }
            var modelOffers = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(offers);

            var model = new OfferListViewModel()
            {
                Offers   = modelOffers.Skip((search.Page - 1) * pageSize).Take(pageSize).ToList(),
                PageInfo = new PageInfoViewModel
                {
                    PageNumber = search.Page,
                    PageSize   = pageSize,
                    TotalItems = modelOffers.Count()
                }
            };



            foreach (var item in model.SortBy)
            {
                if (item.Value == search.SortBy.ToString())
                {
                    item.Selected = true;
                }
                else
                {
                    item.Selected = false;
                }
            }
            return(PartialView("_OfferTable", model));
        }
Exemple #13
0
        private OfferListViewModel SearchOffers(SearchViewModel searchInfo, string[] filters)
        {
            if (filters == null)
            {
                filters = new string[0];
            }

            searchInfo.SearchString = searchInfo.SearchString ?? "";
            searchInfo.Game         = searchInfo.Game ?? "csgo";

            decimal minGamePrice        = 0;
            decimal maxGamePrice        = 0;
            int     page                = searchInfo.Page;
            string  sort                = searchInfo.Sort;
            bool    isOnline            = searchInfo.IsOnline;
            bool    searchInDiscription = searchInfo.SearchInDiscription;
            string  searchString        = searchInfo.SearchString;
            string  game                = searchInfo.Game;
            int     totalItems          = 0;
            decimal priceFrom           = searchInfo.PriceFrom;
            decimal priceTo             = searchInfo.PriceTo;



            //offer.Header.Replace(" ", "").ToLower().Contains(searchString.Replace(" ", "").ToLower()) || (searchInDescription ? (offer.Discription.Replace(" ", "").ToLower().Contains(searchString.Replace(" ", "").ToLower())) : searchInDescription)
            IQueryable <Offer> foundOffers = _offerService.SearchOffers(game, sort, ref isOnline, ref searchInDiscription,
                                                                        searchString, ref page, pageSize, ref totalItems, ref minGamePrice, ref maxGamePrice, ref priceFrom, ref priceTo, filters);

            if (searchInfo.IsOnline)
            {
                if (HttpRuntime.Cache["LoggedInUsers"] is Dictionary <string, DateTime> loggedOnUsers)
                {
                    foundOffers = foundOffers.Where(o => loggedOnUsers.Any(u => u.Key == o.UserProfile.Name));
                }
            }

            var offerViewModels = Mapper.Map <IEnumerable <Offer>, IEnumerable <OfferViewModel> >(foundOffers.ToList());


            var filterDict = new Dictionary <Model.Models.Filter, FilterItem>();

            var viewModels = offerViewModels.ToList();

            foreach (var offer in viewModels)
            {
                if (offer.Filters.Count != offer.FilterItems.Count)
                {
                    continue;
                }
                for (var i = 0; i < offer.Filters.Count; i++)
                {
                    filterDict.Add(offer.Filters[i], offer.FilterItems[i]);
                }
                offer.FilterFilterItem = filterDict;
                filterDict             = new Dictionary <Model.Models.Filter, FilterItem>();
            }


            var model = new OfferListViewModel()
            {
                Filters    = _filterService.GetFiltersAsNoTracking(m => m.Game.Value == searchInfo.Game, i => i.Game).ToList(),
                Game       = _gameService.GetGameByValue(searchInfo.Game),
                Offers     = viewModels.Skip((page - 1) * pageSize).Take(pageSize).ToList(),
                SearchInfo = new SearchViewModel()
                {
                    SearchString        = searchString,
                    IsOnline            = isOnline,
                    SearchInDiscription = searchInDiscription,
                    MinGamePrice        = minGamePrice,
                    MaxGamePrice        = maxGamePrice,
                    PriceFrom           = priceFrom,
                    PriceTo             = priceTo,
                    Game = game,
                    Page = 1,
                    Sort = sort
                },
                PageInfo = new PageInfoViewModel
                {
                    PageNumber = page,
                    PageSize   = pageSize,
                    TotalItems = viewModels.Count
                }
            };

            model.SearchInfo.SortItems = new List <SelectListItem>
            {
                new SelectListItem {
                    Value = "bestSeller", Text = @"Лучшие продавцы"
                },
                new SelectListItem {
                    Value = "priceDesc", Text = @"От дорогих к дешевым"
                },
                new SelectListItem {
                    Value = "priceAsc", Text = @"От дешевых к дорогим"
                },
                new SelectListItem {
                    Value = "newestOffer", Text = @"Самые новые"
                }
            };

            foreach (var item in model.SearchInfo.SortItems)
            {
                item.Selected = item.Value == searchInfo.Sort;
            }

            return(model);
        }