public async Task <string> deleteUser(string name) { User obj = (User)await VirtualBD.GetFromVirtualDBAsync(name); if (obj != null) { await Task.Run(() => { if (User.IsInRole(Role.Admin) || User.Identity.Name == obj.Name) { try { if (System.IO.File.Exists(_appEnvironment.WebRootPath + obj.Image)) { System.IO.File.Delete(_appEnvironment.WebRootPath + obj.Image); } VirtualBD.Users.Remove(obj); db.Users.Remove(obj); db.SaveChangesAsync(); } catch (Exception e) { _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message); } } }); } return($"{obj.Email} успешно удален!"); }
public async Task <string> Register(AuthorizationModel model) { User user = (User)await VirtualBD.GetFromVirtualDBAsync(model.Email); if (user == null) { user = new User { Email = model?.Email ?? "Error", Password = model?.Password ?? "Error" }; if (model.Email == null || model.Password == null) { _logger.LogError("LogWarning {0}", DateTime.Now.ToString() + "==> Column Email or Password is empty!"); } user.Role = Role.User; user.RegisterData = DateTime.Now.ToString(); user.Sex = 0; user.BD = "Неуказан"; user.Name = model?.Name; if (model.uploadedFile != null) { string patch = "/UserIcon/" + model.uploadedFile.FileName; templateMetod.UploadFileAsync(patch, model.uploadedFile, _appEnvironment); user.Image = patch; } else { user.Image = "/UserDefIcon.jpg"; } try { db.Users.Add(user); await db.SaveChangesAsync(); VirtualBD.Users.Add(user); await Authenticate(user); } catch (Exception e) { _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message); } templateMetod.newEvent(db, $"Зареестрирован пользователь:{model.Email}", model.Email, $"{model.Name}", ""); return("OK"); } else { return("Пользователь существует"); } }
public async Task <string> AddArticle(AddArticleModel model) { var user = (User)await VirtualBD.GetFromVirtualDBAsync(User.Identity.Name); try { ArticleModel article = new ArticleModel(); article.Header = model.header; article.Name = user.Name; article.Creator = user.Email; article.Viev = 0; article.Type = model.Type; article.Time = DateTime.Now.ToString(); article.Text += $"<div class=\"row\"> <div class=\"col\">{templateMetod.Translete(model.Type)}</div> </div>"; article.Text += $"<div class=\"row\"> <div class=\"col\">{model.Adress} </div> </div>"; article.Text += model.text; if (model.uploadedFile != null) { if (await templateMetod.UploadFileAsync("/Img/ArticlesImg/" + model.uploadedFile.FileName, model.uploadedFile, _appEnvironment)) { article.Image = "/Img/ArticlesImg/" + model.uploadedFile.FileName; templateMetod.CreateMinVersion(article.Image, "/Img/ArticleMinImg/" + model.uploadedFile.FileName, _appEnvironment); article.ImageMin = "/Img/ArticleMinImg/" + model.uploadedFile.FileName; } } db.Articles.Add(article); await db.SaveChangesAsync(); VirtualBD.Articles.Add(article); } catch (Exception e) { _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message); } templateMetod.newEvent(db, "Добавленна статья", user.Email, user.Name, $"добавил статью:{model.header}"); return("/Home/Index"); }
public async Task <string> Login(AuthorizationModel model) { User user = (User)await VirtualBD.GetFromVirtualDBAsync(model.Email); if (user != null) { if (user.Password == model.Password) { await Authenticate(user); return("OK"); } for (int i = 0; i < BlackList.list.Count; i++) { if (BlackList.list[i].User == model.Email) { if (BlackList.list[i].Try < 5) { BlackList.list[i].Try++; } else { BlackList.list[i].IP = HttpContext.Connection.RemoteIpAddress.ToString(); BlackList.list[i].Time = DateTime.Now; } } } if (!BlackList.list.Exists(x => x.User == model.Email)) { BlackList.list.Add(new BlackListModel { Try = 1, User = model.Email }); } return("Не верный логин или пароль!"); } else { return("Пользователь не найден!"); } }
//UserProfil public async Task <IActionResult> UserProfil(string name) { if (name != null) { User user = (User)await VirtualBD.GetFromVirtualDBAsync(name); if (user != null) { if (name != User.Identity.Name) { user.Role = Role.Guest; } return(View(user)); } else { return(RedirectToAction("Error", "Home")); } } else { return(RedirectToAction("Index", "Home")); } }
public async Task <IActionResult> Article(int id) { ArticleModel model = (ArticleModel)await VirtualBD.GetFromVirtualDBAsync(id, "Article"); if (model == null) { return(RedirectToAction("Error", "Home")); } model.Viev++; try { db.Articles.Update(model); await db.SaveChangesAsync(); VirtualBD.UpdateInVirtualDBAsync(model); } catch (Exception e) { _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message); } return(View(model)); }
public async Task <IActionResult> UserProfil(UserProfilUpdate model) { if (User.Identity.IsAuthenticated) { User user = (User)await VirtualBD.GetFromVirtualDBAsync(User.Identity.Name); user.Name = model?.Name; if (model.Login != null) { var obj = VirtualBD.Articles.FindAll(x => x.Creator == user.Email); for (int i = 0; i < obj.Count; i++) { obj[i].Creator = model.Login; VirtualBD.UpdateInVirtualDBAsync(obj[i]); db.Articles.Update(obj[i]); } var obj2 = VirtualBD.Comments.FindAll(x => x.Creator == user.Email); for (int i = 0; i < obj2.Count; i++) { obj2[i].Creator = model.Login; VirtualBD.UpdateInVirtualDBAsync(obj2[i]); db.Comments.Update(obj2[i]); } user.Email = model.Login; } user.Sex = model.Sex; user.BD = model?.BD; user.Password = user?.Password; if (model.uploadedFile != null) { string patch = "/UserIcon/" + model.uploadedFile.FileName; await templateMetod.UploadFileAsync(patch, model.uploadedFile, _appEnvironment); user.Image = patch; } try { db.Users.Update(user); await db.SaveChangesAsync(); VirtualBD.UpdateInVirtualDBAsync(user); } catch (Exception e) { _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message); } if (model.Login != null) { return(RedirectToAction("Logout", "Account")); } else { return(RedirectToAction("Index", "Home")); } } else { return(RedirectToAction("Login", "Account")); } }