public ActionResult ChangeAlbumOwner(int albumId, string ownerName)
        {
            // POST /api/albums/changealbumowner?albumId=99&ownerName=Bob
            try
            {
                string oldOwnerName;
                var    album = AlbumController.ChangeOwner(albumId, ownerName, out oldOwnerName);

                return(new ActionResult()
                {
                    Status = ActionResultStatus.Success.ToString(),
                    Title = Resources.GalleryServer.UC_Album_Owner_Changed_Hdr,
                    Message = (string.IsNullOrWhiteSpace(ownerName) ? string.Format(CultureInfo.InvariantCulture, Resources.GalleryServer.UC_Album_Owner_Removed, oldOwnerName) : string.Format(CultureInfo.InvariantCulture, Resources.GalleryServer.UC_Album_Owner_Changed_Dtl, album.OwnerUserName)),
                    ActionTarget = album.OwnerUserName
                });
            }
            catch (GallerySecurityException ex)
            {
                return(new ActionResult()
                {
                    Status = ActionResultStatus.Error.ToString(),
                    Title = "Cannot Change Album Owner",
                    Message = ex.Message
                });
            }
            catch (InvalidAlbumException ex)
            {
                return(new ActionResult()
                {
                    Status = ActionResultStatus.Error.ToString(),
                    Title = "Cannot Change Album Owner",
                    Message = ex.Message
                });
            }
            catch (Exception ex)
            {
                AppEventController.LogError(ex);

                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = Utils.GetExStringContent(ex),
                    ReasonPhrase = "Server Error"
                });
            }
        }