public async Task <Order> PutOrder(Order t, List <Food> dishes) { try { string url = IRES_Global.GlobalInfo.BaseUrl + @"/order/update/id/" + t.orderId; PutOrder listOrder = new PutOrder(); foreach (var item in dishes) { listOrder.dishes.Add(new FoodOrder(item)); } var json = JsonConvert.SerializeObject(listOrder); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PutAsync(url, content); if (response.IsSuccessStatusCode) { var resContent = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <JsonOrderDetach>(resContent); return(data.Data); } Console.WriteLine("ERROR: Can't put order"); return(null); } catch (Exception ex) { Console.WriteLine("ERROR: Put Order Error"); Console.WriteLine(ex.Message); return(null); } }
public async Task PutOrderTest() { var client = new ShippyProClient(token); var parms = new PutOrderParams { to_address = new Address { name = "Clayton Davis", company = "Clayton Davis Ventures", street1 = "C/ L'Aljub, 7", city = "Marratxi", state = "Baleares", country = "ES", phone = "+34555444333", email = "*****@*****.**" }, parcels = new [] { new Parcel { length = 10, height = 10, width = 10, weight = 1 } }, TransactionID = "20731AB3D5F7", Date = ((DateTimeOffset) new DateTime(2020, 7, 31, 4, 56, 34)).ToUnixTimeSeconds(), Currency = "EUR", ItemsCount = 1, ContentDescription = "Swimwear", Total = 23.5m, Status = "Paid", ShipmentAmountPaid = 23.5m, Incoterm = "DDP", ShippingService = "Economy", Note = "Test" }; var request = new PutOrder { Params = parms }; var response = await client.PutOrder(request); Assert.NotNull(response); }
public async Task <Response> PutOrder(PutOrder request) { return(await PostAsync <Response>(request)); }
public async Task <ActionResult <OrderDTO> > PutOrder(string id, PutOrder putOrder) { if (!this.ValidTokenUser(putOrder.AccessToken)) { return(BadRequest(this.GetError(Error.INVALID_TOKEN))); } if (id == null) { return(BadRequest(this.GetError(Error.MISSING_ORDER_ID))); } if (putOrder.OrderProducts == null) { return(BadRequest(this.GetError(Error.MISSING_ORDER_PRODUCT))); } var currentUser = this.GetUserByToken(putOrder.AccessToken); var orderToPut = await _context.Orders.Include("OrderProducts").FirstOrDefaultAsync(order => order.OrderId == id); if (orderToPut == null) { return(BadRequest(this.GetError(Error.ORDER_NOT_FOUND))); } if (!orderToPut.UserId.Equals(currentUser.UserId)) { if (!this.ValidTokenAdmin(putOrder.AccessToken)) { return(BadRequest(this.GetError(Error.INVALID_TOKEN))); } } List <OrderProduct> orderProducts = new List <OrderProduct>(); foreach (PutOrderProduct putOrderProduct in putOrder.OrderProducts) { Product productToOrder = this.GetProductById(putOrderProduct.ProductId); if (productToOrder == null) { return(BadRequest(this.GetError(Error.PRODUCT_NOT_FOUND))); } if (putOrderProduct.Quantity == 0) { return(BadRequest(this.GetError(Error.MISSING_QUANTITY))); } OrderProduct orderProduct = new OrderProduct(); orderProduct.OrderId = orderToPut.OrderId; orderProduct.OrderProductId = Guid.NewGuid().ToString(); orderProduct.ProductId = putOrderProduct.ProductId; orderProduct.Quantity = putOrderProduct.Quantity; orderProduct.SubTotalPrice = decimal.Multiply(productToOrder.Price, new decimal(orderProduct.Quantity)); orderProducts.Add(orderProduct); _context.OrderProducts.Add(orderProduct); } decimal currentTotalPrice = orderToPut.OrderProducts.Sum(orderProduct => orderProduct.SubTotalPrice); decimal addPrice = orderProducts.Sum(orderProduct => orderProduct.SubTotalPrice); decimal newTotalPrice = decimal.Add(currentTotalPrice, addPrice); orderToPut.TotalPrice = newTotalPrice; if (this.ValidTokenAdmin(putOrder.AccessToken) && putOrder.Status != null) { orderToPut.Status = putOrder.Status; } _context.Entry(orderToPut).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } OrderDTO orderDTO = new OrderDTO(orderToPut); return(orderDTO); }