using System;
using System.Linq;
using System.Text.RegularExpressions;
using Telerik.Sitefinity.Libraries.Model;
using Telerik.Sitefinity.Modules.Libraries;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.MediaModules.Images.Albums
{
    public partial class AlbumsSnippets
    {
        private void CreateAlbumNativeAPI(Guid albumId, string albumTitle)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            Album album = librariesManager.GetAlbums().Where(a => a.Id == albumId).FirstOrDefault();

            if (album == null)
            {
                //Create the album.
                album = librariesManager.CreateAlbum(albumId);

                //Set the properties of the album.
                album.Title = albumTitle;
                album.DateCreated = DateTime.UtcNow;
                album.LastModified = DateTime.UtcNow;
                album.UrlName = Regex.Replace(albumTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

                //Recompiles and validates the url of the album.
                librariesManager.RecompileAndValidateUrls(album);

                //Save the changes.
                librariesManager.SaveChanges();
            }
        }
    }
}