public Album CreateAlbum(string username, string albumTitle, string bgColor, params string[] tags) { User user = userService.GetUserByUsername(username); if (Exist(albumTitle)) { throw new ArgumentException($"Album {albumTitle} exists!"); } bool isParsed = Enum.TryParse <Color>(bgColor, out Color color); if (!isParsed) { throw new ArgumentException($"Color {bgColor} not found!"); } var tagsCollection = new List <Tag>(); foreach (var tag in tags) { tagsCollection.Add(tagService.GetTagByName(tag)); } Album album = new Album { Name = albumTitle, BackgroundColor = color, }; context.Albums.Add(album); albumUserService.AddUserToAlbum(album, user); foreach (var tag in tagsCollection) { albumTagService.AddTagToAlbum(album, tag); } context.SaveChanges(); return(album); }
// AddTagTo <albumName> <tag> public string Execute(string[] data) { string albumTitle = data[0]; string tagName = data[1].ValidateOrTransform(); Album album = null; Tag tag = null; try { album = albumServise.GetAlbumByName(albumTitle); tag = tagService.GetTagByName(tagName); albumTagService.AddTagToAlbum(album, tag); } catch (ArgumentException) { throw new ArgumentException("Either tag or album do not exist!"); } return($"Tag {tag.Name} added to {album.Name}!"); }