public async Task <MessageResponse> UpdateDiscount(DiscountRequest request) { try { using (UnitOfWork uow = new UnitOfWork()) { Discount d = await uow.Discounts.SingleOrDefaultAsync(x => x.Code == request.Code); if (d != null && d.Id != request.Id) { return(new MessageResponse("error", "Tạo mới thất bại", "Lỗi: Mã code đã tồn tại.")); } var discount = mapper.Map <DiscountRequest, Discount>(request); discount.Id = request.Id; uow.Discounts.Update(discount); await uow.SaveAsync(); return(new MessageResponse("success", "Cập nhật thành công")); } } catch (Exception e) { return(new MessageResponse("error", "Cập nhật thất bại", "Lỗi: " + e.Message)); } }
public async Task <IActionResult> Update([FromForm] DiscountRequest request) { MessageResponse message = await discountService.UpdateDiscount(request); ShowMessage(message); return(RedirectToAction("Index")); }
/// <summary> /// Result will return list Discount /// </summary> /// <param name="SearchString"></param> /// <returns></returns> public List <DiscountModels> GetListData(string SearchString = null) { List <DiscountModels> listData = new List <DiscountModels>(); try { DiscountRequest paraBody = new DiscountRequest(); paraBody.SearchString = SearchString; NSLog.Logger.Info("DiscountGetListData Request: ", paraBody); var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.DiscountAPIGetList, null, paraBody); dynamic data = result.Data; var lstDataRaw = data["ListDiscount"]; var lstObject = JsonConvert.SerializeObject(lstDataRaw); listData = JsonConvert.DeserializeObject <List <DiscountModels> >(lstObject); NSLog.Logger.Info("DiscountGetListData", listData); return(listData); } catch (Exception e) { NSLog.Logger.Error("DiscountGetListData_Fail", e); return(listData); } }
public async Task <IActionResult> Post([FromBody] DiscountRequest request) { int onlyOneTarget = (request.ItemID.HasValue ? 1 : 0) + (request.CategoryID.HasValue ? 1 : 0) + (request.SubCategoryID.HasValue ? 1 : 0); if (onlyOneTarget != 1) { return(StatusCode((int)HttpStatusCode.BadRequest, new ErrorResponse(ErrorReasons.BadRequest, "Only one: Category or SubCategory or Item can have discount."))); } if (request.ItemID.HasValue && (await _discountRepository.GetDiscountForItem(request.ItemID.Value)) != null) { return(StatusCode((int)HttpStatusCode.BadRequest, new ErrorResponse(ErrorReasons.BadRequest, "Item already has a discount."))); } if (request.CategoryID.HasValue && (await _discountRepository.GetDiscountForCategory(request.CategoryID.Value)) != null) { return(StatusCode((int)HttpStatusCode.BadRequest, new ErrorResponse(ErrorReasons.BadRequest, "Category already has a discount."))); } if (request.SubCategoryID.HasValue && (await _discountRepository.GetDiscountForCategory(request.SubCategoryID.Value)) != null) { return(StatusCode((int)HttpStatusCode.BadRequest, new ErrorResponse(ErrorReasons.BadRequest, "SubCategory already has a discount."))); } await _discountRepository.InsertDiscount(new Discount { Name = request.Name, Value = request.Value, IsPercentages = request.IsPercentages, To = request.To, ItemID = request.ItemID, CategoryID = request.CategoryID, SubCategoryID = request.SubCategoryID }); return(StatusCode((int)HttpStatusCode.NoContent)); }
public override async Task <DiscountModel> GetDiscount(DiscountRequest request, ServerCallContext context) { var discount = await Discount(request.UserId); return(new DiscountModel { Pct = discount }); }
public override DiscountRequest Check(DiscountRequest request) { if (request.Cart.Subtotal >= minSubtotal) { request.Amount += request.Cart.Subtotal * (percentage / 100); return(request); } return(base.Check(request)); }
private void RecalulateQuote(UserSessionModel user, DiscountRequest entity) { Entry = Db.Entry(entity.Quote); entity.Quote.RecalculationRequired = true; Entry.State = EntityState.Modified; new QuoteServices(this, "Quote").ApplyBusinessRules(user, entity.Quote); }
public virtual DiscountRequest Check(DiscountRequest request) { if (NextDiscount != null) { return(NextDiscount.Check(request)); } else { return(request); } }
public double CheckDiscounts(ShoppingCart cart) { if (FirstDiscount == null) { return(0); } DiscountRequest request = new DiscountRequest(cart); DiscountRequest final = FirstDiscount.Check(request); return(request.Amount); }
public override DiscountRequest Check(DiscountRequest request) { foreach (var item in request.Cart.Items) { if (item.Quantity >= minQuantity) { request.Amount += item.TotalCost * (percentage / 100); return(request); } } return(base.Check(request)); }
public override DiscountRequest Check(DiscountRequest request) { foreach (var item in request.Cart.Items) { if (item.CategoryID != categoryID) { return(base.Check(request)); } } request.Amount += request.Cart.ShippingCost; return(request); }
public async Task UpdateDiscountAsync_StateUnderTest_ExpectedException() { // Arrange var testBook = this.GetTestBook(); var newDiscountModel = new DiscountRequest { BooksId = new List <Guid> { new Guid() } }; // Act await this.service.UpdateDiscountAsync(newDiscountModel); }
/// <summary> /// Change actual price. /// </summary> /// <param name="discountModel"></param> /// <returns>success</returns> public async Task <bool> UpdateDiscountAsync(DiscountRequest discountModel) { this.discountValidator.Validate(discountModel).ThrowIfInvalid(); var booksCollection = await this.dbContext.Books .Where(b => discountModel.BooksId.Contains(b.Id)) .ToListAsync(); booksCollection.ForEach(b => b.ActualPrice = b.OrgPrice - (b.OrgPrice * discountModel.Discount / 100)); this.dbContext.Books.UpdateRange(booksCollection); await this.dbContext.SaveChangesAsync(); return(true); }
public async Task <DiscountResponse> Get(DiscountRequest request) { var discount = _discountDataService.Query .Include(x => x.AppliedToCategories) .Include(x => x.AppliedToProducts) .Include(x => x.AppliedToProducts.Select(p => p.Pictures)).FirstOrDefault(x => x.Id == request.Id); if (!HasAccessToSee(discount, request.RequestOwner)) { _securityLogger.LogDangeriousReadAttemp(request.RequestOwner, discount); return(new DiscountResponse { Access = ResponseAccess.Deny }); } return(new DiscountResponse { Access = ResponseAccess.Granted, Model = discount.MapToViewModel() }); }
public BaseResponse UpdateDiscount(DiscountRequest request) { BaseResponse discountResponse = new BaseResponse(); try { var orderID = repository.UpdateDiscount(request.discount); discountResponse.Success = true; } catch (Exception ex) { discountResponse.Success = false; discountResponse.Message = ex.Message; discountResponse.StackTrace = ex.StackTrace; } return(discountResponse); }
/// <summary> /// Create Or Edit Discount /// </summary> /// <param name="model"></param> /// <param name="msg"></param> /// <returns> return value type bool </returns> public bool CreateOrEdit(DiscountDetailModels model, ref string msg) { try { DiscountRequest paraBody = new DiscountRequest(); if (model.PeriodDate != null) { model.PeriodDate = CommonHelper.ConvertToUTCTime(model.PeriodDate); } //model.ApplyFrom = CommonHelper.ConvertToUTCTime(model.ApplyFrom); //model.ApplyTo = CommonHelper.ConvertToUTCTime(model.ApplyTo); paraBody.DiscountDetail = model; paraBody.CreatedUser = model.CreateUser; NSLog.Logger.Info("DiscountCreateOrEdit Request: ", paraBody); //==================== var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.DiscountAPICreateOrEdit, null, paraBody); if (result != null) { if (result.Success) { return(true); } else { msg = result.Message; NSLog.Logger.Info("DiscountCreateOrEdit", result.Message); return(false); } } else { NSLog.Logger.Info("DiscountCreateOrEdit", result); return(false); } } catch (Exception e) { NSLog.Logger.Error("DiscountCreateOrEdit_Fail", e); return(false); } }
public override DiscountResponse HandleDiscountRequest(DiscountRequest request) { if (request.DiscountPercentage <= 50) { return(new DiscountResponse() { IsApproved = true }); } if (this.Supervisor == null) { return(new DiscountResponse() { IsApproved = false }); } return(this.Supervisor.HandleDiscountRequest(request)); }
public async Task UpdateDiscountAsync_StateUnderTest_ExpectedBehavior() { // Arrange var testBook = this.GetTestBook(); var newDiscountModel = new DiscountRequest { BooksId = new List <Guid> { testBook.Id }, Discount = 100 }; // Act await this.service.UpdateDiscountAsync(newDiscountModel); var updatedPrice = (await this.service.GetAsync(testBook.Id)).ActualPrice; // Assert Assert.AreEqual(updatedPrice, 0, $"Actual price - {updatedPrice}"); }
public async Task <IActionResult> Create([FromBody] DiscountRequest request) { try { var validator = new DiscountRequestValidator(); var result = await validator.ValidateAsync(request); if (result.IsValid) { var existingCustomer = await _discountService.GetDiscountByName(request.Name); if (existingCustomer != null) { throw new BadRequestException("Discount Already Exist For this Discount Type"); } var discount = new Discount { DiscountType = request.DiscountType, CreatedOn = DateTime.Now, Value = request.Value, Name = request.Name }; await _discountService.CreateDiscount(discount); var response = _mapper.Map <DiscountResponse>(discount); return(CreatedAtAction(nameof(Get), new { name = discount.Name }, response)); } throw new ValidationException(result.Errors.ToList()); } catch (Exception e) { _logger.LogInformation($"Error Occur while Creating Discount --> message {e.Message}"); throw; } }
/// <summary> /// Delete Discount /// </summary> /// <param name="ID"></param> /// <param name="CreateUser"></param> /// <param name="msg"></param> /// <returns> return value type bool </returns> public bool Delete(string ID, string CreateUser, ref string msg, string ReasonDelete = null) { try { DiscountRequest paraBody = new DiscountRequest(); paraBody.CreatedUser = CreateUser; paraBody.ReasonDelete = ReasonDelete; paraBody.ID = ID; NSLog.Logger.Info("DiscountDelete Request: ", paraBody); //==================== var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.DiscountAPIDelete, null, paraBody); if (result != null) { if (result.Success) { return(true); } else { msg = result.Message; NSLog.Logger.Info("DiscountDelete", result.Message); return(false); } } else { NSLog.Logger.Info("DiscountDelete", result); return(false); } } catch (Exception e) { msg = e.ToString(); NSLog.Logger.Error("DiscountDelete_Fail", e); return(false); } }
/// <summary> /// Generate Code for Discount /// </summary> /// <param name="ID"></param> /// <param name="NumberCode"></param> /// <param name="CreatedUser"></param> /// <param name="msg"></param> /// <returns> return value type bool </returns> public bool GenerateCode(string ID, int NumberCode, string CreatedUser, ref string msg) { try { DiscountRequest paraBody = new DiscountRequest(); paraBody.ID = ID; paraBody.NumberCode = NumberCode; paraBody.CreatedUser = CreatedUser; NSLog.Logger.Info("DiscountGenerateCode Request: ", paraBody); //==================== var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.DiscountAPIGenerate, null, paraBody); if (result != null) { if (result.Success) { return(true); } else { msg = result.Message; NSLog.Logger.Info("DiscountGenerateCode", result.Message); return(false); } } else { NSLog.Logger.Info("DiscountGenerateCode", result); return(false); } } catch (Exception e) { NSLog.Logger.Error("DiscountGenerateCode_Fail", e); return(false); } }
public DiscountTest() { //Arrange _discountRepositoryMock = new Mock <IDiscountRepository>(); _productRepositoryMock = new Mock <IProductRepository>(); discount = new PoS.Sell.Domain.Discount.Discount(_discountRepositoryMock.Object, _productRepositoryMock.Object); _availableproduct = new List <Product>(); _availableproduct = new List <Product> { new Product() { Description = "Chicles Trident 18's", SKU = "7506105606053", Price = new Amount() { CurrencyId = Guid.Parse("50bca81b-4099-4087-8469-874fdc6906cf"), TotalAmount = 14 }, Taxes = new List <Tax> { new Tax() { Id = "b0d92892-eb04-4a34-a655-63264cc923eb", Percentage = 16, Description = "IVA" } } } }; discountRequest = new DiscountRequest { ProductDescription = "Chicles Trident 18's", Descripcion = "Descuento de chicles Trident", Vigencia = new DateTime(2020, 07, 31), Porcentaje = 10 }; }
/// <summary> /// Block Or Unblock Discount from ListCodeID /// </summary> /// <param name="ListCodeID"></param> /// <param name="CreateUser"></param> /// <param name="msg"></param> /// <returns> return value type bool </returns> public bool BlockOrUnblock(List <string> ListCodeID, string CreateUser, ref string msg) { try { DiscountRequest paraBody = new DiscountRequest(); paraBody.ListID = ListCodeID; paraBody.CreatedUser = CreateUser; NSLog.Logger.Info("DiscountBlockOrUnblock Request: ", paraBody); //==================== var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.DiscountAPIBlockOrUnblock, null, paraBody); if (result != null) { if (result.Success) { return(true); } else { msg = result.Message; NSLog.Logger.Info("DiscountBlockOrUnblock", result.Message); return(false); } } else { NSLog.Logger.Info("DiscountBlockOrUnblock", result); return(false); } } catch (Exception e) { NSLog.Logger.Error("DiscountBlockOrUnblock_Fail", e); return(false); } }
public abstract DiscountResponse HandleDiscountRequest(DiscountRequest request);
public void ComputeDiscountOnItem(DiscountRule rule, DiscountRequest discountRequest, DiscountResponse discountResponse, DiscountRequestItem item) { item.TotalDiscount += rule.Value; }
public void ComputeDiscountOnCart(DiscountRule rule, DiscountRequest discountRequest, DiscountResponse discountResponse) { // Do Nothing }
public DiscountResponse ProcessCustomerDiscountRequest(DiscountRequest request) { return(this.salesChain.HandleDiscountRequest(request)); }
public BaseResponse CreateDiscount(DiscountRequest request) { return(service.InsertDiscount(request)); }
public async Task <IActionResult> ChangeDiscountAsync([FromBody] DiscountRequest discountModel) { await service.UpdateDiscountAsync(discountModel); return(NoContent()); }
public BaseResponse UpdateDiscount(DiscountRequest request) { return(service.UpdateDiscount(request)); }