public OrderResponseViewModel Get(Guid id, string memberId) { if (id == null) { throw CreateException(HttpStatusCode.BadRequest, "Invalid or Incomplete Order information", 101416); } try { var locale = Thread.CurrentThread.CurrentCulture.Name; var result = _iMobileOrderProvider.GetOrder(id, memberId, locale); if (result != null) { var response = new OrderResponseViewModel { Data = result }; MobileActivityLogProvider.ActivityLog(response, response, memberId, true, this.Request.RequestUri.ToString(), this.Request.Headers.ToString(), this.Request.Headers.UserAgent.ToString(), locale); return(response); } } catch (Exception ex) { LoggerHelper.Error(ex.ToString()); throw CreateException(HttpStatusCode.InternalServerError, "Internal server errror searching for Get Orders" + ex.Message, 500); } var orderResponseViewModel3 = new OrderResponseViewModel { Data = null }; MobileActivityLogProvider.ActivityLog(string.Empty, orderResponseViewModel3, memberId, true, this.Request.RequestUri.ToString(), this.Request.Headers.ToString(), this.Request.Headers.UserAgent.ToString(), Thread.CurrentThread.CurrentCulture.Name); return(orderResponseViewModel3); }
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)); } }
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); }