Example #1
0
        public override object GetFieldValue(string fieldValue, global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            Type enumType = Property.PropertyType;

            int intValue;

            if (int.TryParse(fieldValue, out intValue))
            {
                return(Enum.ToObject(enumType, 0));
            }
            else
            {
                if (Enum.IsDefined(enumType, fieldValue))
                {
                    return(Enum.Parse(enumType, fieldValue, true));
                }
                else if (!fieldValue.IsNullOrEmpty())
                {
                    throw new MapperException("Can not convert value {0} to enum type {1}".Formatted(fieldValue, enumType.FullName));
                }
                else
                {
                    return(null);
                }
            }
        }
Example #2
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var itemField = base.GetField(item);

            if (itemField == null)
            {
                return(null);
            }

            FileField field = new FileField(itemField);
            File      file  = new File();

            if (field.MediaItem != null)
            {
                MediaItem mediaItem = new MediaItem(field.MediaItem);

                file.Src       = HttpUtility.UrlPathEncode(MediaManager.GetMediaUrl(field.MediaItem));
                file.Size      = mediaItem.Size;
                file.Title     = mediaItem.Title;
                file.Extension = mediaItem.Extension;
            }
            file.Id = field.MediaID.Guid;

            return(file);
        }
Example #3
0
        public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service)
        {
            File      file  = value as File;
            FileField field = new FileField(item.Fields[FieldName]);

            if (file == null)
            {
                field.Clear();
                return;
            }

            if (field.MediaID.Guid != file.Id)
            {
                if (file.Id == Guid.Empty)
                {
                    ItemLink link = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, field.MediaItem.Database.Name, field.MediaID, field.MediaItem.Paths.FullPath);
                    field.RemoveLink(link);
                }
                else
                {
                    ID   newId  = new ID(file.Id);
                    Item target = item.Database.GetItem(newId);
                    if (target != null)
                    {
                        field.MediaID = newId;
                        ItemLink link = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath);
                        field.UpdateLink(link);
                    }
                    else
                    {
                        throw new MapperException("No item with ID {0}. Can not update File Item field".Formatted(newId));
                    }
                }
            }
        }
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            switch (InfoType)
            {
            case SitecoreInfoType.ContentPath:
                return(item.Paths.ContentPath);

            case SitecoreInfoType.DisplayName:
                return(item.DisplayName);

            case SitecoreInfoType.FullPath:
                return(item.Paths.FullPath);

            case SitecoreInfoType.Name:
                return(item.Name);

            case SitecoreInfoType.Key:
                return(item.Key);

            case SitecoreInfoType.MediaUrl:
                global::Sitecore.Data.Items.MediaItem media = new global::Sitecore.Data.Items.MediaItem(item);
                return(global::Sitecore.Resources.Media.MediaManager.GetMediaUrl(media));

                break;

            case SitecoreInfoType.Path:
                return(item.Paths.Path);

            case SitecoreInfoType.TemplateId:
                return(item.TemplateID.Guid);

            case SitecoreInfoType.TemplateName:
                return(item.TemplateName);

            case SitecoreInfoType.Url:
                return(LinkManager.GetItemUrl(item, UrlOptions));

            case SitecoreInfoType.FullUrl:
                return(LinkManager.GetItemUrl(item, new UrlOptions()
                {
                    AlwaysIncludeServerUrl = true
                }));

            case SitecoreInfoType.Version:
                return(item.Version.Number);

            case SitecoreInfoType.Language:
                return(item.Language);

            default:
                throw new NotSupportedException("Value {0} not supported".Formatted(InfoType.ToString()));
            }
        }
        public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service)
        {
            Image img = value as Image;

            Field itemField = base.GetField(item);

            if (itemField == null)
            {
                return;
            }

            ImageField scImg = new ImageField(itemField);

            if (img == null)
            {
                scImg.Clear();
                return;
            }

            if (scImg.MediaID.Guid != img.MediaId)
            {
                //this only handles empty guids, but do we need to remove the link before adding a new one?
                if (img.MediaId == Guid.Empty)
                {
                    ItemLink link = new ItemLink(item.Database.Name, item.ID, scImg.InnerField.ID, scImg.MediaItem.Database.Name, scImg.MediaID, scImg.MediaPath);
                    scImg.RemoveLink(link);
                }
                else
                {
                    ID   newId  = new ID(img.MediaId);
                    Item target = item.Database.GetItem(newId);
                    if (target != null)
                    {
                        scImg.MediaID = newId;
                        ItemLink link = new ItemLink(item.Database.Name, item.ID, scImg.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath);
                        scImg.UpdateLink(link);
                    }
                    else
                    {
                        throw new MapperException("No item with ID {0}. Can not update Media Item field".Formatted(newId));
                    }
                }
            }

            scImg.Height = img.Height.ToString();
            scImg.Width  = img.Width.ToString();
            scImg.HSpace = img.HSpace.ToString();
            scImg.VSpace = img.VSpace.ToString();
            scImg.Alt    = img.Alt;
            scImg.Border = img.Border;
            scImg.Class  = img.Class;
        }
Example #6
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var itemField = base.GetField(item);

            if (itemField == null)
            {
                return(null);
            }

            Field field = itemField;

            return(field.GetBlobStream());
        }
Example #7
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            int  numChildren = item.Children.Count;
            Type genericType = Utility.GetGenericArgument(Property.PropertyType);


            Func <IEnumerable <Item> > getItems = new Func <IEnumerable <Item> >(() =>
            {
                return(item.Children.Cast <Item>());
            });

            return(service.CreateClasses(IsLazy, InferType, genericType, getItems));
        }
Example #8
0
 public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
 {
     if (item.Fields[FieldName] != null && item.Fields[FieldName].Type.StartsWith("Rich Text") && Setting != SitecoreFieldSettings.RichTextRaw)
     {
         FieldRenderer renderer = new FieldRenderer();
         renderer.Item       = item;
         renderer.FieldName  = FieldName;
         renderer.Parameters = string.Empty;
         return(renderer.Render());
     }
     else
     {
         return(item[FieldName]);
     }
 }
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            Type ruleFactory = typeof(RuleFactory);
            var  method      = ruleFactory.GetMethod("GetRules",
                                                     System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static,
                                                     null,
                                                     new Type[] { typeof(global::Sitecore.Data.Fields.Field) },
                                                     null);

            Type[] genericArgs = this.Property.PropertyType.GetGenericArguments();
            method = method.MakeGenericMethod(genericArgs);
            object rules = method.Invoke(null, new object[] { this.GetField(item) });

            return(rules);
        }
Example #10
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var itemField = item.Fields[FieldName];

            if (itemField == null)
            {
                return(null);
            }

            FileField field = new FileField(itemField);
            File      file  = new File();

            file.Src = field.Src;
            file.Id  = field.MediaID.Guid;

            return(file);
        }
 public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
 {
     if (Id != Guid.Empty)
     {
         var scItem = service.Database.GetItem(new ID(Id));
         return(service.CreateClass(IsLazy, false, Property.Property.PropertyType, scItem));
     }
     else if (!Path.IsNullOrEmpty())
     {
         var scItem = service.Database.GetItem(Path);
         return(service.CreateClass(IsLazy, false, Property.Property.PropertyType, scItem));
     }
     else
     {
         return(null);
     }
 }
 protected virtual void AddDecorations(BooleanQuery result)
 {
     Assert.ArgumentNotNull(result, "result");
     global::Sitecore.Security.Accounts.User user = this.User;
     if (user != null)
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Creator, user.Name)), Occur.SHOULD);
         result.Add(new TermQuery(new Term(BuiltinFields.Editor, user.Name)), Occur.SHOULD);
     }
     global::Sitecore.Data.Items.Item item = this.Item;
     if (item != null)
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Path, ShortID.Encode(item.ID).ToLowerInvariant())), Occur.MUST);
         result.Add(new TermQuery(new Term(BuiltinFields.Database, item.Database.Name.ToLowerInvariant())), Occur.MUST);
         if (this.ContentLanguages.Count == 0)
         {
             result.Add(new TermQuery(new Term(BuiltinFields.Language, item.Language.ToString().ToLowerInvariant())), Occur.MUST);
         }
     }
     if (this.ContentLanguages.Count > 0)
     {
         var langQuery = new BooleanQuery(true);
         this.ContentLanguages.ForEach(lang => langQuery.Add(new TermQuery(new Term(BuiltinFields.Language, lang.ToString().ToLowerInvariant())), Occur.SHOULD));
         result.Add(langQuery, Occur.MUST);
     }
     if (!this.IgnoreContentEditorOptions)
     {
         if (!UserOptions.View.ShowHiddenItems)
         {
             result.Add(new TermQuery(new Term(BuiltinFields.Hidden, "1")), Occur.MUST_NOT);
         }
         if (!UserOptions.View.ShowEntireTree && (item != null))
         {
             global::Sitecore.Data.Items.Item item2 = item.Database.GetItem(RootSections.GetSection(item));
             if (item2 != null)
             {
                 result.Add(new TermQuery(new Term(BuiltinFields.Path, ShortID.Encode(item2.ID).ToLowerInvariant())), Occur.MUST);
             }
         }
     }
     if (TemplateID != default(Guid))
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Template, new ShortID(TemplateID).ToString().ToLowerInvariant())), Occur.MUST);
     }
 }
        /// <summary>
        /// Gets the value.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <returns>System.String.</returns>
        public string GetValue(global::Sitecore.Data.Items.Item item)
        {
            string path = item.Paths.FullPath;

            string[] pathSections = path.Split('/');

            StringBuilder escapedPath = new StringBuilder();

            foreach (var pathSection in pathSections)
            {
                if (!string.IsNullOrEmpty(pathSection))
                {
                    escapedPath.AppendFormat("/#{0}#", pathSection);
                }
            }

            return(escapedPath.ToString());
        }
        /// <summary>
        /// Executes the command in the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        public override void Execute(global::Sitecore.Shell.Framework.Commands.CommandContext context)
        {
            if (context.Items.Length == 1)
            {
                global::Sitecore.Data.Items.Item item = context.Items[0];

                ClientPipelineArgs args = new ClientPipelineArgs();

                System.Collections.Specialized.NameValueCollection parameters =
                    new System.Collections.Specialized.NameValueCollection();
                parameters["id"]       = item.ID.ToString();
                parameters["language"] = item.Language.ToString();
                parameters["database"] = item.Database.Name;

                args.Parameters = parameters;

                global::Sitecore.Context.ClientPage.Start(this, "Run", args);
            }
        }
Example #15
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var itemField = base.GetField(item);

            if (itemField == null)
            {
                return(null);
            }

            FileField field = new FileField(itemField);
            File      file  = new File();

            if (field.MediaItem != null)
            {
                file.Src = MediaManager.GetMediaUrl(field.MediaItem);
            }
            file.Id = field.MediaID.Guid;

            return(file);
        }
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var itemField = base.GetField(item);

            if (itemField == null)
            {
                return(null);
            }

            Image      img   = new Image();
            ImageField scImg = new ImageField(itemField);

            int height = 0;

            int.TryParse(scImg.Height, out height);
            int width = 0;

            int.TryParse(scImg.Width, out width);
            int hSpace = 0;

            int.TryParse(scImg.HSpace, out hSpace);
            int vSpace = 0;

            int.TryParse(scImg.VSpace, out vSpace);

            img.Alt     = scImg.Alt;
            img.Border  = scImg.Border;
            img.Class   = scImg.Class;
            img.Height  = height;
            img.HSpace  = hSpace;
            img.MediaId = scImg.MediaID.Guid;
            if (scImg.MediaItem != null)
            {
                img.Src = MediaManager.GetMediaUrl(scImg.MediaItem);
            }
            img.VSpace = vSpace;
            img.Width  = width;

            return(img);
        }
Example #17
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var field = base.GetField(item);

            if (field == null)
            {
                return(string.Empty);
            }

            if (field.Type.StartsWith("Rich Text") && Setting != SitecoreFieldSettings.RichTextRaw)
            {
                FieldRenderer renderer = new FieldRenderer();
                renderer.Item       = item;
                renderer.FieldName  = field.Name;
                renderer.Parameters = string.Empty;
                return(renderer.Render());
            }
            else
            {
                return(field.Value);
            }
        }
        public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service)
        {
            switch (InfoType)
            {
            case SitecoreInfoType.DisplayName:
                if (value is string || value == null)
                {
                    item[Settings.DisplayNameFieldName] = (value ?? string.Empty).ToString();
                }
                else
                {
                    throw new NotSupportedException("Can't set DisplayName. Value is not of type System.String");
                }
                break;

            case SitecoreInfoType.Name:
                if (value is string || value == null)
                {
                    //if the name is null or empty nothing should happen
                    if ((value ?? string.Empty).ToString().IsNullOrEmpty())
                    {
                        return;
                    }

                    if (item.Name != value.ToString())
                    {
                        item.Name = value.ToString();
                    }
                }
                else
                {
                    throw new NotSupportedException("Can't set Name. Value is not of type System.String");
                }
                break;

            default:
                throw new NotSupportedException("You can not save SitecoreInfo {0}".Formatted(InfoType));
            }
        }
Example #19
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            int  numChildren = item.Children.Count;
            Type genericType = Utility.GetGenericArgument(Property.PropertyType);



            var getItems = new Func <IEnumerable <Item> >(() =>
            {
                switch (Options)
                {
                case SitecoreLinkedOptions.All:
                    var itemLinks1 = global::Sitecore.Configuration.Factory.GetLinkDatabase().GetReferences(item);
                    var itemLinks2 = global::Sitecore.Configuration.Factory.GetLinkDatabase().GetReferrers(item);
                    return(itemLinks1.Select(x => x.GetTargetItem()).Union(itemLinks2.Select(x => x.GetSourceItem())));

                    break;

                case SitecoreLinkedOptions.References:
                    var itemLinks3 = global::Sitecore.Configuration.Factory.GetLinkDatabase().GetReferences(item);
                    return(itemLinks3.Select(x => x.GetTargetItem()));

                    break;

                case SitecoreLinkedOptions.Referrers:
                    var itemLinks4 = global::Sitecore.Configuration.Factory.GetLinkDatabase().GetReferrers(item);
                    return(itemLinks4.Select(x => x.GetSourceItem()));

                    break;

                default:
                    return(new List <Item>());
                }
            });

            return(service.CreateClasses(IsLazy, InferType, genericType, getItems));
        }
Example #20
0
 public override object GetFieldValue(string fieldValue, global::Sitecore.Data.Items.Item item, ISitecoreService service)
 {
     return(SetValue);
 }
Example #21
0
 public override object GetFieldValue(string fieldValue, global::Sitecore.Data.Items.Item item, ISitecoreService service)
 {
     throw new NotImplementedException();
 }
Example #22
0
        public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
        {
            var itemField = base.GetField(item);

            if (itemField == null || itemField.Value.Trim().IsNullOrEmpty())
            {
                return(null);
            }



            Link      link  = new Link();
            LinkField field = new LinkField(itemField);

            switch (field.LinkType)
            {
            case "anchor":
                link.Url  = field.Anchor;
                link.Type = LinkType.Anchor;
                break;

            case "external":
                link.Url  = field.Url;
                link.Type = LinkType.External;
                break;

            case "mailto":
                link.Url  = field.Url;
                link.Type = LinkType.MailTo;
                break;

            case "javascript":
                link.Url  = field.Url;
                link.Type = LinkType.JavaScript;
                break;

            case "media":
                global::Sitecore.Data.Items.MediaItem media = new global::Sitecore.Data.Items.MediaItem(field.TargetItem);
                link.Url      = global::Sitecore.Resources.Media.MediaManager.GetMediaUrl(media);
                link.Type     = LinkType.Media;
                link.TargetId = field.TargetID.Guid;

                break;

            case "internal":
                if (field.TargetItem == null)
                {
                    link.Url = string.Empty;
                }
                else
                {
                    link.Url = LinkManager.GetItemUrl(field.TargetItem);
                }
                link.Type     = LinkType.Internal;
                link.TargetId = field.TargetID.Guid;

                break;

            default:
                return(null);

                break;
            }


            link.Anchor = field.Anchor;
            link.Class  = field.Class;
            link.Text   = field.Text;
            link.Title  = field.Title;
            link.Target = field.Target;
            link.Query  = field.QueryString;

            return(link);
        }
Example #23
0
        public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service)
        {
            Link link = value as Link;

            var itemField = base.GetField(item);

            if (itemField == null)
            {
                return;
            }

            LinkField field = new LinkField(itemField);

            if (link == null || link.Type == LinkType.NotSet)
            {
                field.Clear();
                return;
            }


            switch (link.Type)
            {
            case LinkType.Internal:
                field.LinkType = "internal";
                if (field.TargetID.Guid != link.TargetId)
                {
                    if (link.TargetId == Guid.Empty)
                    {
                        ItemLink iLink = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, field.TargetItem.Database.Name, field.TargetID, field.TargetItem.Paths.FullPath);
                        field.RemoveLink(iLink);
                    }
                    else
                    {
                        ID   newId  = new ID(link.TargetId);
                        Item target = item.Database.GetItem(newId);
                        if (target != null)
                        {
                            field.TargetID = newId;
                            ItemLink nLink = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath);
                            field.UpdateLink(nLink);
                            field.Url = LinkManager.GetItemUrl(target);
                        }
                        else
                        {
                            throw new MapperException("No item with ID {0}. Can not update Link field".Formatted(newId));
                        }
                    }
                }
                break;

            case LinkType.Media:
                field.LinkType = "media";
                if (field.TargetID.Guid != link.TargetId)
                {
                    if (link.TargetId == Guid.Empty)
                    {
                        ItemLink iLink = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, field.TargetItem.Database.Name, field.TargetID, field.TargetItem.Paths.FullPath);
                        field.RemoveLink(iLink);
                    }
                    else
                    {
                        ID   newId  = new ID(link.TargetId);
                        Item target = item.Database.GetItem(newId);
                        global::Sitecore.Data.Items.MediaItem media = new global::Sitecore.Data.Items.MediaItem(target);

                        if (target != null)
                        {
                            field.TargetID = newId;
                            ItemLink nLink = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath);
                            field.UpdateLink(nLink);
                            field.Url = global::Sitecore.Resources.Media.MediaManager.GetMediaUrl(media);
                        }
                        else
                        {
                            throw new MapperException("No item with ID {0}. Can not update Link field".Formatted(newId));
                        }
                    }
                }
                break;

            case LinkType.External:
                field.LinkType = "external";
                field.Url      = link.Url;
                break;

            case LinkType.Anchor:
                field.LinkType = "anchor";
                field.Url      = link.Anchor;
                break;

            case LinkType.MailTo:
                field.LinkType = "mailto";
                field.Url      = link.Url;
                break;

            case LinkType.JavaScript:
                field.LinkType = "javascript";
                field.Url      = link.Url;
                break;
            }



            if (!link.Anchor.IsNullOrEmpty())
            {
                field.Anchor = link.Anchor;
            }
            if (!link.Class.IsNullOrEmpty())
            {
                field.Class = link.Class;
            }
            if (!link.Text.IsNullOrEmpty())
            {
                field.Text = link.Text;
            }
            if (!link.Title.IsNullOrEmpty())
            {
                field.Title = link.Title;
            }
            if (!link.Query.IsNullOrEmpty())
            {
                field.QueryString = link.Query;
            }
            if (!link.Target.IsNullOrEmpty())
            {
                field.Target = link.Target;
            }
        }
 public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service)
 {
     throw new MapperException("SitecoreItem mappings can not be set");
 }
Example #25
0
 public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
 {
     return(service.CreateClass(this.IsLazy, this.InferType, Property.PropertyType, item.Parent));
 }
 public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service)
 {
     throw new NotImplementedException();
 }
Example #27
0
 public string GetValue(global::Sitecore.Data.Items.Item item)
 {
     return(item.ID.ToString());
 }
 public FixedSearchContext(global::Sitecore.Security.Accounts.User user, global::Sitecore.Data.Items.Item item)
 {
     this._user = user;
     this._item = item;
 }
 public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service)
 {
     return(GetItemInfo(InfoType, item, this.UrlOptions));
 }
 /// <summary>
 /// Gets the value.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <returns>System.String.</returns>
 public string GetValue(global::Sitecore.Data.Items.Item item)
 {
     return(global::Sitecore.DateUtil.ToIsoDate(DateTime.Now));
 }