Example #1
0
        public bool CanApplyDiscount(DiscountCoupon discountCoupon, int userId, out DiscountApplicationStatus status)
        {
            if (discountCoupon == null || !discountCoupon.Enabled)
            {
                status = DiscountApplicationStatus.InvalidCode;
                return(false);
            }
            if (discountCoupon.Expired)
            {
                status = DiscountApplicationStatus.Expired;
                return(false);
            }

            //first the dates
            if (discountCoupon.StartDate > DateTime.UtcNow)
            {
                status = DiscountApplicationStatus.InvalidCode;
                return(false);
            }

            if (discountCoupon.EndDate.HasValue && discountCoupon.EndDate < DateTime.UtcNow)
            {
                status = DiscountApplicationStatus.Expired;
                return(false);
            }
            //number of usages
            if (discountCoupon.TotalNumberOfTimes > 0)
            {
                var orderCount = _orderService.Count(x =>
                                                     x.DiscountId == discountCoupon.Id && x.PaymentStatus == PaymentStatus.Complete);
                if (orderCount >= discountCoupon.TotalNumberOfTimes)
                {
                    status = DiscountApplicationStatus.Exhausted;
                    return(false);
                }
            }
            if (discountCoupon.NumberOfTimesPerUser > 0)
            {
                var orderCount = _orderService.Count(x =>
                                                     x.DiscountId == discountCoupon.Id && x.PaymentStatus == PaymentStatus.Complete && x.UserId == userId);
                if (orderCount >= discountCoupon.NumberOfTimesPerUser)
                {
                    status = DiscountApplicationStatus.Exhausted;
                    return(false);
                }
            }

            status = DiscountApplicationStatus.Success;
            return(true);
        }
        public async Task <int> Count([FromBody] OrderMaster_OrderFilterDTO OrderMaster_OrderFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new MessageException(ModelState);
            }

            OrderFilter OrderFilter = ConvertFilterDTOToFilterEntity(OrderMaster_OrderFilterDTO);

            return(await OrderService.Count(OrderFilter));
        }
Example #3
0
        public async Task <ActionResult <int> > Count([FromBody] Order_OrderFilterDTO Order_OrderFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            OrderFilter OrderFilter = ConvertFilterDTOToFilterEntity(Order_OrderFilterDTO);
            int         count       = await OrderService.Count(OrderFilter);

            return(count);
        }
Example #4
0
        public ActionResult All(string sortOrder, int page = 1)
        {
            ViewBag.OrderDateSortParm   = string.IsNullOrEmpty(sortOrder) ? "orderdate_desc" : "";
            ViewBag.ReceiveDateSortParm = sortOrder == "ReceiveDate" ? "receivedate_desc" : "ReceiveDate";
            var orders = this.orders.All();

            switch (sortOrder)
            {
            case "orderdate_desc":
                orders = orders.OrderByDescending(p => p.OrderDate);
                break;

            case "receivedate_desc":
                orders = orders.OrderByDescending(p => p.ReceivedDate);
                break;

            case "ReceiveDate":
                orders = orders.OrderBy(p => p.ReceivedDate);
                break;

            default:
                orders = orders.OrderBy(p => p.OrderDate);
                break;
            }

            var allorders = orders
                            .Skip((page - 1) * 5)
                            .Take(5)
                            .To <OrderDetailsViewModel>()
                            .ToList();
            var totalPages = (int)Math.Ceiling(orders.Count() / 5M);
            var model      = new PageableOrdersViewModel
            {
                TotalPages  = totalPages,
                CurrentPage = page,
                Orders      = allorders,
                SortOrder   = sortOrder
            };

            return(View(model));
        }
        public ActionResult All(string sortOrder, int page = 1)
        {
            ViewBag.OrderDateSortParm = string.IsNullOrEmpty(sortOrder) ? "orderdate_desc" : "";
            ViewBag.ReceiveDateSortParm = sortOrder == "ReceiveDate" ? "receivedate_desc" : "ReceiveDate";
            var orders = this.orders.All();

            switch (sortOrder)
            {
                case "orderdate_desc":
                    orders = orders.OrderByDescending(p => p.OrderDate);
                    break;
                case "receivedate_desc":
                    orders = orders.OrderByDescending(p => p.ReceivedDate);
                    break;
                case "ReceiveDate":
                    orders = orders.OrderBy(p => p.ReceivedDate);
                    break;
                default:
                    orders = orders.OrderBy(p => p.OrderDate);
                    break;
            }

            var allorders = orders
                .Skip((page - 1) * 5)
                .Take(5)
                .To<OrderDetailsViewModel>()
                .ToList();
            var totalPages = (int)Math.Ceiling(orders.Count() / 5M);
            var model = new PageableOrdersViewModel
            {
                TotalPages = totalPages,
                CurrentPage = page,
                Orders = allorders,
                SortOrder = sortOrder
            };

            return View(model);
        }
Example #6
0
 public long Count(OrderSearchEntity SearchOrderEntity)
 {
     return(OrderService.Count(EmployeeEntity, SearchOrderEntity));
 }
Example #7
0
 public IHttpActionResult Count()
 {
     return(Ok(_service.Count()));
 }
 public int Count()
 {
     return(_orderService.Count());
 }
Example #9
0
        public async Task <IActionResult> Index()
        {
            ViewData["TotalOrder"] = await _orderService.Count();

            return(View());
        }
Example #10
0
 public int Count([FromUri] SearchOrderEntity SearchOrderEntity)
 {
     return(OrderService.Count(UserEntity, SearchOrderEntity));
 }