public ActionResult PutVoucher(int id, VoucherUpdateRequest entity)
        {
            if (id != entity.Id)
            {
                return(BadRequest());
            }
            bool success = _voucherSer.Update(entity);

            if (success)
            {
                var updated = _voucherSer.GetById(entity.Id);
                return(Ok(updated));
            }
            return(Problem("Update failed!"));
        }
Esempio n. 2
0
        public bool Update(VoucherUpdateRequest entity)
        {
            Voucher existed = _vouRepo.GetById(entity.Id);

            if (existed == null)
            {
                return(false);
            }
            string   description       = entity.Description;
            int      quantity          = entity.Quantity;
            string   code              = entity.Code;
            DateTime beginDate         = entity.BeginDate;
            DateTime expiredDate       = entity.ExpiredDate;
            int      maxDiscount       = entity.MaxDiscountAmount;
            int      minRequiredAmount = entity.MinRequiredAmount;
            int      percentDiscount   = entity.PercentDiscount;
            int      proId             = entity.PromotionId;

            if (description != null)
            {
                if (!util.ValidRangeLengthInput(description, 1, 250))
                {
                    return(false);
                }
                existed.Description = description.Trim();
            }
            if (quantity > 0)
            {
                int used = existed.Quantity - existed.Available;
                if (quantity < used)
                {
                    return(false);
                }
                int marginQuantity = quantity - existed.Quantity;
                existed.Quantity   = quantity;
                existed.Available += marginQuantity;
            }
            if (code != null)
            {
                if (!util.ValidRangeLengthInput(code, 1, 20))
                {
                    return(false);
                }
                Voucher existedCode = _vouRepo.GetAll().FirstOrDefault(e => e.Code.Trim().ToLower().Equals(code.Trim().ToLower()));
                if (existedCode != null)
                {
                    if (existedCode.Id != entity.Id)
                    {
                        return(false);
                    }
                }
                existed.Code = code;
            }
            if (maxDiscount > 0)
            {
                existed.MaxDiscountAmount = maxDiscount;
            }
            if (minRequiredAmount > 0)
            {
                existed.MinRequiredAmount = minRequiredAmount;
            }
            if (percentDiscount > 0)
            {
                existed.PercentDiscount = percentDiscount;
            }
            if (proId > 0)
            {
                existed.PromotionId = proId;
            }
            if (beginDate.Millisecond > 0 && expiredDate.Millisecond > 0)
            {
                if (beginDate.CompareTo(expiredDate) >= 0)
                {
                    return(false);
                }
                existed.BeginDate   = beginDate;
                existed.ExpiredDate = expiredDate;
            }
            if (beginDate.Millisecond > 0 && expiredDate.Millisecond == 0)
            {
                if (beginDate.CompareTo(existed.ExpiredDate) >= 0)
                {
                    return(false);
                }
                existed.BeginDate = beginDate;
            }
            if (beginDate.Millisecond == 0 && expiredDate.Millisecond > 0)
            {
                if (existed.BeginDate.CompareTo(expiredDate) >= 0)
                {
                    return(false);
                }
                existed.ExpiredDate = expiredDate;
            }
            return(_vouRepo.Update(existed));
        }