Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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));
        }