public async Task <IActionResult> New(NewsViewModel model) { try { if (ModelState.IsValid) { var elections = await _electionsRepository.GetElectionsForNewsFeed(); var ballots = elections.Value.SelectMany(e => e.Ballots).ToList(); var selectedBallot = ballots .FirstOrDefault(b => b.BallotId == model.SelectedElectionId); if (selectedBallot == null) { selectedBallot = ballots.FirstOrDefault(); } var pictures = new List <ArticlePicture>(); if (model.Pictures != null && model.Pictures.Count > 0) { var uniqueFileNames = await UploadedFiles(model); foreach (var fileName in uniqueFileNames) { pictures.Add(new ArticlePicture { Url = $"{fileName}" }); } await _picturesRepository.RemovePictures(model.NewsId); } var newsFeed = new Article { Link = model.Link, Embed = model.Embed, Title = model.Title, Body = model.Body, BallotId = selectedBallot.BallotId, ElectionId = selectedBallot.ElectionId, Timestamp = DateTime.Now, AuthorId = model.SelectedAuthorId.GetValueOrDefault(), Pictures = pictures }; newsFeed.Id = model.NewsId; await _articleRepository.AddArticle(newsFeed); return(RedirectToAction(nameof(Index))); } } catch (Exception e) { Console.WriteLine(e); throw; } var newsFeedViewModel = await BuildEditNewsFeedViewModel(); return(View(newsFeedViewModel)); }