Beispiel #1
0
        /// <summary>
        /// بررسی اطلاعات یک بن تخفیف
        /// </summary>
        /// <param name="_context">شی دیتابیس</param>
        /// <param name="user">اطلاعات کاربر بررسی کننده</param>
        /// <param name="code">کد کوپن مورد نظر</param>
        /// <returns>نتیجه بررسی کوپن</returns>
        public static Response CheckCoupon(AsefianContext _context, UserPrincipal user, string code, out Coupon coupon)
        {
            coupon = null;
            if (string.IsNullOrEmpty(code))
            {
                return(ResponseError("وارد کردن کد تخفیف الزامی می باشد."));
            }
            var couponEntity = _context.Coupon.Where(x => x.Code == code && x.StatusId == CouponStatus.Active.Id).SingleOrDefault();

            if (couponEntity != null)
            {
                if (couponEntity.UsableCount != null && couponEntity.UsableCount > 0 && couponEntity.UsedCount >= couponEntity.UsableCount)
                {
                    return(ResponseError("تعداد مصرف این کد تخفیف به اتمام رسیده است."));
                }

                if (couponEntity.FromDate != null && couponEntity.FromDate > DateTime.Now)
                {
                    return(ResponseError("مهلت استفاده ار کد تخفیف هنوز نشده است."));
                }

                if (couponEntity.ToDate != null && couponEntity.ToDate < DateTime.Now)
                {
                    return(ResponseError("مهلت استفاده ار کد تخفیف به اتمام رسیده است."));
                }

                if (couponEntity.UserId != null && couponEntity.UserId != user.id)
                {
                    return(ResponseError("این کد تخفیف برای کاربر شما نیست."));
                }

                coupon = couponEntity;
                return(ResponseSuccess(new
                {
                    type = coupon.TypeId,
                    value = coupon.Value
                }));
            }
            else
            {
                return(ResponseError("کد تخفیف مورد نظر یافت نشد."));
            }
        }
Beispiel #2
0
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            if (Request.Headers["Authorization"] != null)
            {
                try
                {
                    var token  = Request.Headers["Authorization"];
                    var userId = Auth.CheckToken(token);
                    if (userId != null)
                    {
                        using (var db = new AsefianContext())
                        {
                            var tokenEntity = db.Token.Where(x => x.AuthoritarianToken == token && x.ExpiredDateTime >= DateTime.Now).Single();
                            HttpContext.Current.User    = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(AsefianMetadata.Site, "Forms"), Permission.GetPermissionList(tokenEntity.User.Permission));
                            tokenEntity.ExpiredDateTime = DateTime.Now.AddMinutes(180);
                        }
                    }
                    else
                    {
                        throw new AuthenticationException();
                    }
                }
                catch (Exception)
                {
                }
            }
            else if (FormsAuthentication.CookiesSupported == true)
            {
                if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
                {
                    try
                    {
                        //let us take out the username now
                        HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(FormsAuthentication.FormsCookieName);
                        cookie.Expires = DateTime.Now.AddMinutes(90);
                        HttpContext.Current.Request.Cookies.Set(cookie);
                        FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
                        var user = JsonConvert.DeserializeObject <UserPrincipal>(ticket.Name);
                        //let us extract the roles from our own custom cookie
                        var permissionList = new List <string>();
                        permissionList.AddRange(Permission.GetPermissionList(int.Parse(PasswordUtility.Decrypt(user.token))));
                        using (var db = new AsefianContext())
                        {
                            var userGroup = db.Group.Where(x => x.UserGroupList.Any(y => y.UserId == user.id)).ToList();

                            foreach (var x in userGroup)
                            {
                                permissionList.AddRange(Permission.GetPermissionList(x.Permission));
                            }
                        }

                        permissionList = permissionList.Distinct().ToList();
                        //Let us set the Pricipal with our user specific details
                        HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(AsefianMetadata.Site, "Forms"), permissionList.ToArray());
                    }
                    catch (Exception)
                    {
                        //somehting went wrong
                    }
                }
            }
        }
Beispiel #3
0
 public BaseController()
 {
     _context = new AsefianContext();
 }