Пример #1
0
        public Guid Upload(string imageTitle, Stream imageStream, string imageFileName, string imageExtension, string albumTitle)
        {
            CultureInfo culture = CultureInfo.InvariantCulture;

            LibrariesManager librariesManager = LibrariesManager.GetManager(LibrariesManager.GetDefaultProviderName());
            Album            album            = librariesManager.GetAlbums().Where(i => i.Title.Equals(albumTitle)).SingleOrDefault();

            Image image = librariesManager.CreateImage();

            image.Parent                      = album;
            image.Title[culture]              = imageTitle;
            image.DateCreated                 = DateTime.UtcNow;
            image.LastModified                = DateTime.UtcNow;
            image.PublicationDate             = DateTime.UtcNow;
            image.UrlName[culture]            = Regex.Replace(imageTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
            image.MediaFileUrlName[culture]   = Regex.Replace(imageFileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
            image.ApprovalWorkflowState.Value = "Published";

            librariesManager.Upload(image, imageStream, imageExtension);
            librariesManager.RecompileItemUrls(image);

            librariesManager.Lifecycle.Publish(image, culture);
            librariesManager.SaveChanges();

            return(image.Id);
        }
Пример #2
0
        private S3DownloadedFile DownloadFileFromS3(string providerName, string libraryName, string fileName)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager(providerName);
            var docLibs = librariesManager.GetDocumentLibraries();

            MediaContent document   = null;
            Stream       tempStream = null;
            MemoryStream fileStream = new MemoryStream();

            foreach (var lib in docLibs)
            {
                if (lib.Title.ToLower() == libraryName)
                {
                    document   = lib.Items().Where(item => item.Title == fileName).FirstOrDefault();
                    tempStream = librariesManager.Download(document);
                }
            }

            if (tempStream != null)
            {
                tempStream.CopyTo(fileStream);
                fileStream.Position = 0;
            }

            return(new S3DownloadedFile {
                Document = document, FileStream = fileStream
            });
        }
        private List <Hashtable> GetImages()
        {
            List <Hashtable> results = new List <Hashtable>();
            var title = this.AlbumTitle;

            // get IQueryable of images from the Standard API.
            var images = LibrariesManager.GetManager().GetImages().Where(x => x.Status == ContentLifecycleStatus.Live);

            // get images from album if set
            if (!string.IsNullOrEmpty(title))
            {
                images.Where((w) => w.Parent.Title == title);
            }

            var filteredImages = images.OrderBy((w) => w.Ordinal);

            foreach (Telerik.Sitefinity.Libraries.Model.Image v in filteredImages)
            {
                Hashtable table = new Hashtable();
                table.Add("Url", v.MediaUrl);
                results.Add(table);
            }

            return(results);
        }
Пример #4
0
        private Image GetTemplateImage(PageTemplate template, string imageName)
        {
            Image image = null;

            if (template != null)
            {
                var libraryManager = LibrariesManager.GetManager("SystemLibrariesProvider");
                if (libraryManager != null)
                {
                    var templateThumbsImageLibrary = libraryManager.GetAlbums().FirstOrDefault(lib => lib.Id == LibrariesModule.DefaultTemplateThumbnailsLibraryId);

                    if (templateThumbsImageLibrary != null)
                    {
                        // Try get image from library
                        image = templateThumbsImageLibrary.Images().FirstOrDefault(i => i.Title.Equals("MVC_" + imageName, StringComparison.OrdinalIgnoreCase));
                        if (image == null)
                        {
                            // Check if image is in the resources and upload it
                            var iconResource = string.Format(LayoutFileManager.PageTemplateIconPathFormat, imageName);
                            if (Assembly.GetExecutingAssembly().GetManifestResourceNames().Any(mrn => mrn.Equals(iconResource, StringComparison.OrdinalIgnoreCase)))
                            {
                                image = this.UploadTemplateImage(libraryManager, templateThumbsImageLibrary, "MVC_" + imageName, iconResource);
                            }
                        }
                    }
                }
            }

            return(image);
        }
Пример #5
0
        public Guid UploadTorrentFile(string torrentTitle, Stream torrentFileStream, string torrentFileName, string torrentExtention, string torrentLibrary)
        {
            CultureInfo culture = CultureInfo.InvariantCulture;

            LibrariesManager librariesManager = LibrariesManager.GetManager(LibrariesManager.GetDefaultProviderName());
            DocumentLibrary  documentLibrary  = librariesManager.GetDocumentLibraries().Where(l => l.Title.Equals(torrentLibrary)).SingleOrDefault();

            Document document = librariesManager.CreateDocument();

            document.Parent           = documentLibrary;
            document.Title            = torrentTitle;
            document.DateCreated      = DateTime.UtcNow;
            document.PublicationDate  = DateTime.UtcNow;
            document.LastModified     = DateTime.UtcNow;
            document.UrlName          = Regex.Replace(torrentTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
            document.MediaFileUrlName = Regex.Replace(torrentFileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

            librariesManager.Upload(document, torrentFileStream, torrentExtention);
            librariesManager.RecompileAndValidateUrls(document);

            document.ApprovalWorkflowState.Value = "Published";

            librariesManager.Lifecycle.Publish(document, culture);
            librariesManager.SaveChanges();

            return(document.Id);
        }
Пример #6
0
        /// <summary>
        /// Tries to resolve parent filter mode.
        /// </summary>
        /// <param name="urlParams">The URL params.</param>
        /// <param name="requestContext">The request context.</param>
        /// <param name="manager">The LibrariesManager.</param>
        /// <returns></returns>
        protected virtual bool TryResolveParentFilterMode(string[] urlParams, RequestContext requestContext, LibrariesManager manager = null)
        {
            var libraryManager = manager ?? LibrariesManager.GetManager(this.Model.ProviderName);

            string param = RouteHelper.GetUrlParameterString(urlParams);

            string redirectUrl;

            var item = libraryManager.GetItemFromUrl(typeof(VideoLibrary), param, out redirectUrl);

            if (item != null)
            {
                requestContext.RouteData.Values["action"]     = "Successors";
                requestContext.RouteData.Values["parentItem"] = item;

                if (this.Request["page"] != null)
                {
                    requestContext.RouteData.Values["page"] = int.Parse(this.Request["page"]);
                }

                return(true);
            }
            if (urlParams.Length > 1)
            {
                this.TryResolveParentFilterMode(urlParams.Take(urlParams.Length - 1).ToArray(), requestContext, manager);
            }
            return(false);
        }
Пример #7
0
        public static bool BuildSitefinityReference(this CQ htmlElement)
        {
            bool result = false;

            string imgFile = Path.GetFileName(htmlElement.Attr("src"));

            var sfImg = App.WorkWith().Images().Where(i => i.Status == ContentLifecycleStatus.Master).Get().ToList().Where(i => Path.GetFileName(i.FilePath) == imgFile.ToLower()).FirstOrDefault();

            if (sfImg != null)
            {
                var manager = LibrariesManager.GetManager();
                var album   = manager.GetAlbums().Where(a => a.Id == sfImg.Album.Id).FirstOrDefault();

                string urlRoot = Telerik.Sitefinity.Configuration.Config.Get <LibrariesConfig>().Images.UrlRoot;

                var sfImgLive = App.WorkWith().Image(sfImg.Id).GetLive().Get();

                var sfRef = "[" + urlRoot + "|" + (LibrariesDataProvider)album.Provider + "]" + sfImgLive.Id;

                htmlElement.Attr("sfref", sfRef);

                string relativeUrl = new Uri(sfImg.MediaUrl).AbsolutePath;

                htmlElement.Attr("src", relativeUrl);

                result = true;
            }

            return(result);
        }
        public Image CreateImageWithNativeAPI(CreateImageDto createImageDto)
        {
            //The album post is created as master. The masterImageId is assigned to the master version.
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            Guid             imageId          = Guid.NewGuid();
            Image            image            = librariesManager.CreateImage(imageId);

            //Set the parent album.
            Album album = librariesManager.GetAlbums().SingleOrDefault();

            image.Parent = album;

            //Set the properties of the album post.
            image.Title            = createImageDto.Title;
            image.DateCreated      = DateTime.Now;
            image.PublicationDate  = DateTime.Now;
            image.LastModified     = DateTime.Now;
            image.UrlName          = Regex.Replace($"{createImageDto.Title}-{imageId}".ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
            image.MediaFileUrlName = Regex.Replace(createImageDto.FileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

            //Upload the image file.
            // The imageExtension parameter must contain '.', for example '.jpeg'
            librariesManager.Upload(image, createImageDto.Stream, createImageDto.FileExtension);

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

            //Publish the Albums item. The live version acquires new ID.
            var bag = new Dictionary <string, string>();

            bag.Add("ContentType", typeof(Image).FullName);
            WorkflowManager.MessageWorkflow(imageId, typeof(Image), null, "Publish", false, bag);

            return(image);
        }
Пример #9
0
        public List <Image> GetImagesFromAlbum(string albumTitle)
        {
            LibrariesManager lm = LibrariesManager.GetManager();

            return(lm.GetImages()
                   .Where(i => i.Status == ContentLifecycleStatus.Live && i.Parent.Title == albumTitle).ToList());
        }
Пример #10
0
        /// <inheritdoc />
        public virtual VideoViewModel GetViewModel()
        {
            var viewModel = new VideoViewModel();

            viewModel.CssClass = this.CssClass;

            if (this.Id != Guid.Empty)
            {
                LibrariesManager librariesManager = LibrariesManager.GetManager(this.ProviderName);
                var videoItem = librariesManager.GetVideos()
                                .Where(i => i.Id == this.Id)
                                .SingleOrDefault();

                if (videoItem == null || !videoItem.Visible || videoItem.Status != ContentLifecycleStatus.Live)
                {
                    return(viewModel);
                }

                viewModel.HasSelectedVideo = true;
                viewModel.AspectRatio      = this.AspectRatio;
                viewModel.Width            = this.Width;
                viewModel.Height           = this.Height;
                viewModel.Item             = new ItemViewModel(videoItem);
            }

            return(viewModel);
        }
Пример #11
0
 public OpenGraphModule(ILogiszEventManager logiszEventManager, ILogiszLogger logiszLogger)
 {
     this._pageManager        = PageManager.GetManager();
     this._liberariesManager  = LibrariesManager.GetManager();
     this._logiszEventManager = logiszEventManager;
     this._logiszLogger       = logiszLogger;
 }
Пример #12
0
        public void CreateImageWithNativeAPI(Guid masterImageId, string imageTitle, Stream imageStream, string imageFileName, string imageExtension)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            Image            image            = librariesManager.GetImages().Where(i => i.Id == masterImageId).FirstOrDefault();

            if (image == null)
            {
                image = librariesManager.CreateImage(masterImageId);

                Album album = librariesManager.GetAlbums().FirstOrDefault();
                image.Parent = album;

                image.Title            = imageTitle;
                image.DateCreated      = DateTime.UtcNow;
                image.PublicationDate  = DateTime.UtcNow;
                image.LastModified     = DateTime.UtcNow;
                image.UrlName          = Regex.Replace(imageTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
                image.MediaFileUrlName = Regex.Replace(imageFileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

                librariesManager.Upload(image, imageStream, imageExtension);

                librariesManager.SaveChanges();

                var bag = new Dictionary <string, string>();
                bag.Add("ContentType", typeof(Image).FullName);
                WorkflowManager.MessageWorkflow(masterImageId, typeof(Image), null, "Publish", false, bag);
            }
        }
Пример #13
0
        public Guid UploadVideoInFolder(Guid folderId, string videoTitle, string videoResource, string videoExtension = null)
        {
            var manager = LibrariesManager.GetManager();

            var     folder  = manager.GetFolder(folderId);
            Library library = this.GetLibraryByFolder(manager, folder);

            var video = manager.CreateVideo();
            var title = videoTitle;

            video.Parent = library;
            if (folderId != library.Id)
            {
                video.FolderId = folderId;
            }
            video.Title   = title;
            video.UrlName = title.ToLower().Replace(' ', '-');
            video.ApprovalWorkflowState = "Published";
            manager.RecompileItemUrls <Telerik.Sitefinity.Libraries.Model.Video>(video);

            System.Reflection.Assembly thisExe;
            thisExe = System.Reflection.Assembly.GetExecutingAssembly();
            System.IO.Stream videoStream = thisExe.GetManifestResourceStream(videoResource);

            manager.Upload(video, videoStream, videoExtension ?? Path.GetExtension(videoResource));

            manager.Lifecycle.Publish(video);

            manager.SaveChanges();

            return(video.Id);
        }
Пример #14
0
        public static DocumentLibrary GetDocumentLibrary(Guid documentLibraryId)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            DocumentLibrary  library          = librariesManager.GetDocumentLibraries().Where(l => l.Id == documentLibraryId).FirstOrDefault();

            return(library);
        }
Пример #15
0
        public Guid UploadDocumentInFolder(Guid folderId, string documentTitle, string documentResource, string documentExtension = null)
        {
            var manager = LibrariesManager.GetManager();

            var     folder  = manager.GetFolder(folderId);
            Library library = this.GetLibraryByFolder(manager, folder);

            var document = manager.CreateDocument();
            var title    = documentTitle;

            document.Parent = library;
            if (folderId != library.Id)
            {
                document.FolderId = folderId;
            }
            document.Title   = title;
            document.UrlName = title.ToLower().Replace(' ', '-');
            document.ApprovalWorkflowState = "Published";
            manager.RecompileItemUrls <Telerik.Sitefinity.Libraries.Model.Document>(document);

            System.Reflection.Assembly thisExe;
            thisExe = System.Reflection.Assembly.GetExecutingAssembly();
            System.IO.Stream documentStream = thisExe.GetManifestResourceStream(documentResource);

            manager.Upload(document, documentStream, documentExtension ?? Path.GetExtension(documentResource));

            manager.Lifecycle.Publish(document);

            manager.SaveChanges();

            return(document.Id);
        }
        protected virtual void MapConfigurationFields(CategoryNavigationViewModel categoryNavigationViewModel)
        {
            categoryNavigationViewModel.HideMiniBasket        = this.hideMiniBasket;
            categoryNavigationViewModel.AllowChangingCurrency = this.allowChangingCurrency;

            if (this.imageId != Guid.Empty)
            {
                try
                {
                    var manager = LibrariesManager.GetManager();
                    var image   = manager.GetImage(this.imageId);
                    categoryNavigationViewModel.ImageUrl = MediaContentExtensions.ResolveMediaUrl(image, false);
                }
                catch (Exception ex)
                {
                    Log.Write(
                        $"Categories Model: Image cannot be retrieved. Cannot resolve image with Id: {this.imageId} due to the following exception: {Environment.NewLine} {ex}",
                        ConfigurationPolicy.ErrorLog);
                }
            }

            if (this.searchPageId != Guid.Empty)
            {
                var nextSearchUrl = UrlResolver.GetPageNodeUrl(this.searchPageId);

                if (nextSearchUrl != null)
                {
                    categoryNavigationViewModel.SearchPageUrl = nextSearchUrl;
                }
            }
        }
Пример #17
0
        private void RepublishVideos(IEnumerable <string> providers)
        {
            foreach (var provider in providers)
            {
                var librariesManager = LibrariesManager.GetManager(provider);
                librariesManager.Provider.SuppressSecurityChecks = false;
                var videos = librariesManager.GetVideos().Where(n => n.Visible && n.Status == ContentLifecycleStatus.Live).ToList();
                var count  = 0;

                foreach (var video in videos)
                {
                    var master = librariesManager.Lifecycle.GetMaster(video);
                    var temp   = librariesManager.Lifecycle.CheckOut(master) as Video;
                    temp.Title = temp.Title.Trim();
                    master     = librariesManager.Lifecycle.CheckIn(temp) as Video;
                    librariesManager.Lifecycle.Publish(master);

                    count++;
                    if (count % 200 == 0)
                    {
                        librariesManager.SaveChanges();
                    }
                }

                librariesManager.SaveChanges();
                librariesManager.Provider.SuppressSecurityChecks = true;
            }
        }
Пример #18
0
        /// <summary>
        /// Uploads the avatar.
        /// </summary>
        /// <param name="uploadedImage">The uploaded image.</param>
        /// <param name="username">The username.</param>
        /// <returns></returns>
        private Image UploadAvatar(HttpPostedFileBase uploadedImage, string username)
        {
            this.ValidateImage(uploadedImage);

            LibrariesManager librariesManager = LibrariesManager.GetManager(LibrariesModule.SystemLibrariesProviderName);

            Image image;

            using (new ElevatedModeRegion(librariesManager))
            {
                image = librariesManager.CreateImage();

                image.Parent = this.GetProfileImagesAlbum(librariesManager);

                image.Title           = string.Format("{0}_avatar_{1}", username, Guid.NewGuid());
                image.DateCreated     = DateTime.UtcNow;
                image.PublicationDate = DateTime.UtcNow;
                image.LastModified    = DateTime.UtcNow;
                image.UrlName         = Regex.Replace(image.Title.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

                // Upload the image file.
                librariesManager.Upload(image, uploadedImage.InputStream, Path.GetExtension(uploadedImage.FileName));

                image = librariesManager.Lifecycle.Publish(image) as Image;

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

            return(image);
        }
Пример #19
0
        private void ProcessCallback(FormDataCollection kCallbackFormData)
        {
            string krakenCallbackId = kCallbackFormData.Get("id");
            string fileName         = kCallbackFormData.Get("file_name");
            string krakedUrl        = kCallbackFormData.Get("kraked_url");
            bool   success          = Boolean.Parse(kCallbackFormData.Get("success"));
            string error            = kCallbackFormData.Get("error");

            Guid albumId = Global.KrakenCallbackIds[krakenCallbackId];

            Global.KrakenCallbackIds.Remove(krakenCallbackId);

            if (success == false || error != null)
            {
                return;
            }

            LibrariesManager _librariesManager = LibrariesManager.GetManager();

            _librariesManager.Provider.SuppressSecurityChecks = true;

            Album album = _librariesManager.GetAlbum(albumId);

            var albumProvider = (LibrariesDataProvider)album.Provider;

            Image image = _librariesManager.GetImage(Guid.Parse(Path.GetFileNameWithoutExtension(krakedUrl)));

            if (!Regex.IsMatch(krakedUrl, @"https?://(?:api-worker-\d|dl).kraken.io/" + krakenCallbackId + "/" + image.Id.ToString() + @"\.(?:jpg|jpeg|png|gif|svg)"))
            {
                return;
            }

            using (var webClient = new WebClient())
                using (var stream = webClient.OpenRead(krakedUrl))
                {
                    //Check out the master to get a temp version.
                    Image temp = _librariesManager.Lifecycle.CheckOut(image) as Image;

                    //Make the modifications to the temp version.
                    _librariesManager.Upload(temp, stream, Path.GetExtension(fileName));

                    //Checkin the temp and get the updated master version.
                    //After the check in the temp version is deleted.
                    _librariesManager.Lifecycle.CheckIn(temp);

                    _librariesManager.SaveChanges();

                    // Check to see if this image is already published.
                    // If it is, we need to publish the "Master" to update "Live"
                    if (image.GetWorkflowState() == "Published")
                    {
                        var bag = new Dictionary <string, string>();
                        bag.Add("ContentType", typeof(Image).FullName);
                        WorkflowManager.MessageWorkflow(image.Id, typeof(Image), albumProvider.Name, "Publish", false, bag);
                    }
                }

            _librariesManager.Provider.SuppressSecurityChecks = false;
        }
Пример #20
0
        /// <summary>
        /// Get the full URL path of the indexed Sitefinity document
        /// </summary>
        /// <param name="pageNodeId"></param>
        /// <param name="targetCulture"></param>
        /// <param name="resolveAsAbsolutUrl"></param>
        /// <returns></returns>
        public string getUrlFromDocumentGUID(Guid docId)
        {
            var    library = LibrariesManager.GetManager();
            var    doc     = library.GetDocument(docId);
            string url     = doc.ResolveMediaUrl(true);

            return(url);
        }
Пример #21
0
 public MediaResource(IShellService theSvc, string name)
     : base(theSvc, name)
 {
     libMgr       = LibrariesManager.GetManager(theSvc.Get_Provider());
     resourceName = name;
     folders      = null;
     items        = null;
 }
Пример #22
0
        public string CreateOffice()
        {
            string result = "Office created successfully";

            try
            {
                // Set a transaction name and get the version manager
                var transactionName = "someTransactionName";
                var versionManager  = VersionManager.GetManager(null, transactionName);

                // Set the culture name for the multilingual fields
                var cultureName = "en";
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);

                DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(this.ProviderName, transactionName);

                DynamicContent officeItem = dynamicModuleManager.CreateDataItem(this.OfficeType);

                // This is how values for the properties are set
                officeItem.SetString("Title", "New York", cultureName);
                officeItem.SetString("Info", LOREM_IPSUM, cultureName);
                Address        address        = new Address();
                CountryElement addressCountry = Telerik.Sitefinity.Configuration.Config.Get <LocationsConfig>().Countries.Values.First(x => x.Name == "United States");
                address.CountryCode = addressCountry.IsoCode;
                address.StateCode   = addressCountry.StatesProvinces.Values.First().Abbreviation;
                address.City        = "New York City";
                address.Street      = "Baker Street";
                address.Zip         = "12345";
                officeItem.SetValue("Address", address);


                // Get related item manager
                LibrariesManager pictureManager = LibrariesManager.GetManager("OpenAccessDataProvider");
                var pictureItem = pictureManager.GetImages().FirstOrDefault(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Master && i.Title.Contains("New York"));
                if (pictureItem != null)
                {
                    // This is how we relate an item
                    officeItem.CreateRelation(pictureItem, "Picture");
                }

                officeItem.SetString("UrlName", "new-york", cultureName);
                officeItem.SetValue("Owner", SecurityManager.GetCurrentUserId());
                officeItem.SetValue("PublicationDate", DateTime.UtcNow);


                officeItem.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Draft", new CultureInfo(cultureName));

                // Create a version and commit the transaction in order changes to be persisted to data store
                versionManager.CreateVersion(officeItem, false);
                TransactionManager.CommitTransaction(transactionName);
            }
            catch (Exception ex)
            {
                return(ex.Message.ToString());
            }

            return(result);
        }
        private Document GetDocument(int index)
        {
            if (this.documents == null)
            {
                this.documents = LibrariesManager.GetManager().GetDocuments().Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Master).ToList();
            }

            return(this.documents[index]);
        }
Пример #24
0
        public static IQueryable <Image> GetImagesByAlbumNativeAPI(Guid albumId)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();

            Album album = librariesManager.GetAlbum(albumId);
            IQueryable <Image> images = album.Images().Where(i => i.Status == ContentLifecycleStatus.Live);

            return(images);
        }
        private void ChangeThePublicationDateOfADocument()
        {
            DateTime publicationDate = DateTime.UtcNow.AddDays(-10);

            var librariesManager = LibrariesManager.GetManager();
            var modified         = librariesManager.GetDocuments().Where(ni => ni.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Master && ni.Title == DocumentTitle + 1).FirstOrDefault();

            librariesManager.Lifecycle.PublishWithSpecificDate(modified, publicationDate);
            librariesManager.SaveChanges();
        }
Пример #26
0
        private bool ProcessImagesInternal(string providerName)
        {
            string           transactionName  = string.Format("imageoptimization_{0}", providerName);
            LibrariesManager librariesManager = LibrariesManager.GetManager(providerName, transactionName);
            bool             itemsProcessed   = false;
            int processedImages = 0;

            IEnumerable <Image> images = librariesManager.GetImages().Where(i => i.Status == ContentLifecycleStatus.Master && ((i.GetValue <object>(ImageOptimizationConstants.IsOptimizedFieldName) == null) || !i.GetValue <bool>(ImageOptimizationConstants.IsOptimizedFieldName))).Take(this.batchSize);

            foreach (var image in images)
            {
                try
                {
                    this.BuildTrace(string.Format("{0} - Attempting to optimize image {1} ({2})", DateTime.UtcNow.ToString("yyyy-MM-dd-T-HH:mm:ss"), image.Title, image.Id));

                    Image master = image;
                    Image temp   = librariesManager.Lifecycle.CheckOut(image) as Image;

                    Stream sourceImageStream = librariesManager.Download(image.Id);
                    librariesManager.Upload(temp, sourceImageStream, image.Extension, true);

                    temp.SetValue(ImageOptimizationConstants.IsOptimizedFieldName, true);

                    master = librariesManager.Lifecycle.CheckIn(temp) as Image;

                    ProcessReplacedImageTranslations(librariesManager, master);

                    if (master.ApprovalWorkflowState == "Published")
                    {
                        librariesManager.Lifecycle.Publish(master);
                    }

                    this.BuildTrace(string.Format("{0} - Image {1} ({2}) has been optimized", DateTime.UtcNow.ToString("yyyy-MM-dd-T-HH:mm:ss"), image.Title, image.Id));

                    if (processedImages % 5 == 0)
                    {
                        TransactionManager.CommitTransaction(transactionName);
                    }

                    processedImages += 1;
                }
                catch (Exception ex)
                {
                    this.BuildTrace(string.Format("Optimization of image {0} ({1}) failed with exception {2}", image.Title, image.Id, ex.Message), true);
                }

                this.WriteTraceLog();

                itemsProcessed = true;
            }

            TransactionManager.CommitTransaction(transactionName);

            return(itemsProcessed);
        }
Пример #27
0
        public void UploadImage()
        {
            ServerOperations.Images().CreateLibrary(ImageLibraryTitle);
            Guid id = ServerSideUpload.UploadImage(ImageLibraryTitle, ImageTitle, ImageResource);

            var manager = LibrariesManager.GetManager();
            var master  = manager.GetImage(id);
            var live    = manager.Lifecycle.GetLive(master);

            ServerArrangementContext.GetCurrent().Values.Add("imageId", live.Id.ToString());
        }
Пример #28
0
        /// <summary>
        /// Gets the document.
        /// </summary>
        /// <returns></returns>
        protected virtual bool TryGetDocument(out SfDocument document)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager(this.ProviderName);

            document = librariesManager.GetDocuments()
                       .Where(i => i.Id == this.Id)
                       .Where(PredefinedFilters.PublishedItemsFilter <SfDocument>())
                       .FirstOrDefault();

            return(document != null);
        }
Пример #29
0
        /// <summary>
        /// Returns an Image object from a Guid
        /// ** Sitefinitysteve.com Extension **
        /// </summary>
        public static Image GetImage(this Guid imageId)
        {
            LibrariesManager manager = LibrariesManager.GetManager();

            try{
                return((imageId != Guid.Empty) ? manager.GetImage(imageId) : null);
            }catch (ItemNotFoundException iex) {
                Logger.Writer.Write(iex);
                return(null);
            }
        }
        public void UploadVideo()
        {
            ServerOperations.Videos().CreateLibrary(LibraryTitle);
            Guid id = ServerOperations.Videos().Upload(LibraryTitle, VideoTitle, VideoResource);

            var manager = LibrariesManager.GetManager();
            var master  = manager.GetVideo(id);
            var live    = manager.Lifecycle.GetLive(master);

            ServerArrangementContext.GetCurrent().Values.Add("videoId", live.Id.ToString());
        }