Ejemplo n.º 1
0
        public IActionResult Create(CreateOrderDto createOrderDto)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var response = _ordersService.Create(createOrderDto.ToModel());

                    if (response.IsSuccessfull)
                    {
                        return(Ok(response.Message));
                    }
                    else
                    {
                        ModelState.AddModelError("", response.Message);
                        //return BadRequest(ModelState);
                    }
                }
                return(BadRequest(ModelState));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
Ejemplo n.º 2
0
        public IHttpResponse Order(OrderInputModel orderInput)
        {
            if (orderInput.Barcode.Length != 12)
            {
                return(this.Error("Barcode shoud be 12 digits long!"));
            }

            if (orderInput.Quantity < 1)
            {
                return(this.Error("Quantity shoud be possitive number!"));
            }

            int productId = productsService.GetProductId(orderInput.Barcode);

            if (productId == 0)
            {
                return(this.Error("Not existing product barcode!"));
            }

            Guid cashierId = this.GetUserId();

            ordersService.Create(productId, orderInput.Quantity, cashierId);

            return(this.Redirect("/"));
        }
Ejemplo n.º 3
0
        public IActionResult Create(CreateOrderDto createOrderDto)
        {
            if (createOrderDto.BookIds.Count == 0)
            {
                return(BadRequest(ModelState));
            }


            if (ModelState.IsValid)
            {
                var response = _ordersService.Create(createOrderDto.ToDomainModel());
                if (!response)
                {
                    return(BadRequest(ModelState));
                }
                else
                {
                    return(Ok());
                }
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public Task <CreateOrderResult> Handle(CreateOrderCommand request, CancellationToken cancellationToken)
        {
            _ordersService.Create(request.OrderItems);
            CreateOrderResult createOrderResult = new CreateOrderResult(true);

            return(Task.FromResult(createOrderResult));
        }
Ejemplo n.º 5
0
        public void GetAllCompleted_works_Properly()
        {
            string errorMessagePrefix = "OrdersService GetAllCompleted() method does not work properly.";

            var context = OilsProDbContextInMemoryFactory.InitializeContext();

            this.ordersService = new OrdersService(context);

            var receiver = new Receiver
            {
                Name = "Receiver1"
            };

            context.Receivers.Add(receiver);

            var carrier = new Carrier
            {
                Name = "Carrier1"
            };

            context.Carriers.Add(carrier);

            var driver = new Driver
            {
                FullName = "Driver1"
            };

            context.Drivers.Add(driver);

            var vehicle = new Vehicle
            {
                RegNumber = "RegNumber1"
            };

            context.Vehicles.Add(vehicle);

            var address = new DeliveryAddress()
            {
                Town   = "Town1",
                Street = "Street1"
            };

            context.DeliveryAddresses.Add(address);

            context.SaveChanges();

            for (int i = 0; i < 10; i++)
            {
                var order = ordersService.Create("UserId", "Ropa", "Town1, Street1", "Receiver1", "Carrier1", "Driver1",
                                                 "RegNumber1");
            }

            context.Orders.First().Status = OrderStatus.Completed;
            context.Orders.Last().Status  = OrderStatus.Completed;
            context.SaveChanges();

            var result = ordersService.GetAllCompleted();

            Assert.True(result.Count == 2, errorMessagePrefix);
        }
Ejemplo n.º 6
0
 public IActionResult OnPost()
 {
     if (ModelState.IsValid)
     {
         var newOrder = Order.ToModel();
         _ordersService.Create(newOrder);
         return(RedirectToPage("SuccessfullOrder"));
     }
     return(Page());
 }
Ejemplo n.º 7
0
 public async Task Post([FromBody] OrderRequest order)
 {
     var customer = ControllerContext.HttpContext.GetUser();
     await _ordersService.Create(new OrderServiceModel()
     {
         Customer     = customer,
         ActionItemId = order.ActionItemId,
         Tickets      = order.Tickets
     });
 }
Ejemplo n.º 8
0
        public async Task <IActionResult> Create(OrderViewModel orderViewModel)
        {
            var strOrderBo = JsonConvert.SerializeObject(orderViewModel);

            OrderBO orderBo = JsonConvert.DeserializeObject <OrderBO>(strOrderBo);

            Orders order = await Task.Run(() => order = orderService.Create(orderBo));

            return(Ok(order.ordid));
        }
Ejemplo n.º 9
0
        public void Release_works_Properly()
        {
            string errorMessagePrefix = "OrdersService Release() method does not work properly.";

            var context = OilsProDbContextInMemoryFactory.InitializeContext();

            this.ordersService = new OrdersService(context);

            var receiver = new Receiver
            {
                Name = "Receiver1"
            };

            context.Receivers.Add(receiver);
            var carrier = new Carrier
            {
                Name = "Carrier1"
            };

            context.Carriers.Add(carrier);

            var driver = new Driver
            {
                FullName = "Driver1"
            };

            context.Drivers.Add(driver);

            var vehicle = new Vehicle
            {
                RegNumber = "RegNumber1"
            };

            context.Vehicles.Add(vehicle);

            var address = new DeliveryAddress()
            {
                Town   = "Town1",
                Street = "Street1"
            };

            context.DeliveryAddresses.Add(address);

            context.SaveChanges();

            var order = ordersService.Create("UserId", "Ropa", "Town1, Street1", "Receiver1", "Carrier1", "Driver1",
                                             "RegNumber1");


            var result = ordersService.Release(order.Id);

            Assert.True(result.Status == OrderStatus.Completed);
            Assert.True(result.ReleaseDate != null);
        }
Ejemplo n.º 10
0
        public void GetVehiclesByCarrierName_works_Properly()
        {
            string errorMessagePrefix = "OrdersService GetVehiclesByCarrierName() method does not work properly.";

            var context = OilsProDbContextInMemoryFactory.InitializeContext();

            this.ordersService = new OrdersService(context);

            var receiver = new Receiver
            {
                Name = "Receiver1"
            };

            context.Receivers.Add(receiver);

            var carrier = new Carrier
            {
                Name    = "Carrier1",
                Drivers = new List <Driver>()
                {
                    new Driver()
                    {
                        FullName = "Driver1"
                    }
                },
                Vehicles = new List <Vehicle>
                {
                    new Vehicle()
                    {
                        RegNumber = "RegNumber1"
                    }
                }
            };

            context.Carriers.Add(carrier);

            var address = new DeliveryAddress()
            {
                Town   = "Town1",
                Street = "Street1"
            };

            context.DeliveryAddresses.Add(address);

            context.SaveChanges();

            var order = ordersService.Create("UserId", "Ropa", "Town1, Street1", "Receiver1", "Carrier1", "Driver1",
                                             "RegNumber1");

            var result   = ordersService.GetVehiclesByCarrierName("Carrier1").First().RegNumber;
            var expected = "RegNumber1";

            Assert.AreEqual(expected, result, errorMessagePrefix);
        }
Ejemplo n.º 11
0
 public IActionResult Create(CreateOrderDto createOrderDto)
 {
     if (ModelState.IsValid)
     {
         _ordersService.Create(createOrderDto.ToDomainModel());
         return(Ok());
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
Ejemplo n.º 12
0
        public async Task <IActionResult> CreateOrder([FromBody] CreateOrderDto form)
        {
            var order = await _orderService.Create(form, await _usersService.GetCurrentUserAsync());

            if (order != null)
            {
                return(StatusCodeAndDtoWrapper.BuildGeneric(OrderDetailsDto.Build(order)));
            }
            else
            {
                return(StatusCodeAndDtoWrapper.BuildErrorResponse("Something went wrong"));
            }
        }
        /// <summary>
        /// Creates order.
        /// <param name="recordingId">Recording to order.</param>
        /// </summary>
        public static async Task <string> CreateOrder(string recordingId)
        {
            var order = await _ordersService.Create(new List <string> {
                recordingId
            });

            if (order == null)
            {
                Console.WriteLine("Order creating error!");
                return(null);
            }

            return(order.Id);
        }
Ejemplo n.º 14
0
        public void Create_works_Properly()
        {
            string errorMessagePrefix = "OrdersService Create() method does not work properly.";

            var context = OilsProDbContextInMemoryFactory.InitializeContext();

            this.ordersService = new OrdersService(context);

            var receiver = new Receiver
            {
                Name = "Receiver1"
            };

            context.Receivers.Add(receiver);

            var carrier = new Carrier
            {
                Name = "Carrier1"
            };

            context.Carriers.Add(carrier);

            var driver = new Driver
            {
                FullName = "Driver1"
            };

            context.Drivers.Add(driver);

            var vehicle = new Vehicle
            {
                RegNumber = "RegNumber1"
            };

            context.Vehicles.Add(vehicle);

            context.SaveChanges();

            var result = ordersService.Create("UserId", "Ropa", "Town1, Street1", "Receiver1", "Carrier1", "Driver1",
                                              "RegNumber1");

            var expected = context.Orders.First();

            Assert.AreEqual(expected, result, errorMessagePrefix);
        }
Ejemplo n.º 15
0
        public IActionResult Create([FromBody] OrderCreateRequest body)
        {
            ResultCode resultCode; string orderID;

            (resultCode, orderID) = _service.Create(body);

            Result error; int statusCode;

            (statusCode, error) = ResultHandler.GetStatusCodeAndResult(resultCode);

            GeneralResponse response = new GeneralResponse
            {
                Result = orderID,
                Error  = error,
            };

            return(StatusCode(statusCode, response));
        }
Ejemplo n.º 16
0
        public IActionResult CreateOrder(OrderFormData formData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            //////Dodać mapper
            Order newOrder = new Order();

            newOrder.FounderId           = formData.FounderId;
            newOrder.IngredientsAvaiable = formData.IngredientsAvaiableList;
            newOrder.Description         = formData.Description;
            newOrder.ExpirationDate      = formData.ExpirationDate;
            newOrder.IngredientsPhotoUrl = formData.PhotoUrl;
            newOrder.CreationDate        = DateTime.Now;
            newOrder.OrderStatus         = OrderStatus.Active;
            newOrder.Responses           = new List <Response>();

            _orderContext.Create(newOrder);
            return(Ok(newOrder));
        }
Ejemplo n.º 17
0
        public IActionResult OnPostSendOrder()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var items = cartService.GetAll();

            if (!items.Any())
            {
                ModelState.AddModelError("Empty Cart", "You cannot send an order with an empty cart.");
                return(Page());
            }

            var userId     = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
            var orderItems = items.Select(item => new Domain.OrderItem {
                MealId = item.ItemId, Quantity = item.Quantity
            }).ToList();
            var total = CartItems.Sum(ci => ci.Price * ci.Quantity) * (decimal)discountProvider.GetDiscount();

            cartService.Clear();

            var order = new Order {
                Id          = Guid.NewGuid().ToString(),
                Items       = orderItems,
                UserId      = userId,
                Address     = $"{OrderDetails.Address}, {OrderDetails.PostalCode}.",
                PhoneNumber = OrderDetails.PhoneNumber,
                Date        = DateTime.Now,
                Total       = total,
                Comments    = OrderDetails.Comments
            };

            ordersService.Create(order);

            return(RedirectToPagePermanent("MyOrders"));
        }
Ejemplo n.º 18
0
        public async Task <ActionResult <string> > CreateOrder(NewOrderDto newOrder)
        {
            var requestId = await _ordersService.Create(newOrder);

            return(Accepted(requestId));
        }
Ejemplo n.º 19
0
        public IActionResult Create(CreateOrderDto order)
        {
            var response = ordersService.Create(order);

            return(Ok(response.OrderCode));
        }
Ejemplo n.º 20
0
        public ActionResult TicketPlaceOrder(int admissionTicketId, int num, int userCouponsId = 0)
        {
            if (num <= 0)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "购买数量必须大于0"
                }));
            }
            var admissionTicket = admissionTicketService.GetById(admissionTicketId);

            if (admissionTicket == null)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "门票不存在"
                }));
            }
            if (admissionTicket.state != AdmissionTicketState.Normal)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "门票已下架,请选择购买其他门票"
                }));
            }
            int userId   = 0;
            var cookieId = Request.Cookies[SessionKeys.USERID].Value.ToString();

            int.TryParse(cookieId, out userId);
            var user = membershipService.GetUserById(userId) as AccountUser;

            if (user == null)
            {
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = "用户不存在"
                }));
            }
            decimal price      = 0;  //门票单价
            string  orderNo    = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + userId;
            decimal deductible = 0;  //优惠卷抵扣金额
            decimal discount   = 0;  //折扣
            string  useScope   = ""; //指定门店
            int     couponId   = 0;  //优惠卷id

            if (DateHelper.m_IsWorkingDay())
            {
                price = admissionTicket.amount;
            }
            else
            {
                price = admissionTicket.weekendAmount;
            }
            decimal     amount      = price * num;
            UserCoupons userCoupons = null;

            if (userCouponsId > 0)
            {
                userCoupons = userCouponsService.GetById(userCouponsId);
                if (userCoupons == null)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷不存在"
                    }));
                }
                if (userCoupons.state != UserCouponsState.NotUse)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷已失效"
                    }));
                }
                if (userCoupons.userId != userId)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷不可用"
                    }));
                }
                var coupon = couponsService.GetById(userCoupons.couponsId);
                if (coupon == null && coupon.state != CouponsState.Normal)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷不存在"
                    }));
                }
                if (coupon.validity.HasValue && coupon.validity > DateTime.Now.Date)
                {
                    return(Json(new ResultMessage()
                    {
                        Code = -1, Msg = "优惠卷已过期"
                    }));
                }
                if (coupon.couponsType == CouponsType.DiscountedVolume)
                {
                    discount   = coupon.discount;
                    deductible = amount - (discount * amount);
                }
                else if (coupon.couponsType == CouponsType.FullVolumeReduction)
                {
                    if (amount >= coupon.fullAmount)
                    {
                        deductible = coupon.reduceAmount;
                    }
                }
                else if (coupon.couponsType == CouponsType.OffsetRoll)
                {
                    deductible = coupon.deductibleAmount;
                }
                useScope = coupon.useScope;
                couponId = coupon.id;
            }
            var order = new Orders();

            order.amount     = num * price;
            order.orderNo    = orderNo;
            order.deductible = deductible;
            order.orderState = OrderStates.awaitPay;
            order.payAmount  = order.amount - deductible;
            order.subTime    = DateTime.Now;
            order.type       = OrderTypes.ticket;
            order.userId     = userId;
            order.useScope   = useScope;

            var orderDetial = new OrderDetial();

            orderDetial.amount   = price;
            orderDetial.cardNo   = "";
            orderDetial.num      = num;
            orderDetial.orderNo  = orderNo;
            orderDetial.sourceId = admissionTicket.id;
            orderDetial.subTime  = DateTime.Now;

            var tran = transactionHelper.BeginTransaction();

            try
            {
                ordersService.Create(order);
                orderDetialService.Create(orderDetial);
                if (couponId > 0)
                {
                    var useCouponslog = new UseCouponslog();
                    useCouponslog.amount    = deductible;
                    useCouponslog.couponsId = couponId;
                    useCouponslog.discount  = discount;
                    useCouponslog.orderNo   = orderNo;
                    useCouponslog.userId    = userId;
                    useCouponslog.useTime   = DateTime.Now;
                    useCouponslogService.Create(useCouponslog);
                    if (userCoupons != null)
                    {
                        userCoupons.state = UserCouponsState.Used;
                        userCouponsService.Update(userCoupons);
                    }
                }

                JsApiPay jsApiPay = new JsApiPay();
                jsApiPay.openid    = user.openId;
                jsApiPay.total_fee = (int)(order.payAmount * 100);
                WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(order.orderNo);
                string    wxJsApiParam       = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
                WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                tran.Commit();
                return(Json(new ResultMessage()
                {
                    Code = 0, Msg = wxJsApiParam
                }));
                //在页面上显示订单信息
                //Response.Write("<span style='color:#00CD00;font-size:20px'>订单详情:</span><br/>");
                //Response.Write("<span style='color:#00CD00;font-size:20px'>" + unifiedOrderResult.ToPrintStr() + "</span>");
            }
            catch (Exception ex)
            {
                WxPayAPI.Log.Error(this.GetType().ToString(), ex.Message.ToString());
                return(Json(new ResultMessage()
                {
                    Code = -1, Msg = ex.Message.ToString()
                }));
                //Response.Write("<span style='color:#FF0000;font-size:20px'>" + "下单失败,请返回重试" + "</span>");
                //submit.Visible = false;
            }
            finally
            {
                tran.Dispose();
            }
        }
Ejemplo n.º 21
0
        public ActionResult Create([FromBody] CreateOrderDto dto)
        {
            var id = _ordersSrevice.Create(dto);

            return(Created($"/api/orders/{id}", null));
        }