private async void CompleteOrderBackend() { ErrorMessage = null; SuccesMessage = null; try { if (Order == null) { ErrorMessage = "Please select an order to complete!"; } else { ErrorMessage = null; CompleteOrderDTO dto = new CompleteOrderDTO(Order); HttpContent content = new StringContent(DTOToJson(dto), Encoding.UTF8, "application/json"); HttpResponseMessage result = await client.PostAsync(new Uri("http://localhost:5000/api/Order/Complete"), content); if (result.IsSuccessStatusCode) { ErrorMessage = null; SuccesMessage = "Order completed succesfully!"; } else { ErrorMessage = "Something went wrong! Order is not completed."; } } } catch (Exception) { ErrorMessage = "Something went wrong! Please try again later."; } }
public async Task <IEnumerable <CompleteOrderDTO> > CompleteAsync(IEnumerable <OrderDTO> orders) { var results = new List <CompleteOrderDTO>(); foreach (var order in orders) { var result = new CompleteOrderDTO() { OrderId = order.OrderId, OrderDate = order.OrderDate, Products = order.Products, OrderStatus = order.OrderStatus, OrderType = order.OrderType, UsersInfo = new List <UserDTO>() }; foreach (var userId in order.UsersId) { var user = await _userManager.FindByIdAsync(userId); user.UserRole = (await _userManager.GetRolesAsync(user)).FirstOrDefault(); user.Rating = _ratingService.GetUserRating(user.Id).Result; result.UsersInfo.Add(_mapper.Map <UserDTO>(user)); } results.Add(result); } return(results); }
public IActionResult CompleteOrder(CompleteOrderDTO orderdto) { Order order = _orderRepo.GetOrderById(orderdto.OrderId); order.IsCompleted = true; _orderRepo.CompleteOrder(order); _orderRepo.SaveChanges(); OrderDTO orderDTO = new OrderDTO(order); return(Ok(orderDTO)); }
public HttpResponseMessage CompleteOrder(CompleteOrderDTO request) { HttpResponseMessage responseMessage; JSendMessage json; var token = Request.Headers.SingleOrDefault(x => x.Key == "token").Value.First(); try { var userId = db.Tokens.First(u => u.TokenString.Equals(token))?.UserId; if (userId > 0) { var order = db.Orders.FirstOrDefault(o => o.OrderId == request.OrderId); if (request.PaymentStatus) { order.TransactionId = request.TransactionId; order.PaymentMethod = request.PaymentMethod; db.Orders.Update(order); db.SaveChanges(); var InvoiceLogic = new InvoiceLogic(db); var invoice = InvoiceLogic.CreateInvoice(order); order.Invoice = invoice.ToArray(); db.Orders.Update(order); db.SaveChanges(); var productList = new List <Products>(); var productOrdersList = db.ProductsOrders.Where(p => p.OrderId == request.OrderId).ToList(); foreach (var requestProduct in productOrdersList) { var product = db.Products.Find(requestProduct.ProductId); if (product?.ProductId > 0) { productList.Add(product); } } var OrderLogic = new OrderLogic(db); OrderLogic.SendOrderEmail(order, productList, invoice); order.MailSent = true; db.Orders.Update(order); db.SaveChanges(); OrderLogic.SendOrderEmailToAdmin(order, productList, invoice); json = new JSendMessage("success", "Order successfully added"); } else { db.Orders.Remove(order); json = new JSendMessage("success", "Order canceled"); } responseMessage = Request.CreateResponse(HttpStatusCode.OK, json); } else { responseMessage = Request.CreateResponse(HttpStatusCode.BadRequest); } } catch (Exception) { responseMessage = Request.CreateResponse(HttpStatusCode.BadRequest); return(responseMessage); } return(responseMessage); }
private string DTOToJson(CompleteOrderDTO dto) { return(JsonConvert.SerializeObject(dto)); }