/// <summary> /// Converts to order model. /// </summary> /// <param name="addNewOrderModel">The model.</param> /// <returns></returns> public static Order BindOrderModel(AddNewOrderModel addNewOrderModel, List <string> poNumber, List <string> uniqueOrderIds, long promoCodeId = 0, decimal percentage = 0, decimal discountAmount = 0) { Order orderModel = new Order(); if (addNewOrderModel != null) { orderModel.UserFK = DBHelper.ParseInt64(addNewOrderModel.UserId); orderModel.UserAddressFK = DBHelper.ParseInt64(addNewOrderModel.UserAddressId); orderModel.UserFK = DBHelper.ParseInt64(addNewOrderModel.UserId); orderModel.SubTotalAmount = GetSubTotalAmount(addNewOrderModel.ProductDetail); orderModel.DiscountAmount = 0; if (promoCodeId > 0) { orderModel.PromocodeFK = promoCodeId; } if (percentage > 0) { orderModel.DiscountAmount = orderModel.SubTotalAmount * percentage / 100; } else if (discountAmount > 0) { orderModel.DiscountAmount = discountAmount; } orderModel.PayableAmount = orderModel.SubTotalAmount - orderModel.DiscountAmount; if (!string.IsNullOrWhiteSpace(addNewOrderModel.OrderId) && DBHelper.ParseInt64(addNewOrderModel.OrderId) > 0) { orderModel.OrderId = DBHelper.ParseInt64(addNewOrderModel.OrderId); orderModel.ModifiedOn = DateTime.Now; orderModel.UpdatedBy = DBHelper.ParseInt64(addNewOrderModel.CreatedBy); } else { orderModel.CreatedBy = DBHelper.ParseInt64(addNewOrderModel.CreatedBy); orderModel.CreatedOn = DateTime.Now; orderModel.OrderDate = DateTime.Now; orderModel.PONumber = CheckPoNumber(poNumber); orderModel.UniqueOrderId = CheckOrderId(uniqueOrderIds); } } return(orderModel); }
public IActionResult AddOrder(AddNewOrderModel addNewOrderModel) { try { if (ModelState.IsValid) { var uniquePONumber = iOrder.GetAllUniquePoNumber(); var uniqueOrderIds = iOrder.GetAllUniqueInvoiceIds(); long promoCodeId = 0; decimal percentage = 0; decimal discountAmount = 0; if (!string.IsNullOrWhiteSpace(addNewOrderModel.Promocode)) { var promocodeModel = iPromoCode.GetPromoCodeByCode(addNewOrderModel.Promocode); if (promocodeModel != null) { promoCodeId = promocodeModel.PromoCodeId; percentage = promocodeModel.Percentage; discountAmount = promocodeModel.Amount; } } Order orderModel = OrderHelper.BindOrderModel(addNewOrderModel, uniquePONumber, uniqueOrderIds, promoCodeId, percentage, discountAmount); List <OrderDetail> detailModel = OrderHelper.BindOrderDetailModel(addNewOrderModel.ProductDetail); long orderId = 0; if (orderModel.OrderId <= 0) { orderId = iOrder.AddOrder(orderModel, detailModel); } else { orderId = iOrder.EditOrder(orderModel, detailModel); } if (orderId > 0) { var cart = iCart.EmptyCart(DBHelper.ParseInt64(addNewOrderModel.UserId)); var orderDetailModel = iOrder.GetOrderDetail(orderId); if (!string.IsNullOrWhiteSpace(addNewOrderModel.IsMailSend) && addNewOrderModel.IsMailSend.Equals("1")) { if (orderDetailModel != null) { var HostingPath = env.ContentRootPath; string clientEmail = config.GetValue <string>("app_settings:ClientEmail"); string clientEmailPassword = config.GetValue <string>("app_settings:ClientEmailPassword"); string port = config.GetValue <string>("app_settings:Port"); string mailHost = config.GetValue <string>("app_settings:SMTPURL"); string host = this.Request.Host.Value; string scheme = this.Request.Scheme; OrderDetailModel orderDetailmodel = OrderHelper.BindOrderDetailModel(orderDetailModel, null); OrderHelper.SendResetPasswordMail(orderDetailmodel.EmailId, orderDetailmodel, DBHelper.ParseString(HostingPath), clientEmail, clientEmailPassword, port, mailHost, host, scheme); } } return(Ok(ResponseHelper.Success(MessageConstants.OrderPlaced + orderDetailModel[0].Order.UniqueOrderId))); } else { return(Ok(ResponseHelper.Error(MessageConstants.OrderNotPlaced))); } } else { return(Ok(ResponseHelper.Error(MessageConstants.CompulsoryData))); } } catch (Exception ex) { LogHelper.ExceptionLog(ex.Message + " ::::: " + ex.StackTrace); return(Ok(ResponseHelper.Error(ex.Message))); } }