public async Task <IActionResult> Create(CompositionCreateViewModel viewModel) { IdentityUser user = await userManager.FindByNameAsync(HttpContext.User.Identity.Name); if (ModelState.IsValid) { var composition = compositionService.CreateComposition(viewModel, user); return(RedirectToAction("SuccessfulCreate", new { composition.Id })); } return(View(viewModel)); }
public async Task <IActionResult> Create(CompositionCreateViewModel model, string userId) { string ownerId; var user = await _userManager.GetUserAsync(HttpContext.User); if (await _userManager.IsInRoleAsync(user, "admin")) { if (!string.IsNullOrEmpty(userId) && !userId.Equals(user.Id)) { ownerId = userId; } else { return(RedirectToAction("AdminCantAddComposition", "Notifications")); } } else { var owner = await _userManager.GetUserAsync(HttpContext.User); ownerId = owner.Id; } if (ModelState.IsValid) { if (_dbCompositionService.FindByName(model.Name) == null) { Composition composition = new Composition() { Annotation = model.Annotation, FirstPublication = DateTime.Now, GenreId = _dbGenreService.FindByGenreString(model.GenreString).Id, LastPublication = DateTime.Now, Name = model.Name, UserId = ownerId }; _dbCompositionService.AddComposition(composition); long compositionId = _dbCompositionService.FindByName(composition.Name).Id; var listTagStrings = _tagFormatter.FormatTagsToList(model.Tags); _dbTagService.AddTagsIfNotExist(listTagStrings); var tags = _dbTagService.FindAllByTagStrings(listTagStrings); _dbTagService.AddCompositionTags(compositionId, tags); var callbackUri = Url.Action("Image", "Composition", new { id = compositionId }, protocol: HttpContext.Request.Scheme); return(Redirect(callbackUri)); } else { ModelState.AddModelError("", "A composition with this name already exists."); } } return(View()); }
public Composition CreateComposition(CompositionCreateViewModel viewModel, IdentityUser user) { Composition composition = new Composition() { Name = viewModel.Name, GenreOfComposition = viewModel.Genre, Description = viewModel.Description, User = user as User, DateOfCreation = DateTime.Now }; context.Compositions.Add(composition); context.SaveChanges(); AddTagToComposition(viewModel.Tags, composition); return(composition); }