示例#1
0
        public async Task <HttpResponseMessage> UpdateQuantity(UpdateQuantityDto updateQuantityDto)
        {
            Response <GetStocksDto> httpResponse = new Response <GetStocksDto>();

            try
            {
                httpResponse.RequestState = true;
                httpResponse.ErrorState   = !await _stockManager.UpdateQuantityByStockId(updateQuantityDto.StockId, updateQuantityDto.Quantity);
            }
            catch (Exception ex)
            {
                httpResponse.ErrorState = true;
                httpResponse.ErrorList.Add(ex.Adapt <ApiException>());
            }
            return(httpResponse);
        }
        public async Task <IActionResult> UpdateQuantity(string customerId, string name, [FromBody] UpdateQuantityDto item)
        {
            if (item == null)
            {
                return(ResponseMessage.BadRequest(Status.UnexpectedError, UnexpectedError));
            }

            var validator = new UpdateQuantityValidator();
            var results   = validator.Validate(item);

            if (!results.IsValid)
            {
                var error = results.Errors.FirstOrDefault();
                return(ResponseMessage.BadRequest(error.ErrorCode, error.ErrorMessage));
            }

            var actor = (PID)shoppingListsActorProvider.ActorInstance;

            var @event = await actor.RequestAsync <ShoppingListEvent>(new UpdateQuantity(customerId, name, item.Quantity));

            switch (@event.Status)
            {
            case Status.QuantityUpdated: return(ResponseMessage.Ok(@event.Status, QuantityUpdated));

            case Status.ItemNotFound: return(ResponseMessage.NotFound(@event.Status, ItemNotFound));

            default: return(ResponseMessage.BadRequest(@event.Status, UnexpectedError));
            }
        }