Exemple #1
0
        public async Task <ActionResult> getAllCoupons(string id)
        {
            try
            {
                //  List<Coupon> coupons =await  _couponRepository.GetAvailableCoupon();
                Task <List <Coupon> > TaskGetCounpon       = _couponRepository.GetAvailableCoupon();
                Task <List <string> > TaskGetCouponIdsUsed = _orderRepository.GetListCouponIdInOrderOfUser(id);
                await Task.WhenAll(TaskGetCounpon, TaskGetCouponIdsUsed);

                List <Coupon> coupons       = TaskGetCounpon.Result;
                List <string> couponIdsUsed = TaskGetCouponIdsUsed.Result;

                List <string> listCouponIdsAvailable = new List <string>();

                for (int i = 0; i < coupons.Count; i++)
                {
                    listCouponIdsAvailable.Add(coupons[i].CouponId);
                }
                //  List<string> couponIdsUsed = await _orderRepository.GetListCouponIdInOrderOfUser(id);
                List <Coupon> returnCoupons = new List <Coupon>();
                for (int i = 0; i < couponIdsUsed.Count; i++)
                {
                    if (listCouponIdsAvailable.Contains(couponIdsUsed[i]))
                    {
                        listCouponIdsAvailable.Remove(couponIdsUsed[i]);
                    }
                }

                for (int i = 0; i < coupons.Count; i++)
                {
                    if (listCouponIdsAvailable.Contains(coupons[i].CouponId))
                    {
                        returnCoupons.Add(coupons[i]);
                    }
                }
                string json = JsonConvert.SerializeObject(returnCoupons);
                return(Ok(json));
            }
            catch (Exception e)
            {
                return(BadRequest(JsonConvert.SerializeObject(new { Error = e.Message })));
            }
        }