Exemple #1
0
        public async Task <IActionResult> Edit(CompositionEditViewModel model)
        {
            IActionResult result = RedirectToAction("Index", "Home");

            if (await _rightService.CheckRights(model.Id, _userManager.GetUserAsync(HttpContext.User).Result))
            {
                if (ModelState.IsValid)
                {
                    if (_dbCompositionService.FindById(model.Id) != null)
                    {
                        var nameBefore = _dbCompositionService.FindById(model.Id).Name;
                        if (nameBefore == model.Name || _dbCompositionService.FindByName(model.Name) == null)
                        {
                            Composition composition = new Composition()
                            {
                                Id         = model.Id,
                                Annotation = model.Annotation,
                                GenreId    = _dbGenreService.FindByGenreString(model.GenreString).Id,
                                Name       = model.Name,
                            };
                            _dbCompositionService.Update(composition);
                            var tagsBefore       = _dbTagService.FindByCompositionId(composition.Id);
                            var tagsBeforeString = _tagFormatter.FormatTagsToString(tagsBefore);
                            var listTagStrings   = _tagFormatter.FormatTagsToListEdit(tagsBeforeString, model.Tags);
                            _dbTagService.AddTagsIfNotExist(listTagStrings);
                            var tags = _dbTagService.FindAllByTagStrings(listTagStrings);
                            _dbTagService.UpdateCompositionTags(model.Id, tags);
                            var callbackUri = Url.Action("Index", "Composition", new { id = model.Id },
                                                         protocol: HttpContext.Request.Scheme);
                            result = Redirect(callbackUri);
                        }
                        else
                        {
                            ModelState.AddModelError("", "A composition with this name already exists.");
                            result = View();
                        }
                    }
                    else
                    {
                        result = BadRequest();
                    }
                }
            }
            else
            {
                result = RedirectToAction("AccessDenied", "Notifications");
            }
            return(result);
        }
Exemple #2
0
        public async Task <IActionResult> Delete(CompositionEditViewModel model)
        {
            IActionResult result = BadRequest();

            if (await _rightService.CheckRights(model.Id, _userManager.GetUserAsync(HttpContext.User).Result))
            {
                var composition = _dbCompositionService.FindById(model.Id);
                if (composition != null)
                {
                    _dbCompositionService.Delete(composition);
                    result = RedirectToAction("Index", "Home");
                }
            }
            else
            {
                result = RedirectToAction("AccessDenied", "Notifications");
            }

            return(result);
        }