public async Task <IActionResult> Update([FromRoute] int id, [FromBody] AlbumGroup albumGroup)
 {
     if (ModelState.IsValid)
     {
         try
         {
             return(Ok(await _repository.UpdateAsync(id, albumGroup)));
         }
         catch (EntityNotFoundRepositoryException e)
         {
             return(NotFound(new ApiErrorRep(e.Message)));
         }
         catch (RepositoryException e)
         {
             return(BadRequest(new ApiErrorRep(e.Message)));
         }
         catch (Exception e)
         {
             _logger.LogError("UpdateAlbumGroup", e, "Error updating album group");
             return(StatusCode(500, new ApiErrorRep("Unknown error")));
         }
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
        public async Task <IActionResult> Edit(EditAlbumGroupViewModel model)
        {
            AlbumGroupDetail group = await _albumGroupRepo.GetAsync(model.Id);

            if (group != null)
            {
                model.Key = group.Key; // key cant be overwritten
                if (ModelState.IsValid)
                {
                    try {
                        group.Name = model.Name;

                        await _albumGroupRepo.UpdateAsync(model.Id, group);

                        this.SetBootstrapPageAlert("Success", "Album group updated", BootstrapAlertType.success);
                        return(RedirectToAction(nameof(Index)));
                    }
                    catch (Exception e)
                    {
                        if (e is RepositoryException)
                        {
                            ModelState.AddModelError(nameof(model.Key), e.Message);
                        }
                        else
                        {
                            ModelState.AddModelError(nameof(model.Key), "Unknown error");
                            _log.LogError("EditAlbumGroup", e, "Error updating group");
                        }
                        return(View(model));
                    }
                }
                else
                {
                    return(View(model));
                }
            }
            else
            {
                // todo: show error message
                return(RedirectToAction(nameof(Index)));
            }
        }