public ActionResult <string> UpdateSpecial([FromBody] SpecialRequest specialRequest) { string result = string.Empty; if (specialRequest.Type == SpecialType.Price) { var priceSpecial = new PriceSpecial(specialRequest.ProductName, specialRequest.PurchaseQty, specialRequest.IsActive, specialRequest.Price); result = _specialsDataAccessor.Update(priceSpecial); } else if (specialRequest.Type == SpecialType.Limit) { var limitSpecial = new LimitSpecial(specialRequest.ProductName, specialRequest.PurchaseQty, specialRequest.IsActive, specialRequest.DiscountQty, specialRequest.DiscountAmount, specialRequest.Limit); result = _specialsDataAccessor.Update(limitSpecial); } else if (specialRequest.Type == SpecialType.Restriction) { var restrictionSpecial = new RestrictionSpecial(specialRequest.ProductName, specialRequest.PurchaseQty, specialRequest.IsActive, specialRequest.DiscountQty, specialRequest.DiscountAmount, specialRequest.RestrictionType); result = _specialsDataAccessor.Update(restrictionSpecial); } return(result); }
public void Setup() { validPriceSpecial = new PriceSpecial("Can of soup", 2, true, 5); zeroPriceSpecial = new PriceSpecial("Can of soup", 2, true, 0); lessThanTwoQuantityPriceSpecial = new PriceSpecial("Can of soup", 1, true, 5); validLimitSpecial = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 6); limitSpecialWithoutLimit = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 0); limitSpecialWithoutDiscountAmount = new LimitSpecial("Can of beans", 2, true, 1, 0, 4); limitSpecialWithoutDiscountQuantity = new LimitSpecial("Can of beans", 2, true, 0, 0.5f, 4); limitSpecialWithLimitLessThanPurchaseQty = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 1); limitSpecialWithLimitNotAMultipleOfPurchaseQtyPlusDiscountQty = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 5); validRestrictionSpecial = new RestrictionSpecial("Bananas", 2, true, 1, 0.5f, RestrictionType.Lesser); restrictionSpecialWithZeroDiscountAmount = new RestrictionSpecial("Bananas", 2, true, 1, 0, RestrictionType.Lesser); restrictionSpecialWithZeroDiscountQuantity = new RestrictionSpecial("Bananas", 2, true, 0, 0.5f, RestrictionType.Lesser); }
public void Setup() { validPriceSpecial = new PriceSpecial("Can of soup", 2, true, 5); validLimitSpecial = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 6); zeroPriceSpecial = new PriceSpecial("Can of soup", 2, true, 0); lessThanTwoQuantityPriceSpecial = new PriceSpecial("Can of soup", 1, true, 5); limitSpecialWithoutLimit = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 0); limitSpecialWithoutDiscountAmount = new LimitSpecial("Can of beans", 2, true, 1, 0, 4); limitSpecialWithoutDiscountQuantity = new LimitSpecial("Can of beans", 2, true, 0, 0.5f, 4); limitSpecialWithLimitLessThanPurchaseQty = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 1); limitSpecialWithLimitNotAMultipleOfPurchaseQtyPlusDiscountQty = new LimitSpecial("Can of beans", 2, true, 1, 0.5f, 5); validRestrictionSpecial = new RestrictionSpecial("Bananas", 2, true, 1, 0.5f, RestrictionType.Lesser); restrictionSpecialWithZeroDiscountAmount = new RestrictionSpecial("Bananas", 2, true, 1, 0, RestrictionType.Lesser); restrictionSpecialWithZeroDiscountQty = new RestrictionSpecial("Bananas", 2, true, 0, 0.5f, RestrictionType.Lesser); nonExistentPriceSpecial = new PriceSpecial("Milk", 2, true, 5); successValidationResponse = new ValidationResponse { IsValid = true, Message = "Success." }; zeroPriceValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Price must be bigger than 0." }; purchaseQuantityLessThanTwoValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Purchase quantity must be bigger than 1." }; zeroLimitValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Limit must be bigger than 0." }; zeroDiscountAmountValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Discount amount must be bigger than zero." }; limitLessThanPurchaseQuantityValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Limit must be bigger than purchase quantity." }; limitNotAMultipleOfPurchaseQtyPlusDiscountQtyValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Limit must be a multiple of purchase quantity plus discount quantity." }; zeroDiscountQuantityValidationResponse = new ValidationResponse { IsValid = false, Message = "Error: Discount quantity must be bigger than zero." }; specialsList = new List <ISpecial>(); specialsList.Add(validPriceSpecial); specialsList.Add(validLimitSpecial); }