public async Task DeleteCouponConfig(GetCouponConfigInput input)
        {
            //Editing an existing coupon
            var couponConfig = _couponConfigRepository.FirstOrDefault(u => u.Id == input.CouponConfigId);

            couponConfig.IsDelete = true;
            await _couponConfigRepository.UpdateAsync(couponConfig);
        }
        public async Task <GetCouponConfigForEditDto> GetCouponConfigForEdit(GetCouponConfigInput input)
        {
            if (string.IsNullOrEmpty(input.CouponConfigId))
            {
                //Creating a new coupon
                var couponConfigDto = new GetCouponConfigForEditDto();

                return(couponConfigDto);
            }
            else
            {
                //Editing an existing coupon
                var couponConfig = _couponConfigRepository.FirstOrDefault(u => u.Id == input.CouponConfigId);

                var couponConfigDto = couponConfig.MapTo <GetCouponConfigForEditDto>();

                couponConfigDto.CouponImg = ConfigurationManager.AppSettings["ImgSiteAddress"] + couponConfigDto.CouponImg;

                return(couponConfigDto);
            }
        }
        public async Task <PagedResultDto <GetCouponConfigForEditDto> > GetCouponConfigList(GetCouponConfigInput input)
        {
            var couponConfig = _couponConfigRepository.GetAll()
                               .Where(u => u.IsDelete == false)
                               .WhereIf(!input.Filter.IsNullOrWhiteSpace(), u => u.CouponName == input.Filter);

            var couponConfigCount = await couponConfig.CountAsync();

            var couponConfigList = await couponConfig
                                   .OrderBy(input.Sorting)
                                   .PageBy(input)
                                   .ToListAsync();


            var couponConfigListDto = couponConfigList.MapTo <List <GetCouponConfigForEditDto> >();

            foreach (var item in couponConfigListDto)
            {
                item.SendCouponNum = _couponRepository.Count(a => a.CouponConfigId == item.Id);
            }

            return(new PagedResultDto <GetCouponConfigForEditDto>(
                       couponConfigCount,
                       couponConfigListDto
                       ));
        }