// 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)); }
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)); }
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(); } }
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")); }
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)); }
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)); }
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)); }
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)); }
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); }
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)); }
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); }