public async Task <IActionResult> Main(long id) { if (await _rightService.CheckRights(id, await _userManager.GetUserAsync(HttpContext.User))) { var chapters = _chapterService.FindByCompositionId(id); var composition = _compositionService.FindById(id); List <ChapterNumberAndId> chapterNumberAndIds = new List <ChapterNumberAndId>(); foreach (var chapter in chapters) { chapterNumberAndIds.Add(new ChapterNumberAndId() { ChapterId = chapter.Id, Number = chapter.Number }); } var model = new ChapterMainViewModel() { CompositionId = id, ChapterNumbersAndIds = chapterNumberAndIds, CompositionName = composition.Name }; return(View(model)); } else { return(RedirectToAction("AccessDenied", "Notifications")); } }
public async Task <IActionResult> Add(ChapterMainViewModel model) { if (await _rightService.CheckRights(model.CompositionId, await _userManager.GetUserAsync(HttpContext.User))) { var chapters = _chapterService.FindByCompositionId(model.CompositionId); int lastNumber = 0; foreach (var chapter in chapters) { if (chapter.Number > lastNumber) { lastNumber = chapter.Number; } } lastNumber++; Chapter newChapter = new Chapter() { CompositionId = model.CompositionId, Number = lastNumber, Text = "Put your text here" }; _chapterService.Add(newChapter); _compositionService.UpdateLastPublication(model.CompositionId); var dbChapter = _chapterService.FindByCompositionIdAndNumber(model.CompositionId, lastNumber); var url = Url.Action("Index", "Chapter", new { compositionId = model.CompositionId, chapterId = dbChapter.Id }); return(Redirect(url)); } else { return(RedirectToAction("AccessDenied", "Notifications")); } }
public async Task <IActionResult> Delete(ChapterMainViewModel model) { await _chapterService.RemoveById(model.ChapterIdToDelete); var url = Url.Action("Main", "Chapter", new { id = model.CompositionId }); return(Redirect(url)); }
public async Task <IActionResult> Main(ChapterMainViewModel model) { if (await _rightService.CheckRights(model.CompositionId, await _userManager.GetUserAsync(HttpContext.User))) { if (model.ChapterIdFirst != model.ChapterIdSecond) { await _chapterService.SwapAsync(model.ChapterIdFirst, model.ChapterIdSecond); return(RedirectToAction("Main", "Chapter")); } else { ModelState.AddModelError("", "Select different chapters"); return(View()); } } else { return(RedirectToAction("AccessDenied", "Notifications")); } }