public IHttpActionResult AddNewUserReceipt(string userName, NewReceiptModel receipt) { if (!ModelState.IsValid) { var message = responseService.ModelStateErrorsToString(ModelState); return(BadRequest(message)); } string tokenName = this.authService.GetUserName(this.User); if (!tokenName.Equals(userName)) { return(Unauthorized()); } if (!controlSumService.ValidateReceiptControlSum(receipt)) { return(BadRequest("Wrong control sum. (Server - " + controlSumService.ReceiptProductsSum(receipt) + ", Sent - " + receipt.ControlSum + ")")); } string userId = this.authService.GetUserId(this.User); repository.Add(userId, receipt.MapToDomainReceipt()); return(Ok()); }
public bool ValidateReceiptControlSum(NewReceiptModel receipt) { var productsPrice = receipt.Products.Sum(p => p.Price * p.Quantity); if (receipt.ControlSum == productsPrice) { return(true); } return(false); }
public decimal ReceiptProductsSum(NewReceiptModel receipt) { return(receipt.Products.Sum(p => p.Price * p.Quantity)); }