Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        // 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}!");
        }