public string Execute(string command, params string[] data) { if (Session.User == null) { throw new ArgumentException("You should login first!"); } if (data.Length < 3) { throw new InvalidOperationException($"Command {command} not valid!"); } int albumId; bool result = int.TryParse(data[0], out albumId); if (!result) { throw new InvalidOperationException($"Command {command} not valid!"); } string username = data[1]; string permission = data[2]; return(albumRoleService.ShareAlbum(albumId, username, permission)); }
// ShareAlbum <albumId> <username> <permission> public string Execute(string[] data) { int albumId = int.Parse(data[0]); string username = data[1]; string permissionName = data[2]; Album album = albumServise.GetAlbumById(albumId); User user = userService.GetUserByUsername(username); bool isValid = Enum.TryParse <Role>(permissionName, out Role role); if (!isValid) { throw new ArgumentException("Permission must be either “Owner” or “Viewer”!"); } AlbumRole albumRole = albumRoleService.ShareAlbum(album, user, role); return($"Username {user.Username} added to album {album.Name} ({albumRole.Role.ToString()})"); }