/// <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("کد تخفیف مورد نظر یافت نشد.")); } }
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 } } } }
public BaseController() { _context = new AsefianContext(); }