public async Task <OrderVm> CreateAsync(IList <CartItem> items, string userId) { var order = new Models.Order() { UserId = userId, OrderDate = DateTime.Today, Status = false }; _context.Add(order); await _context.SaveChangesAsync(); foreach (var item in items) { await _orderDetailService.CreateAsync(order.OrderId, item.Product.ProductId, item.Quantity); } var orderVm = new OrderVm() { OrderId = order.OrderId, UserId = userId, OrderDate = DateTime.Today, Status = false }; return(orderVm); }
public PizzaOrderMutation(IPizzaDetailService pizzaDetailService, IOrderDetailService orderDetailService) { Name = nameof(PizzaOrderMutation); FieldAsync <OrderDetailsType>( name: "createOrder", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <OrderDetailsInputType> > { Name = "orderDetails" }) , resolve: async context => { var order = context.GetArgument <OrderDetailsModel>("orderDetails"); var orderDetails = new OrderDetail(order.AddressLine1, order.AddressLine2, order.MobileNumber, order.Amount); orderDetails = await orderDetailService.CreateAsync(orderDetails); var pizzaDetails = order.PizzaDetails.Select(x => new PizzaDetail(x.Name, x.Toppings, x.Price, x.Size, orderDetails.Id)); pizzaDetails = await pizzaDetailService.CreateBulkAsync(pizzaDetails, orderDetails.Id); orderDetails.PizzaDetails = pizzaDetails.ToList(); return(orderDetails); }); FieldAsync <OrderDetailsType>( name: "updateStatus", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }, new QueryArgument <NonNullGraphType <OrderStatusEnumType> > { Name = "status" } ), resolve: async context => { int orderId = context.GetArgument <int>("id"); OrderStatus orderStatus = context.GetArgument <OrderStatus>("status"); return(await orderDetailService.UpdateStatusAsync(orderId, orderStatus)); } ); FieldAsync <OrderDetailsType>( name: "deletePizzaDetails", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "pizzaDetailsId" } ), resolve: async context => { var pizzaDetailsId = context.GetArgument <int>("pizzaDetailsId"); var orderId = await pizzaDetailService.DeletePizzaDetailsAsync(pizzaDetailsId); return(await orderDetailService.GetOrderDetailAsync(orderId)); } ); }
public async Task <ActionResult> Add(OrderDetail orderDetail) { try { await _orderDetailService.CreateAsync(orderDetail); } catch (ServiceException e) { throw new WebUiException($"Ошибка в контроллере {nameof(OrderDetailController)} в методе {nameof(Add)}", e); } return(RedirectToAction("Edit", "Order", new { id = orderDetail.OrderId })); }
public PizzaOrderMutation(IPizzaDetailService pizzaDetailService, IOrderDetailService orderDetailService) { this.pizzaDetailService = pizzaDetailService; this.orderDetailService = orderDetailService; Name = nameof(PizzaOrderMutation); FieldAsync <OrderDetailType>(name: "createOrder", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <OrderDetailInputType> >() { Name = "orderDetail" } ), resolve: async context => { // Get parameter from the GraphQL request var order = context.GetArgument <OrderDetailModel>("orderDetail"); var orderDetail = new OrderDetail(order.AddressLine1, order.AddressLine2, order.MobileNo, order.Amount); orderDetail = await orderDetailService.CreateAsync(orderDetail); var pizzaDetails = order.PizzaDetails.Select(p => new PizzaDetail(p.Name, p.Toppings, p.Price, p.Size, orderDetail.Id)); pizzaDetails = await pizzaDetailService.CreateBulkAsync(pizzaDetails, orderDetail.Id); orderDetail.PizzaDetails.ToList(); return(orderDetail); }); FieldAsync <OrderDetailType>(name: "updateStatus", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }, new QueryArgument <NonNullGraphType <OrderStatusEnumType> > { Name = "status" }), resolve: async context => { var orderId = context.GetArgument <int>("id"); var orderStatus = context.GetArgument <OrderStatus>("status"); return(await orderDetailService.UpdateStatusAsync(orderId, orderStatus)); }); FieldAsync <OrderDetailType>(name: "deletePizzaDetail", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }), resolve: async context => { var pizzaDetailId = context.GetArgument <int>("id"); var orderDetailId = await pizzaDetailService.DeletePizzaDetailsAsync(pizzaDetailId); return(await orderDetailService.GetOrderDetailAsync(orderDetailId)); }); }
public async Task <IActionResult> PaymentComplete(string listIdCourse) { PaymentVM vm = ComputePayment(listIdCourse); long totalamount = 0; if (User.Identity.IsAuthenticated) { if (vm.lstCourse != null && vm.lstCourse.Count > 0) { try { ClaimsPrincipal currentUser = this.User; var currentUserName = int.Parse(currentUser.FindFirst(ClaimTypes.NameIdentifier).Value); quanlykhoahocContext context = _courseService.GetContext(); using (IDbContextTransaction transaction = context.Database.BeginTransaction()) { try { string orderId = Guid.NewGuid().ToString(); foreach (var item in vm.lstCourse) { var course = _courseService.GetById(item.Id); if (course != null) { totalamount += course.Price; OrderDetails orderDetails = new OrderDetails(); orderDetails.OrderId = orderId; orderDetails.CourseId = course.Id; orderDetails.Amount = course.Price; await _orderDetailService.CreateAsync(orderDetails); } else { transaction.Rollback(); return(Json(new { status = false, loca = "" })); } } string convertTotal = totalamount.ToString(); long amount = Convert.ToInt64(convertTotal); string endpoint = DefinePaymentMomo.MomoTest; string requestId = Guid.NewGuid().ToString(); string orderInfo = "PaymentCourse"; string extraData = ""; Orders orderVM = new Orders(); orderVM.Id = orderId; orderVM.OrderDate = DateTime.Now; orderVM.PayMethod = PaymentMethod.MomoPay; //trang thai chua thanh cong orderVM.Status = OrderStatus.Unpaid; orderVM.TotalAmount = totalamount; //tao chu ky dien tu string signature = string.Empty; orderVM.Signature = signature = SignatureMomo(requestId, amount.ToString(), orderId, orderInfo, extraData); orderVM.RequestId = requestId; orderVM.UserId = currentUserName; await _orderService.CreateAsync(orderVM); string result = await CallMomo(signature, requestId, amount.ToString(), orderId, orderInfo, extraData); //yeu cau cung cap url thanh toan ReposonsePayMomo reposonsePayMomo = JsonConvert.DeserializeObject <ReposonsePayMomo>(result); if (reposonsePayMomo.errorCode == "0") { string signatureReponse = SignatureCheckResponseMomo(requestId, orderId, reposonsePayMomo.message, reposonsePayMomo.localMessage, reposonsePayMomo.payUrl, reposonsePayMomo.errorCode, reposonsePayMomo.requestType); if (signatureReponse == reposonsePayMomo.signature) { transaction.Commit(); return(Json(new { status = true, loca = reposonsePayMomo.payUrl })); } else { transaction.Rollback(); return(Json(new { status = false, loca = "" })); } } } catch { transaction.Rollback(); return(Json(new { status = false, loca = "" })); } } } catch (Exception ex) { return(Json(new { status = false, loca = "" })); } } } return(Json(new { status = false, loca = "" })); }