예제 #1
0
        private void DeployImageRenditionSettings(object modelHost, SiteModelHost siteModelHost,
                                                  ImageRenditionDefinition imageRenditionModel)
        {
            var renditions       = SiteImageRenditions.GetRenditions(siteModelHost.HostSite);
            var currentRendition = GetCurrentImageRendition(renditions, imageRenditionModel);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = currentRendition,
                ObjectType       = typeof(ImageRendition),
                ObjectDefinition = imageRenditionModel,
                ModelHost        = modelHost
            });

            if (currentRendition == null)
            {
                currentRendition = new ImageRendition
                {
                    Name   = imageRenditionModel.Name,
                    Width  = imageRenditionModel.Width,
                    Height = imageRenditionModel.Height
                };

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = currentRendition,
                    ObjectType       = typeof(ImageRendition),
                    ObjectDefinition = imageRenditionModel,
                    ModelHost        = modelHost
                });

                renditions.Add(currentRendition);
                renditions.Update();
            }
            else
            {
                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = currentRendition,
                    ObjectType       = typeof(ImageRendition),
                    ObjectDefinition = imageRenditionModel,
                    ModelHost        = modelHost
                });
            }
        }
예제 #2
0
 protected ImageRendition GetCurrentImageRendition(ImageRenditionCollection renditions, ImageRenditionDefinition imageRenditionModel)
 {
     return(renditions.FirstOrDefault(r =>
                                      !string.IsNullOrEmpty(r.Name) &&
                                      String.Equals(r.Name, imageRenditionModel.Name, StringComparison.CurrentCultureIgnoreCase)));
 }
예제 #3
0
 public static ModelNode AddImageRendition(this ModelNode model, ImageRenditionDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
예제 #4
0
 public static ModelNode AddImageRendition(this ModelNode model, ImageRenditionDefinition definition)
 {
     return(AddImageRendition(model, definition, null));
 }
예제 #5
0
 public static TModelNode AddImageRendition <TModelNode>(this TModelNode model, ImageRenditionDefinition definition,
                                                         Action <ImageRenditionModelNode> action)
     where TModelNode : ModelNode, ISiteModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
예제 #6
0
 public static TModelNode AddImageRendition <TModelNode>(this TModelNode model, ImageRenditionDefinition definition)
     where TModelNode : ModelNode, ISiteModelNode, new()
 {
     return(AddImageRendition(model, definition, null));
 }
예제 #7
0
        private void DeployImageRenditionSettings(object modelHost, SiteModelHost siteModelHost,
                                                  ImageRenditionDefinition imageRenditionModel)
        {
            var context    = siteModelHost.HostSite.Context;
            var renditions = SiteImageRenditions.GetRenditions(siteModelHost.HostSite.Context);

            context.ExecuteQueryWithTrace();

            var currentRendition = GetCurrentImageRendition(renditions, imageRenditionModel);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = currentRendition,
                ObjectType       = typeof(ImageRendition),
                ObjectDefinition = imageRenditionModel,
                ModelHost        = modelHost
            });

            if (currentRendition == null)
            {
                TraceService.Information((int)LogEventId.ModelProvisionProcessingNewObject, "Processing new Image Rendition");

                var newRendition = new ImageRendition
                {
                    Name   = imageRenditionModel.Name,
                    Width  = imageRenditionModel.Width,
                    Height = imageRenditionModel.Height
                };

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = newRendition,
                    ObjectType       = typeof(ImageRendition),
                    ObjectDefinition = imageRenditionModel,
                    ModelHost        = modelHost
                });

                renditions.Add(newRendition);
                SiteImageRenditions.SetRenditions(context, renditions);

                context.ExecuteQueryWithTrace();
            }
            else
            {
                TraceService.Information((int)LogEventId.ModelProvisionProcessingNewObject, "Processing existing Image Rendition");

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = currentRendition,
                    ObjectType       = typeof(ImageRendition),
                    ObjectDefinition = imageRenditionModel,
                    ModelHost        = modelHost
                });
            }
        }