public ActionResult Index( [FromServices] ITwoLevelCache cache, [FromServices] ISqlConnections sqlConnections ) { if (cache is null) { throw new ArgumentNullException(nameof(cache)); } if (sqlConnections is null) { throw new ArgumentNullException(nameof(sqlConnections)); } var cachedModel = cache.GetLocalStoreOnly("DashboardPageModel", TimeSpan.FromMinutes(5), OrderRow.Fields.GenerationKey, () => { var model = new DashboardPageModel(); var o = OrderRow.Fields; using (var connection = sqlConnections.NewFor <OrderRow>()) { model.OpenOrders = connection.Count <OrderRow>(o.ShippingState == (int)OrderShippingState.NotShipped); var closedOrders = connection.Count <OrderRow>(o.ShippingState == (int)OrderShippingState.Shipped); var totalOrders = model.OpenOrders + closedOrders; model.ClosedOrderPercent = (int)Math.Round(totalOrders == 0 ? 100 : ((double)closedOrders / (double)totalOrders * 100)); model.CustomerCount = connection.Count <CustomerRow>(); model.ProductCount = connection.Count <ProductRow>(); } return(model); }); return(View(MVC.Views.Common.Dashboard.DashboardIndex, cachedModel)); }
public ActionResult ResetPassword(string t, [FromServices] ISqlConnections sqlConnections) { int userId; try { var bytes = HttpContext.RequestServices .GetDataProtector("ResetPassword").Unprotect(Convert.FromBase64String(t)); using (var ms = new MemoryStream(bytes)) using (var br = new BinaryReader(ms)) { var dt = DateTime.FromBinary(br.ReadInt64()); if (dt < DateTime.UtcNow) { return(Error(Texts.Validation.InvalidResetToken.ToString(Localizer))); } userId = br.ReadInt32(); } } catch (Exception) { return(Error(Texts.Validation.InvalidResetToken.ToString(Localizer))); } if (sqlConnections is null) { throw new ArgumentNullException(nameof(sqlConnections)); } using (var connection = sqlConnections.NewFor <UserRow>()) { var user = connection.TryById <UserRow>(userId); if (user == null) { return(Error(Texts.Validation.InvalidResetToken.ToString(Localizer))); } } if (UseAdminLTELoginBox) { return(View(MVC.Views.Membership.Account.ResetPassword.AccountResetPassword_AdminLTE, new ResetPasswordModel { Token = t })); } else { return(View(MVC.Views.Membership.Account.ResetPassword.AccountResetPassword, new ResetPasswordModel { Token = t })); } }
public Result <ServiceResponse> ResetPassword(ResetPasswordRequest request, [FromServices] ISqlConnections sqlConnections) { return(this.InTransaction("Default", uow => { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrEmpty(request.Token)) { throw new ArgumentNullException("token"); } var bytes = HttpContext.RequestServices .GetDataProtector("ResetPassword").Unprotect(Convert.FromBase64String(request.Token)); int userId; using (var ms = new MemoryStream(bytes)) using (var br = new BinaryReader(ms)) { var dt = DateTime.FromBinary(br.ReadInt64()); if (dt < DateTime.UtcNow) { throw new ValidationError(Texts.Validation.InvalidResetToken.ToString(Localizer)); } userId = br.ReadInt32(); } UserRow user; if (sqlConnections is null) { throw new ArgumentNullException(nameof(sqlConnections)); } using (var connection = sqlConnections.NewFor <UserRow>()) { user = connection.TryById <UserRow>(userId); if (user == null) { throw new ValidationError(Texts.Validation.InvalidResetToken.ToString(Localizer)); } } if (request.ConfirmPassword != request.NewPassword) { throw new ValidationError("PasswordConfirmMismatch", Localizer.Get("Validation.PasswordConfirm")); } request.NewPassword = UserRepository.ValidatePassword(request.NewPassword, Localizer); string salt = null; var hash = UserRepository.GenerateHash(request.NewPassword, ref salt); UserRepository.CheckPublicDemo(user.UserId); uow.Connection.UpdateById(new UserRow { UserId = user.UserId.Value, PasswordSalt = salt, PasswordHash = hash }); Cache.InvalidateOnCommit(uow, UserRow.Fields); return new ServiceResponse(); })); }
public static void PopulateInitialItems(ISqlConnections sqlConnections) { if (sqlConnections is null) { throw new ArgumentNullException(nameof(sqlConnections)); } using (var connection = sqlConnections.NewFor <MyRow>()) { if (connection.Count <MyRow>() != 0) { return; } var folder1 = (int)connection.InsertAndGetID(new MyRow { Title = "Folder 1" }); connection.Insert(new MyRow { Title = "Item 1", ParentId = folder1 }); var sub1 = (int)connection.InsertAndGetID(new MyRow { Title = "Sub folder 1", ParentId = folder1 }); connection.Insert(new MyRow { Title = "Item 2", ParentId = sub1 }); connection.Insert(new MyRow { Title = "Item 3", ParentId = sub1 }); var sub2 = (int)connection.InsertAndGetID(new MyRow { Title = "Sub folder 2", ParentId = folder1 }); connection.Insert(new MyRow { Title = "Item 4", ParentId = sub2 }); connection.Insert(new MyRow { Title = "Item 5", ParentId = sub2 }); var subsub = (int)connection.InsertAndGetID(new MyRow { Title = "Sub sub folder", ParentId = sub2 }); connection.Insert(new MyRow { Title = "Item 6", ParentId = subsub }); connection.Insert(new MyRow { Title = "Item 7", ParentId = subsub }); var folder2 = (int)connection.InsertAndGetID(new MyRow { Title = "Folder 2" }); connection.Insert(new MyRow { Title = "Item 8", ParentId = folder2 }); connection.Insert(new MyRow { Title = "Item 9" }); connection.Insert(new MyRow { Title = "Item 10" }); } }