Beispiel #1
0
        public static List <EditProductNote> GetByProductID(int productID)
        {
            using (var db = OnlineStoreDbContext.Entity)
            {
                var query = from item in db.ProductNotes
                            where item.ProductID == productID
                            select new EditProductNote
                {
                    Note       = item.Note,
                    UserID     = item.UserID,
                    LastUpdate = item.LastUpdate
                };

                var result = query.ToList();

                foreach (var item in result)
                {
                    var user = OSUsers.GetByID(item.UserID);

                    if (user != null)
                    {
                        item.Username = user.UserName;
                    }
                }

                return(result);
            }
        }
Beispiel #2
0
        public ActionResult Index(string id)
        {
            List <PostalInformation> PostalInfoList = new List <PostalInformation>();

            var IDs = id.Split(',');

            foreach (var item in IDs)
            {
                var cart = Carts.GetByID(Int32.Parse(item));

                if (cart.UserID != null)
                {
                    var user  = OSUsers.GetByID(cart.UserID);
                    var buyer = Mapper.Map <ViewBuyerInfo>(user);

                    buyer.StateName = user.StateID.HasValue ? Cities.GetCityName(user.StateID.Value) : String.Empty;
                    buyer.CityName  = user.CityID.HasValue ? Cities.GetCityName(user.CityID.Value) : String.Empty;

                    PostalInformation postalInfo = new PostalInformation
                    {
                        ViewBuyerInfo = buyer,
                        Description   = cart.UserDescription
                    };

                    PostalInfoList.Add(postalInfo);
                }
            }


            return(View(PostalInfoList));
        }
        public ActionResult Index(int id)
        {
            FactorSettings factor;

            var cart = Carts.GetFactor(id);

            ViewBag.Message = Utilities.MellatBankResult(cart.ResCode.ToString());

            // پرداخت موفقیت آمیز
            if (cart.CartStatus == CartStatus.Success || cart.CartStatus == CartStatus.FuturePay)
            {
                #region Success Payment

                ViewBag.Message += "<br/> کد رهگیری: " + cart.SaleReferenceID;

                var cartItems = CartItems.GetOrderItems(cart.ID);
                var user      = OSUsers.GetByID(cart.UserID);

                #region Mapp To Buyer

                var buyer = Mapper.Map <ViewBuyerInfo>(user);

                buyer.StateName = user.StateID.HasValue ? Cities.GetCityName(user.StateID.Value) : String.Empty;
                buyer.CityName  = user.CityID.HasValue ? Cities.GetCityName(user.CityID.Value) : String.Empty;

                #endregion Mapp To Buyer

                factor = new FactorSettings
                {
                    IsSuccess      = true,
                    CartItems      = cartItems,
                    FactorInfo     = cart,
                    BuyerInfo      = buyer,
                    CompanyEmail   = StaticValues.Email,
                    CompanyLogo    = StaticValues.Logo,
                    CompanyName    = StaticValues.WebsiteTitle,
                    CompanyWebsite = StaticValues.WebsiteUrl,
                    CompanyPhone   = StaticValues.Phone
                };

                #endregion Success Payment
            }
            else
            {
                #region Fail Payment

                factor = new FactorSettings
                {
                    IsSuccess = false
                };

                #endregion Fail Payment
            }

            return(View("/Areas/User/Views/Factor/Index.cshtml", model: factor));
        }
        public JsonResult Get(int pageIndex, int pageSize, string pageOrder, string userName, string fullName, string email, string isActive)
        {
            bool?active = null;

            if (isActive != "-1")
            {
                active = Boolean.Parse(isActive);
            }

            if (pageOrder.Trim() == "ID")
            {
                pageOrder = "LastUpdate desc";
            }
            var list = OSUsers.Get(pageIndex,
                                   pageSize,
                                   pageOrder,
                                   userName,
                                   fullName,
                                   email,
                                   active);

            int total     = OSUsers.Count(userName, fullName, email, active);
            int totalPage = (int)Math.Ceiling((decimal)total / pageSize);

            if (pageSize > total)
            {
                pageSize = total;
            }

            if (list.Count < pageSize)
            {
                pageSize = list.Count;
            }

            JsonResult result = new JsonResult()
            {
                Data = new
                {
                    TotalPages = totalPage,
                    PageIndex  = pageIndex,
                    PageSize   = pageSize,
                    Rows       = list
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };

            return(result);
        }
Beispiel #5
0
 public ActionResult Index()
 {
     if (User.Identity.IsAuthenticated)
     {
         var user = OSUsers.GetByID(UserID);
         if (String.IsNullOrWhiteSpace(user.Mobile) ||
             String.IsNullOrWhiteSpace(user.Phone) ||
             user.StateID == null ||
             user.CityID == null ||
             String.IsNullOrWhiteSpace(user.HomeAddress)
             )
         {
             ViewBag.UserInfo = false;
         }
     }
     return(View(url));
 }
Beispiel #6
0
        public ActionResult Index()
        {
            var           activeSendMethods    = SendMethods.GetActiveMethods();
            var           activePaymentMethods = PaymentMethods.GetActiveMethods();
            ViewBuyerInfo buyer = new ViewBuyerInfo();

            if (User.Identity.IsAuthenticated)
            {
                var user = OSUsers.GetByID(UserID);

                #region Mapp To Buyer

                buyer.Firstname = user.Firstname;
                buyer.Lastname  = user.Lastname;
                buyer.Email     = user.Email;

                // TODO: UserAddresses
                buyer.Phone       = user.Phone;
                buyer.Mobile      = user.Mobile;
                buyer.HomeAddress = user.HomeAddress;
                buyer.PostalCode  = user.PostalCode;
                if (user.StateID.HasValue)
                {
                    buyer.StateName = Cities.GetCityName(user.StateID.Value);
                }
                if (user.CityID.HasValue)
                {
                    buyer.CityName = Cities.GetCityName(user.CityID.Value);
                }

                #endregion Mapp To Buyer
            }

            var send    = Mapper.Map <List <ViewSendMethod> >(activeSendMethods);
            var payment = Mapper.Map <List <ViewPaymentMethod> >(activePaymentMethods);

            CartSettings cart = new CartSettings
            {
                PaymentMethods   = payment,
                SendMethods      = send,
                IsAuthentication = User.Identity.IsAuthenticated,
                BuyerInfo        = buyer
            };

            return(View(cart));
        }
        public ActionResult Edit(string id)
        {
            EditOSUser editOSUser;

            if (!string.IsNullOrWhiteSpace(id))
            {
                var osUser = OSUsers.GetByID(id);

                editOSUser         = Mapper.Map <EditOSUser>(osUser);
                editOSUser.RoleIDs = UserRoles.GetByUserID(id).Select(item => item.RoleId).ToArray();
            }
            else
            {
                editOSUser = new EditOSUser();
            }

            return(View(editOSUser));
        }
Beispiel #8
0
        public async Task <ActionResult> Index(string refID, int resCode, string saleOrderID, string saleReferenceID)
        {
            var cart = Carts.GetByOrderID(saleOrderID);

            string resSettle = String.Empty,
                   resVerify = String.Empty;

            var cartStatus = CartStatus.Fail;

            if (resCode == 0)
            {
                cartStatus = CartStatus.Success;
            }

            updateCart(ref resSettle,
                       ref resVerify,
                       refID,
                       saleOrderID,
                       saleReferenceID,
                       resCode,
                       cartStatus,
                       cart.ID);

            logPaymentData(resSettle,
                           resVerify,
                           saleReferenceID,
                           saleOrderID,
                           resCode,
                           cartStatus);

            var user = OSUsers.GetByID(cart.UserID);

            if (!User.Identity.IsAuthenticated)
            {
                await SignInAsync(user, true);
            }

            if (resCode == 0)
            {
                sendMessage(user, saleReferenceID, cart);
            }

            return(Redirect("My-Account/My-Orders/Factor/" + cart.ID));
        }
        public JsonResult Delete(string id)
        {
            var jsonSuccessResult = new JsonSuccessResult();

            try
            {
                OSUsers.Delete(id);
                jsonSuccessResult.Success = true;
            }
            catch (Exception ex)
            {
                jsonSuccessResult.Errors  = new string[] { ex.Message };
                jsonSuccessResult.Success = false;
            }

            return(new JsonResult()
            {
                Data = jsonSuccessResult
            });
        }
        public ActionResult Edit(ProductQuestion productQuestion, string sendEmail)
        {
            try
            {
                productQuestion.LastUpdate = DateTime.Now;

                ViewBag.Success = true;

                if (productQuestion.ID == -1)
                {
                    productQuestion.UserID   = UserID;
                    productQuestion.DateTime = DateTime.Now;

                    ProductQuestions.Insert(productQuestion);

                    UserNotifications.Send(UserID, String.Format("جدید - سوالات متداول '{0}'", productQuestion.Question), "/Admin/ProductQuestions/Edit/" + productQuestion.ID, NotificationType.Success);

                    productQuestion = new ProductQuestion();
                }
                else
                {
                    ProductQuestions.Update(productQuestion);

                    if (!String.IsNullOrWhiteSpace(productQuestion.UserID) && sendEmail == "on" && productQuestion.QuestionStatus == QuestionStatus.Answered)
                    {
                        var user = OSUsers.GetByID(productQuestion.UserID);

                        EmailServices.SendEmail(user.Email, "پاسخ به پرسش شما", productQuestion.Reply, user.Id);
                    }
                }
            }
            catch (Exception ex)
            {
                SetErrors(ex);
            }

            return(ClearView(model: productQuestion));
        }
Beispiel #11
0
        public ActionResult Index()
        {
            var user = OSUsers.GetByID(UserID);

            var buyer = Mapper.Map <ViewBuyerInfo>(user);

            // TODO: UserAddresses
            buyer.StateName = user.StateID.HasValue ? Cities.GetCityName(user.StateID.Value) : String.Empty;
            buyer.CityName  = user.CityID.HasValue ? Cities.GetCityName(user.CityID.Value) : String.Empty;

            MyAccountSettings model = new MyAccountSettings();

            model.Orders          = Carts.CountOrdersByUserID(UserID);
            model.OrdersSubmitted = Carts.CountOrdersByUserID(UserID, SendStatus.Sent);
            model.OrdersDelivered = Carts.CountOrdersByUserID(UserID, SendStatus.Delivered);
            model.Comments        = ScoreComments.CountByUserID(UserID);
            model.CommentRates    = ProductCommentRates.CountByUserID(UserID);
            model.Wishes          = UserWishes.CountByUserID(UserID);
            model.Posts           = Articles.CountByUserID(ArticleType.Blog, UserID);
            model.UserInfo        = buyer;

            return(View("/Areas/User/Views/MyAccount/Index.cshtml", model: model));
        }
Beispiel #12
0
        public ActionResult Edit(EditCart editCart, string notices)
        {
            try
            {
                var old = Carts.GetByID(editCart.ID);

                Cart cart = new Cart
                {
                    ID                 = editCart.ID,
                    CartStatus         = editCart.CartStatus,
                    SendStatus         = editCart.SendStatus,
                    SendDate           = editCart.SendDate,
                    DeliveryDate       = editCart.DeliveryDate,
                    ConfirmationStatus = editCart.ConfirmationStatus,
                    ConfirmationDate   = editCart.ConfirmationDate,
                    BillNumber         = editCart.BillNumber,
                    Description        = editCart.Description,
                    LastUpdate         = DateTime.Now,
                };

                SaveNotes(editCart, editCart.ID, UserID);

                ViewBag.Success = true;

                Carts.UpdateByAdmin(cart);

                #region User Info

                var user = OSUsers.GetByID(old.UserID);

                #endregion User Info

                if (notices == "on")
                {
                    #region Send Messages

                    // تاییدیه مالی
                    if (old.ConfirmationStatus != ConfirmationStatus.Approved &&
                        editCart.ConfirmationStatus == ConfirmationStatus.Approved)
                    {
                        SMSServices.FinancialConfirmation(user.Firstname, user.Lastname, user.Mobile, user.Id);
                        EmailServices.FinancialConfirmation(user.Firstname, user.Lastname, user.Email, user.Id);
                    }

                    // بررسی شده
                    if (old.SendStatus == SendStatus.NotChecked && cart.SendStatus == SendStatus.Checked)
                    {
                        SMSServices.CheckeProduct(user.Firstname, user.Lastname, user.Mobile, user.Id);
                        EmailServices.CheckeProduct(user.Firstname, user.Lastname, user.Email, user.Id);
                    }

                    // ارسال کالا
                    if (old.SendStatus == SendStatus.Checked && cart.SendStatus == SendStatus.Sent)
                    {
                        SMSServices.SendProduct(user.Firstname, user.Lastname, user.Mobile, user.Id, editCart.BillNumber);
                        EmailServices.SendProduct(user.Firstname, user.Lastname, user.Email, user.Id, editCart.BillNumber);
                    }

                    // تحویل کالا
                    if (old.SendStatus != SendStatus.Delivered && cart.SendStatus == SendStatus.Delivered)
                    {
                        SMSServices.DliverProduct(user.Firstname, user.Lastname, user.Mobile, user.Id);
                        EmailServices.DliverProduct(user.Firstname, user.Lastname, user.Email, user.Id);
                    }

                    #endregion Send Messages
                }
            }
            catch (Exception ex)
            {
                SetErrors(ex);
            }

            return(RedirectToAction("Index"));
        }
Beispiel #13
0
        public JsonResult Payment(OSUser osUser, SendMethodType sendMethodType, PaymentMethodType paymentMethodType, string userDescription)
        {
            var jsonSuccessResult = new JsonSuccessResult();

            try
            {
                var payDate = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0');
                var payTime = DateTime.Now.Hour.ToString().PadLeft(2, '0') + DateTime.Now.Minute.ToString().PadLeft(2, '0') + DateTime.Now.Second.ToString().PadLeft(2, '0');
                var orderID = payDate + payTime;

                string userID;
                int?   cityID;

                if (User.Identity.IsAuthenticated)
                {
                    userID = UserID;
                    cityID = OSUsers.GetByID(UserID).CityID;
                }
                else
                {
                    cityID = osUser.CityID;

                    IdentityResult result = registerUser(ref osUser);

                    if (result.Succeeded)
                    {
                        UserNotifications.Send(StaticValues.AdminID, String.Format("ثبت نام کاربر - در فرم سبد خرید '{0}'", osUser.UserName), "/Admin/OSUsers/Edit/" + osUser.Id, NotificationType.Success);
                        userID = osUser.Id;
                    }
                    else
                    {
                        throw new Exception(result.Errors.Aggregate((a, b) => a + ", " + b));
                    }
                }

                int total         = 0,
                    totalDiscount = 0,
                    delivaryPrice = -1;

                var cart      = GetCart(HttpContext);
                var cartItems = CartItems.GetByCartID(cart.ID, (User.Identity.IsAuthenticated ? userID : null));
                var listGifts = new List <CartItemGift>();

                foreach (var item in cartItems)
                {
                    var price = (item.DiscountPercent > 0 ? item.DiscountPrice : item.Price);

                    #region Update CartItem

                    var cartItem = CartItems.GetByID(item.ID);
                    cartItem.Price          = price;
                    cartItem.IsFreeDelivery = item.IsFreeDelivery;
                    CartItems.Update(cartItem);

                    #endregion Update CartItem

                    totalDiscount += item.Quantity * price;
                    total         += item.Quantity * item.Price;

                    foreach (var gift in item.Gifts)
                    {
                        listGifts.Add(new CartItemGift
                        {
                            CartItemID = item.ID,
                            GiftID     = gift.GiftID,
                            Price      = gift.Price,
                            LastUpdate = DateTime.Now
                        });
                    }
                }

                if (
                    (sendMethodType == SendMethodType.Free && cityID == 468) ||      // مشهد
                    (StaticValues.MaxPriceFreeDelivery && totalDiscount >= 10000) || // طرح های بالای ارسال
                    (cartItems.Any(a => a.IsFreeDelivery))                           // محصولات دارای ارسال رایگان
                    )
                {
                    delivaryPrice = 50000;
                }
                else
                {
                    delivaryPrice = StaticValues.DeliveryPrice;
                }

                // ثبت هدایا
                if (listGifts.Count > 0)
                {
                    CartItemGifts.Insert(listGifts);
                }

                var toPay = (totalDiscount + delivaryPrice);

                string refID = String.Empty;

                if (paymentMethodType == PaymentMethodType.Online)
                {
                    Logs.Alert(Utilities.GetIP(), "PaymentMethodType.Online", String.Format("payDate: {0}, payTime: {1}, orderID: {2}, toPay: {3}", payDate, payTime, orderID, toPay));
                    refID = connectToMellat(payDate, payTime, orderID, toPay);
                }

                #region Update Cart

                cart.UserID            = userID;
                cart.SendMethodType    = sendMethodType;
                cart.PaymentMethodType = paymentMethodType;
                cart.Tax             = Int32.Parse(StaticValues.Tax);
                cart.IP              = Utilities.GetIP();
                cart.UserDescription = userDescription;

                cart.Total         = total;
                cart.DelivaryPrice = delivaryPrice;
                cart.TotalDiscount = totalDiscount;
                cart.ToPay         = toPay;

                cart.DateTime = cart.LastUpdate = DateTime.Now;
                cart.CartGuid = null;

                if (paymentMethodType == PaymentMethodType.Online)
                {
                    cart.CartStatus = CartStatus.DuringPay;
                }
                else if (paymentMethodType == PaymentMethodType.Card || paymentMethodType == PaymentMethodType.Home)
                {
                    cart.CartStatus = CartStatus.FuturePay;
                }

                cart.SendStatus = SendStatus.NotChecked;
                cart.OrderID    = orderID;

                Carts.Update(cart);

                #endregion Update Cart

                logPaymentData(orderID, toPay, cart.ID);

                jsonSuccessResult.Success = true;

                if (paymentMethodType == PaymentMethodType.Online)
                {
                    jsonSuccessResult.Data = new
                    {
                        PgwSite = StaticValues.PgwSite,
                        RefID   = refID
                    }
                }
                ;
                else
                {
                    jsonSuccessResult.Data = new
                    {
                        ToPayPrice = toPay
                    };

                    OSUser user;
                    // اطلاع رسانی به مدیر سایت
                    if (User.Identity.IsAuthenticated)
                    {
                        user = OSUsers.GetByID(UserID);
                    }
                    else
                    {
                        user = osUser;
                    }

                    NotifyNewOrder(user, cart, "-1");
                }
            }
            catch (DbException ex)
            {
                jsonSuccessResult.Errors  = ex.Errors.ToArray();
                jsonSuccessResult.Success = false;

                Logs.Alert(Utilities.GetIP(), "Payment Error", ex.Errors.Aggregate((a, b) => a + ", " + b) + "_" + ex.StackTrace, LogType.Error);
            }
            catch (Exception ex)
            {
                jsonSuccessResult.Errors  = new string[] { ex.Message };
                jsonSuccessResult.Success = false;

                Logs.Alert(Utilities.GetIP(), "Payment Error", ex.Message + "_" + ex.StackTrace, LogType.Error);
            }

            return(new JsonResult()
            {
                Data = jsonSuccessResult,
            });
        }