internal static JournalEntry ToNewJournalEntry(JournalCreateViewModel journalVM) { var journalEntry = new JournalEntry { HoarderID = journalVM.HoarderID, Title = journalVM.Title, Date = (DateTime)journalVM.Date, Content = journalVM.Content, Games = new List <JournalGame>(), Tags = new List <JournalTag>() }; if (journalVM.GameIDs != null && journalVM.GameIDs.Length > 0) { foreach (var gameID in journalVM.GameIDs) { journalEntry.Games.Add(new JournalGame { GameID = gameID }); } } if (journalVM.TagIDs != null && journalVM.TagIDs.Length > 0) { foreach (var tagID in journalVM.TagIDs) { journalEntry.Tags.Add(new JournalTag { TagID = tagID }); } } return(journalEntry); }
public async Task <bool> CreateResultsInDuplicateEntryAsync(JournalCreateViewModel journalCreateViewModel) { var newEntry = JournalEntryMapper.ToNewJournalEntry(journalCreateViewModel); bool resultsInDuplicateEntry = await journalDbService.CommandResultsInDuplicateEntryAsync(newEntry); return(resultsInDuplicateEntry); }
internal static JournalCreateViewModel ToCreateViewModel(int hoarderID, IEnumerable <Tag> tagList, IEnumerable <Game> gameList) { var vm = new JournalCreateViewModel { HoarderID = hoarderID }; vm.GameSelectList = new SelectList(gameList, nameof(Game.ID), nameof(Game.Title)); vm.TagSelectList = new SelectList(tagList, nameof(Tag.ID), nameof(Tag.Name)); return(vm); }
public async Task <IActionResult> Create([Bind("HoarderID,Title,Date,GameIDs,TagIDs,Content")] JournalCreateViewModel journalCreateViewModel) { if (ModelState.IsValid) { if (await journalViewService.CreateResultsInDuplicateEntryAsync(journalCreateViewModel)) { ModelState.AddModelError(string.Empty, "A journal entry with the same date already exists in the database."); return(View(journalCreateViewModel)); // TODO: Refill SelectLists } await journalViewService.CreateAsync(journalCreateViewModel); return(RedirectToAction(nameof(Index))); } return(View(journalCreateViewModel)); // TODO: Refill SelectLists }
public async Task CreateAsync(JournalCreateViewModel journalCreateViewModel) { var newEntry = JournalEntryMapper.ToNewJournalEntry(journalCreateViewModel); await journalDbService.CreateAsync(newEntry); }