private void _ctx_SavedChanges(object sender, Microsoft.EntityFrameworkCore.SavedChangesEventArgs e) { var lastDbUpdateTime = DateTime.Now; int libCount = _ctx.LastRecordTimes.Count(); if (libCount == 0) { _ctx.LastRecordTimes.Add(new LastRecordTime() { lastUpdateTime = DateTime.Now }); } else { //_ctx.LastRecordTimes.Find(1).lastUpdateTime = DateTime.Now; _ctx.LastRecordTimes.FirstOrDefault().lastUpdateTime = DateTime.Now; } _ctx.SavedChanges -= _ctx_SavedChanges; _ctx.SaveChanges(); _ctx.SavedChanges += _ctx_SavedChanges; }
public ActionResult MoveFileToFtp(string id) { myFileMetadata md = FileVerification(id, StoragePath, true); if (md.FileInfo is null) { _logger.LogError("Не удалось получить информацию по файлу: {0}", Path.Combine(UploadsPath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } DbContext.FilesStorage.Remove(md.Object); DbContext.SaveChanges(); string file_name = PickFileName(md.Object.Name, UploadsPath); md.FileInfo.MoveTo(Path.Combine(UploadsPath, file_name)); if (!(md.ThumbFileInfo is null)) { md.ThumbFileInfo.MoveTo(Path.Combine(UploadsThumbsPath, file_name)); } return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Файл выгружен в общую папку: " + file_name, Status = StylesMessageEnum.success.ToString(), Tag = file_name })); }
public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { AppDataBaseContext context = services.GetRequiredService <AppDataBaseContext>(); IOptions <AppConfig> options = services.GetRequiredService <IOptions <AppConfig> >(); if (options.Value.HasDemoData) { SampleDemoData.Initialize(context); } if (options.Value.SetUserRootById > 0) { UserObjectModel user = context.Users.FirstOrDefault(x => x.Id == options.Value.SetUserRootById); if (user != null) { user.Role = AccessLevelUserRolesEnum.ROOT; context.SaveChanges(); } } } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred seeding the DB."); } } host.Run(); }
public Transaction Post(Transaction transaction) { User user = _ctx.Users.FirstOrDefault(x => x.Email == User.Identity.Name); User targetUser = _ctx.Users.FirstOrDefault(x => x.Id == transaction.TargetUserId); transaction.OwnerUserId = user.Id; transaction.Date = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; transaction.Balance = user.Balance - transaction.Amount; user.Balance = transaction.Balance; targetUser.Balance += transaction.Amount; _ctx.Transactions.Add(transaction); _ctx.Users.Update(user); _ctx.Users.Update(targetUser); _ctx.SaveChanges(); return(transaction); }
/*public Categoria ObtenerCategoria(int Id) * { * using (var db = new AppDataBaseContext()) * { * return db * .Categorias * .Where(categoria => categoria.Item.Id == Id); * * } * }*/ //TODO public void AddItem(string nombre, float precio, Categoria categoria) { using (var db = new AppDataBaseContext()) { db.Items .AddOrUpdate(new Item() { /*Dni = dni, * Nombre = nombre, * Apellido = apellido, * FechaNacimiento = fechaNacimiento*/ Nombre = nombre, Precio = precio, Categoria = categoria }); db.SaveChanges(); } }
public UsersController(AppDataBaseContext context) { this.db = context; db.Users.Add(new User { Name = "bob", Age = 66, Phone = +3989879877 }); db.Users.Add(new User { Name = "kolya", Age = 26, Phone = +39464665478 }); db.Users.Add(new User { Name = "vasya", Age = 31, Phone = +394545455 }); db.Users.Add(new User { Name = "ola", Age = 26, Phone = +3945454533 }); db.Users.Add(new User { Name = "max", Age = 8, Phone = +345458794552 }); db.SaveChanges(); }
public async Task <IActionResult> Post([FromBody] RegisterModel regUser) { if (!AppOptions.AllowedWebRegistration) { return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Регистрация через web интерфейс отключена администратором", Status = StylesMessageEnum.warning.ToString() })); } if (!ModelState.IsValid) { return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка контроля валидации модели. Регистрация отклонена.", Status = StylesMessageEnum.warning.ToString(), Tag = ModelState })); } if (AppOptions.IsEnableReCaptchaV2 || AppOptions.IsEnableReCaptchaV2Invisible) { string privatKey = AppOptions.IsEnableReCaptchaV2Invisible ? AppOptions.reCaptchaV2InvisiblePrivatKey : AppOptions.reCaptchaV2PrivatKey; reCaptcha2ResponseModel reCaptcha2Status = reCaptchaVerifier.reCaptcha2SiteVerify(privatKey, regUser.g_recaptcha_response, HttpContext.Connection.RemoteIpAddress.ToString()); if (reCaptcha2Status is null || !reCaptcha2Status.success || (reCaptcha2Status.ErrorСodes != null && reCaptcha2Status.ErrorСodes.Length > 0)) { return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Неудачная попытка регистрации. Ошибка верификации reCaptcha.", Status = StylesMessageEnum.danger.ToString(), Tag = reCaptcha2Status })); } } if (await DbContext.Users.AnyAsync(u => u.Name.ToLower() == regUser.PublicNameRegister.ToLower())) { return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Неудачная попытка регистрации. Публичное имя используется другим пользователем. Введите другое.", Status = StylesMessageEnum.warning.ToString() })); } UserObjectModel user = DbContext.Users.FirstOrDefault(u => u.Email.ToLower() == regUser.EmailRegister.ToLower()); if (user != null) { return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Неудачная попытка регистрации. Логин занят. Придумайте другой лгин для входа или воспользуйтесь формой входа.", Status = StylesMessageEnum.warning.ToString() })); } DepartmentObjectModel userDepartment = DbContext.Departments.FirstOrDefault(x => x.Name.ToLower() == "user"); if (userDepartment is null) { userDepartment = new DepartmentObjectModel() { Name = "user", isReadonly = true }; DbContext.Departments.Add(userDepartment); DbContext.SaveChanges(); } user = new UserObjectModel { Email = regUser.EmailRegister, Name = regUser.PublicNameRegister, Password = glob_tools.GetHashString(regUser.PasswordRegister), Role = AccessLevelUserRolesEnum.Auth, DepartmentId = userDepartment.Id }; DbContext.Users.Add(user); DbContext.SaveChanges(); await Authenticate(user); return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Регистрация успешно завершена", Status = StylesMessageEnum.success.ToString(), Tag = new { user.Name, user.Role, Department = user.Department.Name } })); }
public async Task Post(User user) { //user.Username is not null if (string.IsNullOrWhiteSpace(user.Username)) { Response.StatusCode = 400; await Response.WriteAsync("You must send a username"); return; } //user.Password is not null if (string.IsNullOrWhiteSpace(user.Password)) { Response.StatusCode = 400; await Response.WriteAsync("You must send a password"); return; } //user.Email is not null if (string.IsNullOrWhiteSpace(user.Email)) { Response.StatusCode = 400; await Response.WriteAsync("You must send a valid email address"); return; } //user.Email is not valid var regex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.Compiled); var match = regex.Match(user.Email); if (!(match.Success && match.Length == user.Email.Length)) { Response.StatusCode = 400; await Response.WriteAsync("You must send a valid email address"); return; } //user.Email is already exist in db var anyUser = _ctx.Users.Any(p => string.Compare(p.Email, user.Email) == 0); if (anyUser) { Response.StatusCode = 400; await Response.WriteAsync("User with that email already exist"); return; } user.Password = CalculateMD5Hash(user.Password); var email = user.Email; var password = user.Password; user.Balance = 500; _ctx.Users.Add(user); _ctx.SaveChanges(); var identity = GetIdentity(email, password); if (identity == null) { Response.StatusCode = 400; await Response.WriteAsync("Invalid username or password. - " + password); return; } var now = DateTime.UtcNow; var jwt = new JwtSecurityToken( issuer: AuthOptions.ISSUER, notBefore: now, claims: identity.Claims, expires: now.Add(TimeSpan.FromMinutes(AuthOptions.LIFETIME)), signingCredentials: new SigningCredentials( AuthOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256) ); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); var response = new { id_token = encodedJwt, username = identity.Name }; Response.ContentType = "application/json"; await Response.WriteAsync( JsonConvert.SerializeObject(response, new JsonSerializerSettings { Formatting = Formatting.Indented })); }