コード例 #1
0
        public IActionResult UpdateOrder(int id, [FromBody] OrderToUpdateDto orderToUpdate)
        {
            if (orderToUpdate == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var orderFromRepo = _repo.GetOrder(id);

            if (orderFromRepo == null)
            {
                return(NotFound());
            }
            try
            {
                Mapper.Map(orderToUpdate, orderFromRepo);
                _repo.UpdateOrder(orderFromRepo);
                _repo.Save();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(NoContent());
        }
コード例 #2
0
        public async Task <IActionResult> UpdateOrder(int id, [FromBody] OrderToUpdateDto orderToUpdate)
        {
            if (orderToUpdate == null)
            {
                return(BadRequest());
            }

            //basically dont wanna have to worry about deserializing 2 possible types of response object, so just gonna do the validation here
            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            MemoryStream orderProtoStream = new MemoryStream();

            Serializer.Serialize(orderProtoStream, orderToUpdate);
            ByteArrayContent bArray = new ByteArrayContent(orderProtoStream.ToArray());

            UriBuilder uriBuilder = new UriBuilder(_client.BaseAddress);

            uriBuilder.Path += "/" + id;

            var orderResponse = await _client.PutAsync(uriBuilder.Uri, bArray);

            return(StatusCode((int)orderResponse.StatusCode));
        }
コード例 #3
0
ファイル: UserController.cs プロジェクト: Acengen/Admin-Panel
        public async Task <IActionResult> UpdateProduct(OrderToUpdateDto orderToUpdateDto, int id)
        {
            if (orderToUpdateDto == null)
            {
                return(BadRequest("Product do not exist"));
            }

            if (orderToUpdateDto.Price > 40)
            {
                orderToUpdateDto.Discount = true;
            }


            if (orderToUpdateDto.Discount)
            {
                var dicountPrice = orderToUpdateDto.Price * 0.1;
                orderToUpdateDto.Price         = (int)((double)orderToUpdateDto.Price - dicountPrice);
                orderToUpdateDto.DiscountPrice = (int)dicountPrice;
            }

            var orderFromRepo = await _repo.GetOrder(id);

            var orderToReturn = _mapper.Map(orderToUpdateDto, orderFromRepo);

            await _context.SaveChangesAsync();

            return(Ok(orderToReturn));
        }
コード例 #4
0
        public async Task <ActionResult <OrderToReturnDto> > UpdateOrder(OrderToUpdateDto input)
        {
            var user = await _userManager.FindByEmailAsync(input.Email);

            if (user.Email == input.Email)
            {
                var order = await _orderService.GetOrderByIdAsync(input.Id, input.Email);

                var address = new Address
                {
                    FirstName = input.ShipToAddress_FirstName,
                    LastName  = input.ShipToAddress_LastName,
                    City      = input.ShipToAddress_City,
                    Street    = input.ShipToAddress_Street,
                    State     = input.ShipToAddress_State,
                    Zipcode   = input.ShipToAddress_Zipcode
                };

                var method = await _orderService.GetDeliveryMethod(input.DeliveryMethodId);

                var model = new Order
                {
                    BuyerEmail      = input.Email,
                    Id              = order.Id,
                    OrderDate       = DateTimeOffset.Now,
                    ShipToAddress   = address,
                    DeliveryMethod  = method,
                    OrderItems      = order.OrderItems,
                    PaymentIntentId = string.Empty,
                    Subtotal        = order.Subtotal,
                    Status          = OrderStatus.PaymentRecevied
                };
                model.GetTotal();
                var result = await _orderService.UpdateOrder(model, input.basketId);

                return(Ok(_mapper.Map <Order, OrderToReturnDto>(result)));
            }
            else
            {
                return(Ok());
            }
        }