public override async void Execute(OrderParams args) { try { var newOrder = new Order() { TenantId = args.TenantId, UserId = args.UserId, Status = OrderStatus.CreadoEnAplicacion, DeliveryDate = args.DeliveryDate, Comment = args.Comment, CardCode = args.CardCode }; var order = await _orderManager.CreateOrder(newOrder); var products = _cartManager.GetCartProductItemsByUser(args.UserId, args.TenantId); foreach (var item in products) { var newOrderItem = new OrderItem() { TenantId = args.TenantId, OrderId = order.Id, Code = item.Variant.Code, Quantity = item.Quantity, Price = item.Variant.Price, TaxCode = "", //falta esto WarehouseCode = item.Variant.WareHouseCode }; await _orderManager.CreateOrderItem(newOrderItem); //actualiza el comprometido pero solo en M2 await _productManager.UpdateProductStock(item.Variant.Id, item.Quantity); } //Delete the user cart await _cartManager.DeleteUserCart(args.UserId, args.TenantId); //Hey this send to SAP string url = String.Format("{0}api/orders/{1}", ConfigurationManager.AppSettings["SAPEndpoint"], order.Id); //var response = await AppConsts.Instance.GetClient().GetAsync(url); using (var Client = new HttpClient()) { Client.Timeout = TimeSpan.FromMinutes(5); Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var response = await Client.GetAsync(url); if (response.IsSuccessStatusCode) { Logger.Info("Success to send to SAP"); } } /* * //Finally send a mail * var user = await _userManager.GetUserByIdAsync(args.UserId); * * if (user == null) * return; * * await new EmailHelper().Send(new EmailArgs * { * Subject = String.Format("Confirmación de pedido para cliente {0} ha sido Creado En M2", args.CardCode), * Body = "", * To = user.EmailAddress * });*/ } catch (Exception e) { Logger.Error(e.Message); /* * var user = await _userManager.GetUserByIdAsync(args.UserId); * * if (user == null) * return; * * await new EmailHelper().Send(new EmailArgs { * Subject = String.Format("Error Pedido Cliente {0}", args.CardCode), * Body = e.Message, * To = user.EmailAddress * });*/ } }