using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text.RegularExpressions;
using Telerik.Sitefinity;
using Telerik.Sitefinity.Libraries.Model;
using Telerik.Sitefinity.Localization;
using Telerik.Sitefinity.Workflow;

namespace SitefinityWebApp
{
    public class CreateImageTranslationUsingExistingFileFluentAPI
    {
        public static void CreateImageTranslationUsingExistingFileWithFluentAPI(CultureInfo culture, Guid masterImageId, string title, CultureInfo sourceCulture)
        {
            // Ensure we are working in the correct culture.
            using (new CultureRegion(culture))
            {
                var count = 0;

                App.WorkWith().Images().Where(i => i.Id == masterImageId).Count(out count);

                if (count > 0)
                {
                    App.WorkWith().Image(masterImageId).CheckOut().CopyUploadedContent(sourceCulture).Do(image =>
                    {
                        image.Title = title;
                        image.LastModified = DateTime.UtcNow;
                        image.UrlName = Regex.Replace(title.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
                    }).CheckIn().Publish().SaveChanges();
                }
            }
        }
    }
}