示例#1
0
        // perfumeId is used in asp-route-perfumeId
        public RedirectToActionResult AddToShoppingCart(int perfumeId)
        {
            var selectedPerfume = _perfumeRepository.GetAllPerfumes().FirstOrDefault(p => p.Id == perfumeId);

            if (selectedPerfume != null)
            {
                _shoppingCart.AddToCart(selectedPerfume, 1);
            }
            return(RedirectToAction("Index"));
        }
        public async Task <PerfumeResponse> GetAllPerfumes()
        {
            string code    = string.Empty;
            string message = string.Empty;
            // string requestId = string.Empty;
            string          requestId       = _utilities.RandomGuid();
            string          ipAddress       = _utilities.GetCustomerIP(requestId);
            PerfumeResponse perfumeResponse = new PerfumeResponse();

            try
            {
                _logger.Info($"_requestId=>{requestId}=> getting all perfumes for Client With IpAddress => {ipAddress}");
                perfumeResponse.code         = "00";
                perfumeResponse.message      = "Successful";
                perfumeResponse.requestId    = requestId;
                perfumeResponse.PerfumeModel = _perfumeRepository.GetAllPerfumes();
            }
            catch (Exception ex)
            {
                _logger.Error($"_requestId=>{requestId}=> getting all perfumes for Client With IpAddress => {ipAddress} failed with Exception=> {ex}");
                perfumeResponse.code         = "99";
                perfumeResponse.message      = "UnSuccessful";
                perfumeResponse.requestId    = requestId;
                perfumeResponse.PerfumeModel = null;
            }
            return(perfumeResponse);
        }
示例#3
0
        //public ViewResult List()
        //{
        //    PerfumesListViewModel perfumesListViewModel = new PerfumesListViewModel
        //    {
        //        Perfumes = _perfumeRepository.GetAllPerfumes(),

        //        CurrentCategory = "For Her & For Him"
        //    };

        //    return View(perfumesListViewModel);
        //}


        public ViewResult List(string category, string searchString, string sortOrder)
        {
            IEnumerable <Perfume> perfumes;
            string currentCategory;

            perfumes        = _perfumeRepository.GetAllPerfumes();
            currentCategory = "All Perfumes";

            if (string.IsNullOrEmpty(category))
            {
                perfumes        = _perfumeRepository.GetAllPerfumes();
                currentCategory = "All Perfumes";
            }
            else
            {
                perfumes = _perfumeRepository.GetAllPerfumes()
                           .Where(p => p.Category.CategoryName == category);

                currentCategory = _categoryRepository.GetAllCategories()
                                  .FirstOrDefault(c => c.CategoryName == category).CategoryName;
            }

            if (!string.IsNullOrEmpty(searchString))
            {
                perfumes = _perfumeRepository.GetAllPerfumesByName(searchString);
            }

            ViewBag.NameSortParam     = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.PriceSortParam    = sortOrder == "price_desc" ? "price_asc" : "price_desc";
            ViewBag.BrandSortParam    = sortOrder == "brand_desc" ? "brand_asc" : "brand_desc";
            ViewBag.CapacitySortParam = sortOrder == "capacity_desc" ? "capacity_asc" : "capacity_desc";

            switch (sortOrder)
            {
            case "name_desc":
                perfumes = perfumes.OrderByDescending(p => p.Name);
                break;

            case "price_asc":
                perfumes = perfumes.OrderBy(p => p.Price);
                break;

            case "price_desc":
                perfumes = perfumes.OrderByDescending(p => p.Price);
                break;

            case "brand_asc":
                perfumes = perfumes.OrderBy(p => p.Brand);
                break;

            case "brand_desc":
                perfumes = perfumes.OrderByDescending(p => p.Brand);
                break;

            case "capacity_asc":
                perfumes = perfumes.OrderBy(p => p.Capacity);
                break;

            case "capacity_desc":
                perfumes = perfumes.OrderByDescending(p => p.Capacity);
                break;

            default:
                perfumes = perfumes.OrderBy(p => p.Name);
                break;
            }

            var perfumeListViewModel = new PerfumesListViewModel
            {
                Perfumes        = perfumes,
                SearchString    = searchString,
                CurrentCategory = currentCategory
            };

            return(View(perfumeListViewModel));
        }