Exemplo n.º 1
0
        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.";
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 private string DTOToJson(CompleteOrderDTO dto)
 {
     return(JsonConvert.SerializeObject(dto));
 }