示例#1
0
        /// <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);
        }
示例#2
0
 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)));
     }
 }