Пример #1
0
        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());
        }
Пример #2
0
        public bool ValidateReceiptControlSum(NewReceiptModel receipt)
        {
            var productsPrice = receipt.Products.Sum(p => p.Price * p.Quantity);

            if (receipt.ControlSum == productsPrice)
            {
                return(true);
            }

            return(false);
        }
Пример #3
0
 public decimal ReceiptProductsSum(NewReceiptModel receipt)
 {
     return(receipt.Products.Sum(p => p.Price * p.Quantity));
 }