public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (UserSessionContext.CurrentUser() == null || UserSessionContext.CurrentUserId() == Guid.Empty)
            {
                HttpContextBase context = filterContext.HttpContext;
                var             url     = context.Request.Url.ToString().ToLower();

                var customerLoginUrl = UserSessionContext.UrlFrontEndLogin + "?url=" + HttpUtility.UrlEncode(url);

                if (_returnTypeInJson)
                {
                    filterContext.Result = new JsonResult()
                    {
                        Data = new { Message = "Require logedin : " + url },
                        JsonRequestBehavior = JsonRequestBehavior.AllowGet
                    };
                }
                else
                {
                    filterContext.Result = new RedirectResult(customerLoginUrl);
                }
            }

            base.OnActionExecuting(filterContext);
        }
示例#2
0
        public Guid GetShoppingCartId()
        {
            var httpContext   = System.Web.HttpContext.Current;
            var currentUserId = UserSessionContext.CurrentUserId();

            var    sessionCart = httpContext.Session["shoppingcartid"];
            string temp        = string.Empty;

            if (sessionCart != null)
            {
                temp = sessionCart.ToString();
            }

            Guid cartId;

            if (!string.IsNullOrEmpty(temp))
            {
                return(Guid.Parse(temp));
            }

            cartId = Guid.NewGuid();
            httpContext.Session["shoppingcartid"] = cartId.ToString();
            MemoryMessageBuss.PushCommand(new CreateShoppingCart(cartId, currentUserId, LanguageId, CurrentIpAddress, SiteDomainUrl));

            return(cartId);
        }
示例#3
0
        public JsonResult CreateNewShoppingCart()
        {
            var id = Guid.NewGuid();

            SetShoppingCartId(id);
            MemoryMessageBuss.PushCommand(new CreateShoppingCart(id, UserSessionContext.CurrentUserId(), LanguageId, CurrentIpAddress, SiteDomainUrl));
            return(Json(new { Ok = true, Data = new { Id = id }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        public JsonResult DeleteVoucherCode(List <Guid> ids)
        {
            foreach (var id in ids)
            {
                MemoryMessageBuss.PushCommand(new DeleteVoucherCode(id, UserSessionContext.CurrentUserId(), DateTime.Now));
            }

            return(Json(new { Ok = true, Data = new { Ids = ids }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
示例#5
0
        public JsonResult CheckVoucherCode(string voucherCode)
        {
            if (string.IsNullOrEmpty(voucherCode))
            {
                return(Json(new
                {
                    Ok = false,
                    Data = new { VoucherValue = 0, Description = "voucher code required" },
                    Message = "voucher code required"
                }, JsonRequestBehavior.AllowGet));
            }
            var id = GetShoppingCartId();

            var currentUserId = UserSessionContext.CurrentUserId();

            MemoryMessageBuss.PushCommand(new CheckVoucherCodeForShoppingCart(id, voucherCode, currentUserId));
            ShoppingCart           cart;
            string                 description = string.Empty;
            List <ContentLanguage> contentLanguages;

            using (var db = new CoreEcommerceDbContext())
            {
                cart = db.ShoppingCarts.SingleOrDefault(i => i.Id == id);
                var voucher =
                    db.VoucherCodes.SingleOrDefault(
                        i => i.Code.Equals(voucherCode, StringComparison.OrdinalIgnoreCase));
                if (voucher == null)
                {
                    return(Json(new
                    {
                        Ok = false,
                        Data = new
                        {
                            VoucherValue = 0,
                            Description = "voucher code was not exist"
                        },
                        Message = "voucher code was not exist"
                    }, JsonRequestBehavior.AllowGet));
                }
                contentLanguages = db.ContentLanguages.Where(i => i.Id == voucher.Id || i.Id == voucher.VoucherMethodId)
                                   .ToList();
            }
            description = string.Join("<br>", contentLanguages.Where(i => i.ColumnName.Equals("Description")).Select(i => i.ColumnValue).ToList());
            return(Json(new
            {
                Ok = true,
                Data = new
                {
                    VoucherValue = cart.VoucherValue,
                    Description = description
                },
                Message = "Success"
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult AdminConfirmPayFail(string orderCode)
        {
            Guid id;

            using (var db = new CoreEcommerceDbContext())
            {
                id = db.PaymentTransactions.Where(i => i.OrderCode.Equals(orderCode, StringComparison.OrdinalIgnoreCase)).Select(i => i.Id)
                     .SingleOrDefault();
            }

            MemoryMessageBuss.PushCommand(new AdminFailPaymentTransaction(id, UserSessionContext.CurrentUserId(), DateTime.Now));
            return(Json(new { Ok = true, Data = new { OrderCode = orderCode }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
示例#7
0
        public JsonResult SaveProfile(string phone, string email)
        {
            var id = UserSessionContext.CurrentUserId();


            if (string.IsNullOrEmpty(phone) || string.IsNullOrEmpty(email))
            {
                return(Json(new { Ok = false, Data = new { Id = id }, Message = "Phone, email are require" }, JsonRequestBehavior.AllowGet));
            }


            MemoryMessageBuss.PushCommand(new UpdateUser(id, phone, email, id, DateTime.Now));

            return(Json(new { Ok = true, Data = new { Id = id }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
示例#8
0
        public JsonResult CreateVoucherCode(int quantity, long codeValue, Guid voucherMethodId)
        {
            Dictionary <Guid, string> codes = new Dictionary <Guid, string>();

            for (int i = 0; i < quantity; i++)
            {
                codes.Add(Guid.NewGuid(), VoucherCodeServices.GenerateCode());
            }
            var currentUserId = UserSessionContext.CurrentUserId();
            var createdDate   = DateTime.Now;

            foreach (var code in codes)
            {
                MemoryMessageBuss.PushCommand(new CreateVoucherCode(code.Key, code.Value, codeValue, voucherMethodId, currentUserId, createdDate));
            }
            return(Json(new { Ok = true, Data = new { Codes = codes.Select(i => new { Id = i.Key, Code = i.Value }) }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
示例#9
0
        public JsonResult CustomerConfirm(string orderCode)
        {
            PaymentTransaction payTrans;
            ShoppingCart       cart;

            using (var db = new CoreEcommerceDbContext())
            {
                payTrans = db.PaymentTransactions.SingleOrDefault(
                    i => i.OrderCode.Equals(orderCode, StringComparison.OrdinalIgnoreCase));
                if (payTrans == null)
                {
                    throw new Exception("payment was not created");
                }

                cart = db.ShoppingCarts.SingleOrDefault(i => i.OrderCode.Equals(orderCode, StringComparison.OrdinalIgnoreCase));
            }

            MemoryMessageBuss.PushCommand(new ConfirmShoppingCartByCustomer(cart.Id, UserSessionContext.CurrentUserId()));

            return(Json(new { Ok = true, Data = payTrans, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
示例#10
0
        public JsonResult ChangePassword(string oldPassword, string newPassword, string newPasswordRetype)
        {
            var id = UserSessionContext.CurrentUserId();

            if (string.IsNullOrEmpty(oldPassword) || string.IsNullOrEmpty(newPassword) ||
                !newPassword.Equals(newPasswordRetype))
            {
                return(Json(new { Ok = false, Data = new { Id = id }, Message = "Change password failed. Your passowrd is empty or not match" }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                MemoryMessageBuss.PushCommand(new ChangePasswordByUser(id, oldPassword, newPassword, id, DateTime.Now));

                return(Json(new { Ok = true, Data = new { Id = id }, Message = "Success" }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new { Ok = false, Data = new { Id = id }, Message = ex.GetMessages() }, JsonRequestBehavior.AllowGet));
            }
        }
示例#11
0
        public JsonResult CompleteAndPayOrder(Guid paymentMethodId,
                                              Guid shippingMethodId, DateTime receivingTime, string address, double addressLatitude, double addressLongitude
                                              , string addressName, string phone, string email
                                              , string voucherCode, string message)
        {
            if (receivingTime <= DateTime.Now)
            {
                return(Json(new { Ok = false, Data = new { }, Message = "receiving time must bigger than now" }, JsonRequestBehavior.AllowGet));
            }
            if (shippingMethodId == Guid.Empty || string.IsNullOrEmpty(address))
            {
                return(Json(new { Ok = false, Data = new { }, Message = "shipping method, address required" }, JsonRequestBehavior.AllowGet));
            }
            if (paymentMethodId == Guid.Empty || string.IsNullOrEmpty(phone) || string.IsNullOrEmpty(email))
            {
                return(Json(new { Ok = false, Data = new { }, Message = "payment method, phone, email required" }, JsonRequestBehavior.AllowGet));
            }
            if (email.IsValidEmail() == false)
            {
                return(Json(new { Ok = false, Data = new { }, Message = "email not valid" }, JsonRequestBehavior.AllowGet));
            }

            var id = GetShoppingCartId();

            var userId = UserSessionContext.CurrentUserId();

            MemoryMessageBuss.PushCommand(new CheckoutShoppingCart(id, userId,
                                                                   paymentMethodId, shippingMethodId, addressName, receivingTime, address, addressLatitude, addressLongitude
                                                                   , voucherCode, phone, email, message, LanguageId));

            ShoppingCart cart;

            using (var db = new CoreEcommerceDbContext())
            {
                cart = db.ShoppingCarts.SingleOrDefault(i => i.Id == id);
            }

            return(Json(new { Ok = true, Data = cart, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult AddComent(Guid id, string comment, Guid?commentParentId)
        {
            var    x          = commentParentId ?? Guid.Empty;
            string authorName = UserSessionContext.CurrentUsername();

            MemoryMessageBuss.PushCommand(new AddCommentToProduct(id, comment, authorName, UserSessionContext.CurrentUserId(), x));

            return(Json(new { Ok = true, Data = new { Id = id }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult AdminCancelOrder(Guid id)
        {
            MemoryMessageBuss.PushCommand(new AdminCancelOrderForShoppingCart(id, UserSessionContext.CurrentUserId(), DateTime.Now));

            return(Json(new { Ok = true, Data = new { Id = id }, Message = "Success" }, JsonRequestBehavior.AllowGet));
        }