// ShareAlbum <albumId> <username> <permission> // For example: // ShareAlbum 4 dragon321 Owner // ShareAlbum 4 dragon11 Viewer public string Execute(string[] data) { int albumId = int.Parse(data[0]); string username = data[1]; string permission = data[2]; if (albumRoleService.GetOwnerId(albumId) != Session.CurrentUser.Id) { return(OperationNotAllowed); } if (!userService.Exists(username)) { return(String.Format(UserNotFound, username)); } if (!albumService.Exists(albumId)) { return(String.Format(AlbumNotFound, albumId)); } var user = userService.ByUsername <User>(username); var album = albumService.ById <Album>(albumId); try { albumRoleService.PublishAlbumRole(albumId, user.Id, permission); } catch (Exception ex) { return(ex.Message); } return(String.Format(SuccessMessage, username, album.Name, permission)); }
// AddTagTo <albumName> <tag> public string Execute(string[] args) { var albumName = args[0]; var tagName = Utilities.TagUtilities.ValidateOrTransform(args[1]); if (!albumService.Exists(albumName) || !tagService.Exists(tagName)) { return(TagOrAlbumNotExist); } var album = albumService.ByName <Album>(albumName); var tag = tagService.ByName <Tag>(tagName); if (albumRoleService.GetOwnerId(album.Id) != Session.CurrentUser.Id) { return(OperationNotAllowed); } albumTagService.AddTagTo(album.Id, tag.Id); return(String.Format(SuccessMessage, tagName, albumName)); }
// UploadPicture <albumName> <pictureTitle> <pictureFilePath> public string Execute(string[] data) { string albumName = data[0]; string pictureTitle = data[1]; string path = data[2]; var albumExists = this.albumService.Exists(albumName); if (!albumExists) { throw new ArgumentException($"Album {albumName} not found!"); } var albumId = this.albumService.ByName <AlbumDto>(albumName).Id; if (albumRoleService.GetOwnerId(albumId) != Session.CurrentUser.Id) { return(OperationNotAllowed); } var picture = this.pictureService.Create(albumId, pictureTitle, path); return($"Picture {pictureTitle} added to {albumName}!"); }