public async Task <IActionResult> PostCreateAsync([FromForm] OrderRequestViewModel model)
        {
            int?userId    = 0;
            var userStrId = this.User.FindFirstValue(ClaimTypes.Name);

            if (!string.IsNullOrWhiteSpace(userStrId))
            {
                userId = Convert.ToInt32(userStrId);
            }

            var response = new SingleResponse <OrderResponseViewModel>();
            var result   = await _unit.IOrder.CreateOrder(userId.Value, model);

            if (result.HasSuccess)
            {
                response.Data    = result.UserObject;
                response.Message = "Success";
                response.Status  = true;
            }
            else
            {
                response.Data    = null;
                response.Message = "Error";
                response.Status  = false;
            }

            return(response.ToHttpResponse());
        }
示例#2
0
        public ActionResult SeeOrder(string userId)
        {
            OrderRequestViewModel model = new OrderRequestViewModel();

            model.userId = userId;
            var currentUser = context.Users.Where(a => a.Id == userId).First();
            var address     = context.AddressJoin.Include("Address").Where(a => a.User.Id == userId).First();
            var ratingData  = context.Rating.Where(a => a.User.Id == userId).First();

            if (ratingData.raitingCount > 1)
            {
                model.rating = ratingData.raiting / ratingData.raitingCount;
            }
            else
            {
                model.rating = 4;
            }
            model.OrderRequestLists = context.ShoppingcartJoin.Include("ShoppingCart").Where(a => a.User.Id == currentUser.Id.ToString()).ToList();
            double roundedPrice = 0;

            model.addressLine = address.Address.addressLine;
            foreach (var item in model.OrderRequestLists)
            {
                roundedPrice    += item.shoppingCart.salePrices;
                model.TotalPrice = Math.Round(roundedPrice, 2);
                //Math.Round(model.TotalPrice += item.shoppingCart.salePrices, 2);
            }
            return(View("ViewOrder", model));
        }
示例#3
0
 public async Task <ActionResult> PostOrder(OrderRequestViewModel orderRequestViewModel)
 {
     foreach (string id in orderRequestViewModel.ProductIds)
     {
         ElectronicItem electronicItem = _context.ElectronicItems.Find(Guid.Parse(id));
     }
     return(CreatedAtAction("GetElectronicItem", null));
 }
        public ActionResult OrderRequest()
        {
            var inventory = _context.StockRoomInventories;

            var viewModel = new OrderRequestViewModel()
            {
                Inventory = inventory
            };

            return(View(viewModel));
        }
示例#5
0
        public ActionResult OrderRequests()
        {
            List <ApplicationUser> User  = new List <ApplicationUser>();
            OrderRequestViewModel  model = new OrderRequestViewModel();
            var AllReady = (context.OrderRequest.Include("User").Where(a => a.ActiveOrder == true && a.OrderAccepted == false));

            foreach (var item in AllReady)
            {
                User.Add(item.User);
            }
            model.Users = User;
            return(View("OrderRequests", model));
        }
        public MobileResponseWrapper Put(OrderRequestViewModel request)
        {
            if (request == null)
            {
                throw CreateException(HttpStatusCode.BadRequest, "request is null", 166767);
            }
            string obj = JsonConvert.SerializeObject(request);

            SetOrderMemberId(request.Data);
            request.Data.Locale = Thread.CurrentThread.CurrentCulture.Name;
            var orderNumber      = string.Empty;
            var isOrderSubmitted = false;

            if (_mobileQuoteHelper.CheckIfAnyOrderInProcessing(request.Data.MemberId, request.Data.Locale, ref orderNumber, ref isOrderSubmitted, request.Data.OrderNumber))
            {
                throw CreateException(HttpStatusCode.NotAcceptable,
                                      "order still processing", 110406, orderNumber);
            }

            //If SR Pricing an order for PC then check whether the PC is expired or not.
            if (request.Data.Locale == "zh-CN" && !string.IsNullOrEmpty(request.Data.CustomerId) && request.Data.CustomerId != request.Data.MemberId && _mobileQuoteHelper.IsPCExpired(request))
            {
                throw CreateException(HttpStatusCode.NotAcceptable,
                                      "PC membership is expired", 110421);
            }

            List <ValidationErrorViewModel> errors = null;
            var data = _iMobileQuoteProvider.Quote(request.Data, ref errors);
            var mobileResponseWrapper = new MobileResponseWrapper
            {
                Data             = data,
                ValidationErrors = null != errors && errors.Any() ? errors : null
            };
            JObject json = JObject.Parse(obj);

            MobileActivityLogProvider.ActivityLog(json, mobileResponseWrapper, request.Data.MemberId, true,
                                                  this.Request.RequestUri.ToString(),
                                                  this.Request.Headers.ToString(),
                                                  this.Request.Headers.UserAgent.ToString(),
                                                  request.Data.Locale);

            return(mobileResponseWrapper);
        }
 public ActionResult OrderHistoryPeople()
 {
     try
     {
         OrderRequestViewModel  model    = new OrderRequestViewModel();
         List <ApplicationUser> userList = new List <ApplicationUser>();
         var currentUser = context.Users.Where(b => b.UserName == User.Identity.Name).First();
         var people      = context.Orders.Include("Deliverer").Where(a => a.User.Id == currentUser.Id && a.completed == true);
         foreach (var item in people)
         {
             userList.Add(item.Deliverer);
         }
         model.Users = userList;
         return(View(model));
     }
     catch
     {
         return(View("NoPrieviousOrder"));
     }
 }
示例#8
0
 public async Task <ApiResult <OrderResponseViewModel> > CreateOrder(int userId, OrderRequestViewModel orderModel)
 {
     {
         OrderResponseViewModel model = null;
         try
         {
             SqlParameter UserId = new SqlParameter("@userId", System.Data.SqlDbType.Int)
             {
                 Value = userId
             };
             SqlParameter AddressId = new SqlParameter("@AddressId", System.Data.SqlDbType.Int)
             {
                 Value = orderModel.AddressId
             };
             SqlParameter PickUpSlotId = new SqlParameter("@PickUpSlotId", System.Data.SqlDbType.Int)
             {
                 Value = orderModel.PickUpSlotId
             };
             SqlParameter PickUpDate = new SqlParameter("@PickUpDate", System.Data.SqlDbType.DateTime)
             {
                 Value = orderModel.PickUpDate
             };
             SqlParameter DeliverDate = new SqlParameter("@DeliverDate", System.Data.SqlDbType.DateTime)
             {
                 Value = orderModel.DeliverDate
             };
             SqlParameter DeliverSlotId = new SqlParameter("@DeliverSlotId", System.Data.SqlDbType.Int)
             {
                 Value = orderModel.DeliverSlotId
             };
             SqlParameter DeliveryNote = new SqlParameter("@DeliveryNote", System.Data.SqlDbType.VarChar)
             {
                 Value = orderModel.DeliveryNote ?? (object)DBNull.Value
             };
             SqlParameter PaymentType = new SqlParameter("@PaymentType", System.Data.SqlDbType.Int)
             {
                 Value = orderModel.PaymentType ?? (object)DBNull.Value
             };
             SqlParameter ServiceId = new SqlParameter("@ServiceId", System.Data.SqlDbType.Int)
             {
                 Value = orderModel.ServiceId
             };
             var result = _context.ExecuteStoreProcedure("[CreateOrder]", UserId, AddressId, PickUpSlotId, PickUpDate, DeliverDate, DeliverSlotId, DeliveryNote, PaymentType, ServiceId);
             if (result.Tables.Count > 0 && result.Tables[0].Rows.Count > 0)
             {
                 foreach (System.Data.DataRow row in result.Tables[0].Rows)
                 {
                     model = new OrderResponseViewModel()
                     {
                         OrderId  = (row["OrderId"] != DBNull.Value) ? Convert.ToInt32(row["OrderId"]) : 0,
                         OrderRef = (row["InvoiceNo"] != DBNull.Value) ? Convert.ToString(row["InvoiceNo"]) : string.Empty
                     };
                 }
             }
         }
         catch (Exception ex)
         {
             ErrorTrace.Logger(LogArea.ApplicationTier, ex);
             return(new ApiResult <OrderResponseViewModel>(new ApiResultCode(ApiResultType.Error, 0, "No data in given request")));
         }
         return(new ApiResult <OrderResponseViewModel>(new ApiResultCode(ApiResultType.Success), model));
     }
 }
示例#9
0
        public OrderResponseViewModel RequestMobilePin(OrderRequestViewModel request)
        {
            string obj = JsonConvert.SerializeObject(request);
            List <ValidationErrorViewModel> errors = null;

            request.Data.OrderMemberId = string.IsNullOrEmpty(request.Data.OrderMemberId) && !string.IsNullOrEmpty(request.Data.CustomerId) ? request.Data.CustomerId : request.Data.OrderMemberId;
            var viewModel    = request.Data;
            var shoppingcart = _mobileQuoteHelper.PriceCart(ref viewModel, ref errors);
            var quickPayresponseviewModel = new OrderResponseViewModel();

            if (null != errors && errors.Any())
            {
                quickPayresponseviewModel.ValidationErrors = errors;
                return(quickPayresponseviewModel);
            }
            var     orderTotalsV01 = shoppingcart.Totals as ServiceProvider.OrderSvc.OrderTotals_V01;
            var     orderTotalsV02 = shoppingcart.Totals as ServiceProvider.OrderSvc.OrderTotals_V02;
            decimal amount;
            var     order = _mobileQuickPayController.Getorder(viewModel, ref errors, orderTotalsV02, orderTotalsV01,
                                                               out amount);
            var ordernumber = order.OrderID;

            if (string.IsNullOrWhiteSpace(ordernumber))
            {
                ordernumber = _mobileQuickPayController.GetOrderNumber(amount, shoppingcart.CountryCode, shoppingcart.DistributorID);
            }

            //Order_V01 order, string ordernumber, MyHLShoppingCart cart
            var cn99BillQuickPayProvider = new CN_99BillQuickPayProvider();
            var hasrequestedmobilepin    = cn99BillQuickPayProvider.RequestMobilePinForPurchase(ordernumber, order, shoppingcart, request.Data.MemberId);

            if (hasrequestedmobilepin)
            {
                var quickPayPaymentViewModel = request.Data.Payments[0] as QuickPayPaymentViewModel;
                if (quickPayPaymentViewModel != null)
                {
                    quickPayPaymentViewModel.StorablePAN = cn99BillQuickPayProvider.StorablePAN;
                    quickPayPaymentViewModel.Token       = cn99BillQuickPayProvider.Token;
                }

                viewModel.OrderNumber = ordernumber;
            }

            if (!string.IsNullOrEmpty(cn99BillQuickPayProvider.LastErrorMessage))
            {
                if (errors == null)
                {
                    errors = new List <ValidationErrorViewModel>();
                }

                errors.Add(new ValidationErrorViewModel {
                    Code = 126000, Reason = cn99BillQuickPayProvider.LastErrorMessage
                });
            }

            quickPayresponseviewModel.Data = viewModel;

            if (null != errors && errors.Any())
            {
                quickPayresponseviewModel.ValidationErrors = errors;
            }

            JObject json = JObject.Parse(obj);

            MobileActivityLogProvider.ActivityLog(json, quickPayresponseviewModel, request.Data.MemberId, true,
                                                  this.Request.RequestUri.ToString(),
                                                  this.Request.Headers.ToString(),
                                                  this.Request.Headers.UserAgent.ToString(),
                                                  request.Data.Locale);

            return(quickPayresponseviewModel);
        }
        public OrderResponseViewModel Put(OrderRequestViewModel request)
        {
            if (request == null || request.Data.OrderItems == null)
            {
                throw CreateException(HttpStatusCode.BadRequest, "Invalid or Incomplete Order information", 101416);
            }
            string obj = JsonConvert.SerializeObject(request);

            SetOrderMemberId(request.Data);
            request.Data.Locale = Thread.CurrentThread.CurrentCulture.Name;

            //Logging the bare request before it gets modified as it is a reference type
            //MobileActivityLogProvider.ActivityLog(request, null, request.Data.MemberId, true,
            //            this.Request.RequestUri.ToString(),
            //            this.Request.Headers.ToString(),
            //            this.Request.Headers.UserAgent.ToString(),
            //            request.Data.Locale);


            var orderNumber      = string.Empty;
            var isOrderSubmitted = false;

            if (_mobileQuoteHelper.CheckIfAnyOrderInProcessing(request.Data.MemberId, request.Data.Locale,
                                                               ref orderNumber, ref isOrderSubmitted, request.Data.OrderNumber))
            {
                throw CreateException(HttpStatusCode.NotAcceptable,
                                      "order still processing", 110406, orderNumber);
            }

            var authToken = Guid.Empty;

            if (null != Request && null != Request.Headers && Request.Headers.Any())
            {
                if (Request.Headers.Contains("X-HLUSER-TOKEN"))
                {
                    var authTokenValue = Request.Headers.GetValues("X-HLUSER-TOKEN").FirstOrDefault();
                    if (!string.IsNullOrEmpty(authTokenValue))
                    {
                        Guid.TryParse(authTokenValue, out authToken);
                    }
                }
            }

            var response = new OrderResponseViewModel();
            List <ValidationErrorViewModel> errors = null;
            var result = _iMobileOrderProvider.Submit(request.Data, ref errors, authToken, request.Data.MemberId);

            if (result != null)
            {
                response.Data             = result;
                response.ValidationErrors = null != errors && errors.Any() ? errors : null;
                JObject json = JObject.Parse(obj);
                MobileActivityLogProvider.ActivityLog(json, response, request.Data.MemberId, true,
                                                      this.Request.RequestUri.ToString(),
                                                      this.Request.Headers.ToString(),
                                                      this.Request.Headers.UserAgent.ToString(),
                                                      request.Data.Locale);

                return(response);
            }

            return(new OrderResponseViewModel {
                Data = null
            });
        }
        public OrderResponseViewModel Post([FromBody] OrderRequestViewModel request)
        {
            if (request == null)
            {
                throw CreateException(HttpStatusCode.BadRequest, "Invalid or Incomplete Order information", 101416);
            }
            try
            {
                string obj = JsonConvert.SerializeObject(request);
                request.Data.Locale = Thread.CurrentThread.CurrentCulture.Name;
                SetOrderMemberId(request.Data);
                var response = new OrderResponseViewModel();
                List <ValidationErrorViewModel> errors = null;
                var result = _iMobileOrderProvider.Save(request.Data, ref errors);
                if (result != null)
                {
                    response.Data             = result;
                    response.ValidationErrors = null != errors && errors.Any() ? errors : null;
                    JObject json = JObject.Parse(obj);
                    MobileActivityLogProvider.ActivityLog(json, response, request.Data.CustomerId, true,
                                                          this.Request.RequestUri.ToString(),
                                                          this.Request.Headers.ToString(),
                                                          this.Request.Headers.UserAgent.ToString(),
                                                          request.Data.Locale);

                    return(response);
                }

                if (result != null)
                {
                    var orderResponseViewModel = new OrderResponseViewModel {
                        Data = request.Data
                    };
                    JObject json1 = JObject.Parse(obj);
                    MobileActivityLogProvider.ActivityLog(json1, orderResponseViewModel, request.Data.CustomerId, true,
                                                          this.Request.RequestUri.ToString(),
                                                          this.Request.Headers.ToString(),
                                                          this.Request.Headers.UserAgent.ToString(),
                                                          request.Data.Locale);

                    return(orderResponseViewModel);
                }
            }
            catch (Exception ex)
            {
                LoggerHelper.Error(ex.ToString());
                throw CreateException(HttpStatusCode.InternalServerError,
                                      "Internal server errror searching for Submit Order" + ex.Message, 404);
            }
            var orderResponseViewModel2 = new OrderResponseViewModel {
                Data = null
            };

            MobileActivityLogProvider.ActivityLog(request, orderResponseViewModel2, request.Data.CustomerId, true,
                                                  this.Request.RequestUri.ToString(),
                                                  this.Request.Headers.ToString(),
                                                  this.Request.Headers.UserAgent.ToString(),
                                                  request.Data.Locale);

            return(orderResponseViewModel2);
        }
        public IActionResult Order(OrderRequestViewModel order)
        {
            var response = _OrderAppService.Order(order.Order);

            return(Ok(response));
        }