public ArticleFacultyViewModel SubmitArticle(ArticleFacultyViewModel articleFacultyViewModel) { var doesArticleExists = _dbContext.Articles.Include(a => a.Faculty) .Where(a => a.Title == articleFacultyViewModel.Article.Title && a.Faculty.Id == articleFacultyViewModel.Article.FacultyId); if (doesArticleExists.Any()) { // Message } else { var activeSemester = _semesterRepository.GetActiveSemester(); var articleResult = _dbContext.Articles.Add(articleFacultyViewModel.Article); _dbContext.SaveChanges(); _semesterRepository.AddArticleSemester(articleResult.Entity.Id, activeSemester.Id); return(null); } var model = new ArticleFacultyViewModel { Article = articleFacultyViewModel.Article, Faculties = _dbContext.Faculties.ToList(), StatusMessage = "Error: Article already exists in " + _dbContext.Faculties .SingleOrDefault(f => f.Id == articleFacultyViewModel.Article.FacultyId).FacultyName.ToString() }; return(model); }
public ArticleFacultyViewModel EditArticle(ArticleFacultyViewModel articleFacultyViewModel) { var doesArticleExists = _dbContext.Articles.Include(a => a.Faculty) .Where(a => a.Title == articleFacultyViewModel.Article.Title && a.Faculty.Id == articleFacultyViewModel.Article.FacultyId); var articleInDb = GetArticleById(articleFacultyViewModel.Article.Id); if (doesArticleExists.Any() && articleInDb.Title != articleFacultyViewModel.Article.Title) { // Message } else { articleInDb.Title = articleFacultyViewModel.Article.Title; articleInDb.Content = articleFacultyViewModel.Article.Content; _dbContext.SaveChanges(); return(null); } var model = new ArticleFacultyViewModel { Article = articleFacultyViewModel.Article, Faculties = _dbContext.Faculties.ToList(), StatusMessage = "Error: Article already exists in " + _dbContext.Faculties .SingleOrDefault(f => f.Id == articleFacultyViewModel.Article.FacultyId).FacultyName.ToString() }; return(model); }
public ArticleFacultyViewModel ArticleFacultyViewModel(string userName) { var activeSemester = _semesterRepository.GetActiveSemester(); var articleFacultyViewModel = new ArticleFacultyViewModel { Article = new Article(), Semester = activeSemester, Faculties = _dbContext.Faculties.OrderBy(f => f.FacultyName).Distinct().ToList(), UserFullName = userName }; return(articleFacultyViewModel); }
public async Task <IActionResult> SubmitArticle(ArticleFacultyViewModel articleFacultyViewModel) { var files = Request.Form.Files; var currentUser = User.FindFirstValue(ClaimTypes.NameIdentifier); var userFullname = _userRepository.GetUserFullName(currentUser).Result; var articleFacultyViewModelError = _studentRepository.ArticleFacultyViewModel(userFullname); if (!files.Any() && articleFacultyViewModel.Article.Content == null) { ViewData["Message"] = "Error: Content or file must be input!"; return(View(articleFacultyViewModelError)); } var articleSubmit = _studentRepository.SubmitArticle(articleFacultyViewModel); var templateFolderPath = Path.Combine(_webHostEnvironment.WebRootPath, "EmailTemplate"); var emailSubmitTemplatePath = Path.Combine(templateFolderPath, "ArticleSubmit.html"); string emailTemplate; using (var sourceReader = System.IO.File.OpenText(emailSubmitTemplatePath)) { emailTemplate = await sourceReader.ReadToEndAsync(); } if (articleSubmit == null) { if (files.Any()) { _documentRepository.UploadDocument(files, articleFacultyViewModel.Article.Id); } var listUserInSelectedFaculty = _studentRepository.GetUserInFacultyByFacultyId(articleFacultyViewModel.Article.FacultyId); foreach (var applicationUser in listUserInSelectedFaculty) { await _emailSender.SendEmailAsync(applicationUser.Email, "[Megatron] " + userFullname + " already submit article: " + articleFacultyViewModel.Article.Title, emailTemplate); } _logger.LogInformation("User has been submitted an new article!"); return(RedirectToAction(nameof(Index))); } ViewData["Message"] = articleSubmit.StatusMessage; return(View(articleFacultyViewModelError)); }
public ActionResult EditArticle(int id) { var articleInDb = _studentRepository.GetArticleById(id); if (articleInDb == null) { return(NotFound()); } var semesterActiveForEdit = _semesterRepository.GetSemesterForArticle(id); var articleVm = new ArticleFacultyViewModel() { Article = articleInDb, Semester = semesterActiveForEdit, Faculties = _facultyRepository.GetFaculties() }; return(View(articleVm)); }
public ActionResult EditArticle(ArticleFacultyViewModel articleFacultyViewModel) { var files = Request.Form.Files; if (files.Any()) { _documentRepository.UploadDocument(files, articleFacultyViewModel.Article.Id); } var articleToEdit = _studentRepository.EditArticle(articleFacultyViewModel); if (articleToEdit == null) { _logger.LogInformation("Article has been updated!"); return(RedirectToAction(nameof(Index))); } ViewData["Message"] = articleToEdit.StatusMessage; return(View(articleToEdit)); }