예제 #1
0
        /// <summary>
        /// Gets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        /// <returns>System.Object.</returns>
        public override object GetField(Sitecore.Data.Fields.Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            var data = field.GetBlobStream();

            MemoryStream stream = null;

            if (data.CanRead)
            {
                stream = new MemoryStream();

                byte[] buffer = new byte[2048];
                int    bytesRead;


                while ((bytesRead = data.Read(buffer, 0, buffer.Length)) > 0)
                {
                    stream.Write(buffer, 0, bytesRead);
                }

                data.Close();

                stream.Seek(0, SeekOrigin.Begin);
            }
            return(stream);
        }
        /// <summary>
        /// Gets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        /// <returns>System.Object.</returns>
        public override object GetField(Sitecore.Data.Fields.Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            if (field == null)
            {
                return(string.Empty);
            }

            if (config.Setting == SitecoreFieldSettings.RichTextRaw)
            {
                return(field.Value);
            }

            if (field.Type.StartsWith("Rich Text"))
            {
                FieldRenderer renderer = new FieldRenderer();
                renderer.Item       = field.Item;
                renderer.FieldName  = field.Name;
                renderer.Parameters = string.Empty;
                return(renderer.Render());
            }
            else
            {
                return(field.Value);
            }
        }
        public void HowToSetAndGetBlobStream()
        {
            // arrange
            var stream = new System.IO.MemoryStream();

            using (Sitecore.FakeDb.Db db = new Sitecore.FakeDb.Db
            {
                new Sitecore.FakeDb.DbItem("home")
                {
                    new Sitecore.FakeDb.DbField("field")
                }
            })
            {
                Sitecore.Data.Items.Item   item  = db.GetItem("/sitecore/content/home");
                Sitecore.Data.Fields.Field field = item.Fields["field"];

                using (new Sitecore.Data.Items.EditContext(item))
                {
                    // act
                    field.SetBlobStream(stream);
                }

                // assert
                Xunit.Assert.Equal(stream.ToArray(),
                                   ((System.IO.MemoryStream)field.GetBlobStream()).ToArray());
            }
        }
예제 #4
0
        /// <summary>
        /// This function will be used to add
        /// table cell
        /// </summary>
        /// <param name="tableRow">Table Row</param>
        /// <param name="aField">Field</param>
        /// <param name="fieldType">Type of field</param>
        /// <returns></returns>
        private static TableCell AddTableCell(TableRow tableRow, Sitecore.Data.Fields.Field aField, FieldTypes fieldType)
        {
            TableCell tableCell1 = new TableCell();

            string valueToPrint = "NA";

            switch (fieldType)
            {
            case FieldTypes.DateTime:
                if ((aField != null) && !string.IsNullOrEmpty(aField.Value))
                {
                    string   dateFormat  = "r";
                    DateTime createdDate = DateTime.Now;
                    createdDate  = Sitecore.DateUtil.IsoDateToDateTime(aField.Value);
                    valueToPrint = createdDate.ToString(dateFormat);
                }
                else
                {
                    valueToPrint = "NA";
                }
                break;

            case FieldTypes.Text:
                valueToPrint = ((aField != null) && !string.IsNullOrEmpty(aField.Value)) ? aField.Value : "NA";
                break;

            default:
                valueToPrint = ((aField != null) && !string.IsNullOrEmpty(aField.Value)) ? aField.Value : "NA";
                break;
            }

            tableCell1.Text = valueToPrint;
            tableRow.Cells.Add(tableCell1);
            return(tableCell1);
        }
        public void UpdateField(Sitecore.Data.Fields.Field field, string importValue, IImportOptions importOptions)
        {
            var selectionSource = field.Item.Database.SelectSingleItem(field.Source);

            if (selectionSource != null)
            {
                var query = ID.IsID(importValue)
                    ? ".//*[@@id='" + ID.Parse(importValue) + "']"
                    : "." +
                            Sitecore.StringUtil.EnsurePrefix('/',
                                                             importValue.Replace(importOptions.TreePathValuesImportSeparator, "/"));

                var selectedItem = selectionSource.Axes.SelectSingleItem(query);
                if (selectedItem != null)
                {
                    field.Value = selectedItem.ID.ToString();
                    return;
                }
            }
            if (importOptions.InvalidLinkHandling == InvalidLinkHandling.SetBroken)
            {
                field.Value = importValue;
            }
            else if (importOptions.InvalidLinkHandling == InvalidLinkHandling.SetEmpty)
            {
                field.Value = string.Empty;
            }
        }
예제 #6
0
 /// <summary>
 /// Gets the field.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="config">The config.</param>
 /// <param name="context">The context.</param>
 /// <returns>System.Object.</returns>
 public override object GetField(Sitecore.Data.Fields.Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
 {
     if (string.IsNullOrWhiteSpace(field.Value))
     {
         return(null);
     }
     return(_baseMapper.GetField(field, config, context));
 }
예제 #7
0
        /// <summary>
        /// Determines whether [is standard field] [the specified field].
        /// </summary>
        /// <param name="field">The field.</param>
        /// <returns><c>true</c> if [is standard field] [the specified field]; otherwise, <c>false</c>.</returns>
        protected virtual bool IsStandardField(Sitecore.Data.Fields.Field field)
        {
            Assert.ArgumentNotNull(field, "field");

            TemplateField templateField = field.GetTemplateField();

            return((templateField.Template.ID != TemplateIDs.StandardTemplate) && (templateField.Template.BaseIDs.Length == 0));
        }
예제 #8
0
 /// <summary>
 /// Sets the field.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="value">The value.</param>
 /// <param name="config">The config.</param>
 /// <param name="context">The context.</param>
 public override void SetField(Sitecore.Data.Fields.Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
 {
     if (value == null)
     {
         return;
     }
     field.SetBlobStream(value as Stream);
 }
 public static bool IsStandardTemplateField(this Sitecore.Data.Fields.Field field)
 {
     Sitecore.Data.Templates.Template template = Sitecore.Data.Managers.TemplateManager.GetTemplate(
         Sitecore.Configuration.Settings.DefaultBaseTemplate,
         field.Database);
     Sitecore.Diagnostics.Assert.IsNotNull(template, "template");
     return(template.ContainsField(field.ID));
 }
 protected LuceneField.TermVector GetVectorType(SCField field)
 {
     if (FieldTypes.ContainsKey(field.TypeKey))
     {
         var searchField = FieldTypes[field.TypeKey];
         return(searchField.VectorType);
     }
     return(LuceneField.TermVector.NO);
 }
        protected virtual void ProcessField(SCField field, Document document)
        {
            var values = ExtendedFieldCrawlerFactory.GetFieldCrawlerValues(field, FieldCrawlers);

            foreach (var value in values)
            {
                ProcessFieldValue(field, document, value);
            }
        }
예제 #12
0
        /// <summary>
        /// Filter Fields
        /// </summary>
        /// <param name="filteredFields">
        /// The filtered fields.
        /// </param>
        /// <param name="field">
        /// The field.
        /// </param>
        private void FilterFields(List <SCField> filteredFields, SCField field)
        {
            var fieldKey = field.ID.ToString();

            if (!(!this.FieldFilter.ContainsKey(fieldKey) ? true : this.FieldFilter[fieldKey]))
            {
                filteredFields.Remove(field);
            }
        }
 protected LuceneField.Store GetStorageType(SCField field)
 {
     if (FieldTypes.ContainsKey(field.TypeKey))
     {
         var searchField = FieldTypes[field.TypeKey];
         return(searchField.StorageType);
     }
     return(LuceneField.Store.NO);
 }
예제 #14
0
        /// <summary>
        /// Sets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="value">The value.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        public override void SetField(Sitecore.Data.Fields.Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            if (value == null)
            {
                field.Value = null;
                return;
            }

            base.SetField(field, value, config, context);
        }
예제 #15
0
        /// <summary>
        /// Sets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="value">The value.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        public override void SetField(Sitecore.Data.Fields.Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            if (value == null)
            {
                field.Value = string.Empty;
                return;
            }

            _baseMapper.SetField(field, (T)value, config, context);
        }
예제 #16
0
        protected virtual bool IsTextField(Sitecore.Data.Fields.Field field)
        {
            Assert.ArgumentNotNull(field, "field");
            if (!this.TextFieldTypes.Contains(field.Type))
            {
                return(false);
            }
            TemplateField templateField = field.GetTemplateField();

            return((templateField == null) || !templateField.ExcludeFromTextSearch);
        }
 public void UpdateField(Sitecore.Data.Fields.Field field, string importValue, IImportOptions importOptions)
 {
     try
     {
         var separator       = new[] { importOptions.MultipleValuesImportSeparator };
         var selectionSource = field.Item.Database.SelectSingleItem(field.Source);
         var importValues    = importValue != null
             ? importValue.Split(separator, StringSplitOptions.RemoveEmptyEntries)
             : new string[]
         {
         };
         var idListValue = "";
         foreach (var value in importValues)
         {
             var query = ID.IsID(value)
                 ? ".//*[@@id='" + ID.Parse(value) + "']"
                 : "." +
                         Sitecore.StringUtil.EnsurePrefix('/',
                                                          value.Replace(importOptions.TreePathValuesImportSeparator, "/"));
             var item = selectionSource.Axes.SelectSingleItem(query);
             if (item != null)
             {
                 idListValue += "|" + item.ID;
             }
             else
             {
                 if (importOptions.InvalidLinkHandling == InvalidLinkHandling.SetBroken)
                 {
                     idListValue += "|" + value;
                 }
                 else if (importOptions.InvalidLinkHandling == InvalidLinkHandling.SetEmpty)
                 {
                     idListValue += "|";
                 }
             }
         }
         if (idListValue.StartsWith("|"))
         {
             idListValue = idListValue.Substring(1);
         }
         field.Value = idListValue;
     }
     catch (Exception ex)
     {
         if (importOptions.InvalidLinkHandling == InvalidLinkHandling.SetBroken)
         {
             field.Value = importValue;
         }
         else if (importOptions.InvalidLinkHandling == InvalidLinkHandling.SetEmpty)
         {
             field.Value = string.Empty;
         }
     }
 }
예제 #18
0
 /// <summary>
 /// Get Index Type
 /// </summary>
 /// <param name="field">
 /// The field.
 /// </param>
 /// <returns>
 /// Lucene Index
 /// </returns>
 protected LuceneField.Index GetIndexType(SCField field)
 {
     if (this.FieldTypes.ContainsKey(field.TypeKey))
     {
         object searchField = this.FieldTypes[field.TypeKey];
         if (searchField is SearchField)
         {
             return((searchField as SearchField).IndexType);
         }
     }
     return(LuceneField.Index.UN_TOKENIZED);
 }
        public override void Apply(T ruleContext)
        {
            SC.Diagnostics.Assert.IsNotNull(ruleContext, "ruleContext");
            SC.Diagnostics.Assert.IsNotNull(ruleContext.Item, "ruleContext.Item");
            SC.Data.Fields.Field field =
                ruleContext.Item.Fields[Sitecore.FieldIDs.LayoutField];

            if (!field.ContainsStandardValue)
            {
                using (new Sitecore.Data.Items.EditContext(ruleContext.Item))
                {
                    field.Reset();
                }
            }
        }
        /// <summary>
        /// Sets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="value">The value.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        /// <exception cref="System.NotSupportedException">It is not possible to save data from a rich text field when the data isn't raw.
        ///                     + Set the SitecoreFieldAttribute setting property to SitecoreFieldSettings.RichTextRaw for property {0} on type {1}.Formatted(config.PropertyInfo.Name, config.PropertyInfo.ReflectedType.FullName)</exception>
        public override void SetField(Sitecore.Data.Fields.Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            if (field == null)
            {
                return;
            }

            if (field.Type.StartsWith("Rich Text") && config.Setting != SitecoreFieldSettings.RichTextRaw)
            {
                throw new NotSupportedException("It is not possible to save data from a rich text field when the data isn't raw."
                                                + "Set the SitecoreFieldAttribute setting property to SitecoreFieldSettings.RichTextRaw for property {0} on type {1}".Formatted(config.PropertyInfo.Name, config.PropertyInfo.ReflectedType.FullName));
            }

            field.Value = value != null?value.ToString() : null;
        }
예제 #21
0
        /// <summary>
        /// Gets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        /// <returns>System.Object.</returns>
        public override object GetField(Sitecore.Data.Fields.Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            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 = Configuration.PropertyInfo.PropertyType.GetGenericArguments();
            method = method.MakeGenericMethod(genericArgs);
            object rules = method.Invoke(null, new object[] { field });

            return(rules);
        }
예제 #22
0
        /// <summary>
        /// Gets the code of the default payment method
        /// </summary>
        /// <returns>The code of the default payment method</returns>
        private string GetDefaultPaymentMethodCode()
        {
            Sitecore.Data.Fields.Field field = Sitecore.Context.Item.Fields[defaultPaymentMethodFieldName];

            if (field != null)
            {
                IEntityProvider <PaymentSystem> paymentMethodProvider = Sitecore.Ecommerce.Context.Entity.Resolve <IEntityProvider <PaymentSystem> >();
                PaymentSystem payment = paymentMethodProvider.GetAll().OfType <Payments.PaymentSystem>().Where(paymentSystem => paymentSystem.Alias == field.Value).SingleOrDefault();

                if (payment != null)
                {
                    return(payment.Code);
                }
            }

            return(string.Empty);
        }
        protected virtual void ProcessFieldValue(SCField field, Document document, string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                return;
            }

            var indexType   = GetIndexType(field);
            var storageType = GetStorageType(field);
            var vectorType  = GetVectorType(field);

            value = IdHelper.ProcessGUIDs(value);
            ProcessField(document, field.Key, value, storageType, indexType, vectorType);

            if (indexType == LuceneField.Index.TOKENIZED)
            {
                ProcessField(document, BuiltinFields.Content, value, LuceneField.Store.NO, LuceneField.Index.TOKENIZED);
            }
        }
예제 #24
0
        public static string GetMultilistValues(Sitecore.Data.Fields.Field oField, string sFieldName)
        {
            Database      oDatabase = oField.Database;
            Item          oSubItem;
            StringBuilder oResult = new StringBuilder();

            if (oField != null)
            {
                oField.Value.Split('|').ToList().ForEach(id =>
                {
                    if ((oSubItem = oDatabase.GetItem(id)) != null)
                    {
                        oResult.Append(oSubItem.GetText(sFieldName));
                        oResult.Append(" , ");
                    }
                });
            }
            return(oResult.ToString().TrimEnd(new char[] { ' ', ',', ' ' }));
        }
        protected override ValidatorResult Evaluate()
        {
            Item item = this.GetItem();

            Assert.IsNotNull(item, "GetItem");
            Database[] pubTargets = GetPublishingTargets(item);

            foreach (ItemLink link in item.Links.GetAllLinks())
            {
                if (link.SourceFieldID == Sitecore.Data.ID.Null)
                {
                    continue;
                }

                Sitecore.Data.Fields.Field field = item.Fields[link.SourceFieldID];
                Assert.IsNotNull(field, link.SourceFieldID.ToString());
                Item media = link.GetTargetItem();

                if (String.IsNullOrEmpty(field.Value) || media == null || !media.Paths.IsMediaItem)
                {
                    continue;
                }

                if (field.Value.Contains(media.ID.ToString()) || field.Value.Contains(ShortID.Encode(media.ID)))
                {
                    foreach (Database db in pubTargets)
                    {
                        if (!IsPublished(media, db))
                        {
                            this.Text = String.Format(
                                "The field {0} references the media item {1}, which is not current in the {2} database.",
                                field.Name,
                                media.Paths.FullPath,
                                db.Name);
                            return(GetFailedResult(ValidatorResult.Error));
                        }
                    }
                }
            }

            return(ValidatorResult.Valid);
        }
예제 #26
0
        /// <summary>
        /// Process the Field to be added to the index
        /// </summary>
        /// <param name="field">
        /// The field.
        /// </param>
        /// <param name="document">
        /// The document.
        /// </param>
        protected virtual void ProcessField(SCField field, Document document)
        {
            var value = ExtendedFieldCrawlerFactory.GetFieldCrawlerValue(field, this.FieldCrawlers);

            if (value.IsNullOrEmpty())
            {
                return;
            }

            if (field.TypeKey == "integer" || field.TypeKey == "number")
            {
                value = value.PadLeft(8, '0');
            }

            value = IdHelper.ProcessGUIDs(value);
            this.ProcessField(document, field.Key, value, this.GetStorageType(field), this.GetIndexType(field), this.GetVectorType(field));
            if (this.GetIndexType(field) == LuceneField.Index.TOKENIZED)
            {
                this.ProcessField(document, BuiltinFields.Content, value, LuceneField.Store.NO, LuceneField.Index.TOKENIZED);
            }
        }
        /// <summary>
        /// Gets the field.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <param name="config">The config.</param>
        /// <param name="context">The context.</param>
        /// <returns>System.Object.</returns>
        public override object GetField(Sitecore.Data.Fields.Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
        {
            if (field == null)
            {
                return(string.Empty);
            }

            if (config.Setting == SitecoreFieldSettings.RichTextRaw)
            {
                return(field.Value);
            }

            if (_notRichTextSet.Contains(field.ID.Guid))
            {
                return(field.Value);
            }

            if (field.TypeKey == _richTextKey)
            {
                RenderFieldArgs renderFieldArgs = new RenderFieldArgs();
                renderFieldArgs.Item           = field.Item;
                renderFieldArgs.FieldName      = field.Name;
                renderFieldArgs.DisableWebEdit = true;
                CorePipeline.Run("renderField", renderFieldArgs);

                return(renderFieldArgs.Result.FirstPart + renderFieldArgs.Result.LastPart);

                //FieldRenderer renderer = new FieldRenderer();
                //renderer.Item = field.Item;
                //renderer.FieldName = field.Name;
                //renderer.Parameters = string.Empty;
                //renderer.DisableWebEditing = true;
                //return renderer.Render();
            }

            _notRichTextSet.Add(field.ID.Guid);

            return(field.Value);
        }
예제 #28
0
        /// <summary>
        /// Handle links database references to items that do not exist by logging an error
        /// or throwing an exception.
        /// </summary>
        /// <param name="item">The item that contains the reference.</param>
        /// <param name="referenced">The referenced item, which may be Null.</param>
        /// <param name="link">The link record from the links database.</param>
        /// <returns>True if the referenced item is Null, false otherwise.</returns>
        /// <exception cref="PublishingException"><c>PublishingException</c> - Any type of
        /// error.</exception>
        protected bool HandleNullReference(
            Sitecore.Data.Items.Item item,
            Sitecore.Data.Items.Item referenced,
            Sitecore.Links.ItemLink link)
        {
            if (referenced != null)
            {
                return(false);
            }

            Sitecore.Data.Fields.Field field = item.Fields[link.SourceFieldID];

            if (field == null)
            {
                return(true);
            }

            if (field.Value.Contains(link.TargetItemID.ToString()))
            {
                string message = this.Logger.Info(
                    "{0} of {1} contains broken link to {2} : {3}",
                    field.Name,
                    item,
                    link.TargetItemID,
                    link.TargetPath);

                if (this.ThrowExceptions)
                {
                    throw new PublishingException(message);
                }

                return(true);
            }

            return(true);
        }
 protected LuceneField.Index GetIndexType(SCField field)
 {
     if (FieldTypes.ContainsKey(field.TypeKey))
     {
         object searchField = FieldTypes[field.TypeKey];
         if (searchField is SearchField)
         {
             return (searchField as SearchField).IndexType;
         }
     }
     return LuceneField.Index.UN_TOKENIZED;
 }
 protected LuceneField.Store GetStorageType(SCField field)
 {
     if (FieldTypes.ContainsKey(field.TypeKey))
     {
         var searchField = FieldTypes[field.TypeKey];
         return searchField.StorageType;
     }
     return LuceneField.Store.NO;
 }
예제 #31
0
 public override void SetField(Sitecore.Data.Fields.Field field, object value, Configuration.SitecoreFieldConfiguration config, SitecoreDataMappingContext context)
 {
     field.Value = Value;
 }
 protected LuceneField.TermVector GetVectorType(SCField field)
 {
     if (FieldTypes.ContainsKey(field.TypeKey))
     {
         var searchField = FieldTypes[field.TypeKey];
         return searchField.VectorType;
     }
     return LuceneField.TermVector.NO;
 }
        protected virtual void ProcessFieldValue(SCField field, Document document, string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                return;
            }

            var indexType = GetIndexType(field);
            var storageType = GetStorageType(field);
            var vectorType = GetVectorType(field);

            value = IdHelper.ProcessGUIDs(value);
            ProcessField(document, field.Key, value, storageType, indexType, vectorType);

            if (indexType == LuceneField.Index.TOKENIZED)
            {
                ProcessField(document, BuiltinFields.Content, value, LuceneField.Store.NO, LuceneField.Index.TOKENIZED);
            }
        }
 protected virtual void ProcessField(SCField field, Document document)
 {
     var values = ExtendedFieldCrawlerFactory.GetFieldCrawlerValues(field, FieldCrawlers);
     foreach (var value in values)
     {
         ProcessFieldValue(field, document, value);
     }
 }
 public NumberFieldCrawler(Field field)
     : base(field)
 {
 }
 public BaseFieldWrapper(Sitecore.Data.Fields.Field field)
 {
     Sitecore.Diagnostics.Assert.ArgumentNotNull(field, "field");
     _field = field;
 }
예제 #37
0
        public List <Models.StationInformationDTO> /*stationInformation_AllType*/ GetAllStationInformation()
        {
            //  stationInformation_AllType allType = new stationInformation_AllType();
            //allType.stationInformation_All = new List<Models.StationInformation>();
            List <Models.StationInformationDTO> allType = new List <Models.StationInformationDTO>();
            //Database master = Sitecore.Configuration.Factory.GetDatabase("master");
            Database DB = Sitecore.Context.Database;

            Sitecore.Data.Items.Item stationInfo_Item = DB.GetItem("/sitecore/content/Home/iMap/Configuration/Station Information/");
            foreach (Sitecore.Data.Items.Item child in stationInfo_Item.Children)
            {
                Sitecore.Data.Fields.Field temp = child.Fields[Templates.StationInformation.StationName];

                StationInformationDTO stationInfoAll = new StationInformationDTO();
                stationInfoAll.stationName = child.Fields[Templates.StationInformation.StationName].ToString();
                stationInfoAll.CRSCode     = child.Fields[Templates.StationInformation.CRSCode].ToString();
                if (child.Fields[Templates.StationInformation.StationAddress].ToString() != null || child.Fields[Templates.StationInformation.StationAddress].ToString() != "")
                {
                    stationInfoAll.stationAddress = child.Fields[Templates.StationInformation.StationAddress].ToString();
                }
                stationInfoAll.stationAddress = child.Fields[Templates.StationInformation.StationAddress].ToString();
                stationInfoAll.xPos           = child.Fields[Templates.StationInformation.XPox].ToString();
                stationInfoAll.yPox           = child.Fields[Templates.StationInformation.YPos].ToString();
                stationInfoAll.status         = child.Fields[Templates.StationInformation.StationStatus].ToString();
                //stationInfoAll.startDate = child.Fields[Templates.StationInformation.ValidFrom];//.Value.ToString();
                //stationInfoAll.endDate = child.Fields[Templates.StationInformation.ValidTo];//.Value.ToString();
                //station status

                Sitecore.Data.Fields.DateField startDate = child.Fields[Templates.StationInformation.ValidFrom];
                Sitecore.Data.Fields.DateField endDate   = child.Fields[Templates.StationInformation.ValidTo];

                if (stationInfoAll.status == null || stationInfoAll.status == "" || StatusValid(endDate.DateTime) || startValid(startDate.DateTime))
                {
                    //default status
                    //stationInfo.statusIcon = null;
                    //stationInfo.statusTitle = null;
                    //stationInfo.statusMessage = null;
                }
                else
                {
                    Sitecore.Data.Items.Item stationStatusDetails = DB.GetItem("/sitecore/content/Home/iMap/Configuration/Station Status/" + stationInfoAll.status);
                    //stationInfoAll.statusIcon = stationStatusDetails.Fields[Templates.StationStatus.StationStatusIcon];
                    Sitecore.Data.Fields.ImageField statusIcon = stationStatusDetails.Fields[Templates.StationStatus.StationStatusIcon];
                    stationInfoAll.imageURL = Sitecore.Resources.Media.MediaManager.GetMediaUrl(statusIcon.MediaItem);

                    //stationInfoAll.statusTitle = stationStatusDetails.Fields[Templates.StationStatus.StationStatusTitle].Value;
                    //stationInfoAll.statusMessage = stationStatusDetails.Fields[Templates.StationStatus.StationStatusDetails].Value.Replace("startDate", stationInfoAll.startDate.ToString());
                    //stationInfoAll.statusMessage = stationInfoAll.statusMessage.Replace("endDate", stationInfoAll.endDate.ToString());

                    //Legends legendInfoAll = new Legends();
                    //legendInfoAll.icon = stationStatusDetails.Fields[Templates.LegendInformation.LegendIcon];
                    //legendInfoAll.imageURL = Sitecore.Resources.Media.MediaManager.GetMediaUrl(legendInfoAll.icon.MediaItem);
                    //legendInfoAll.subtitle = child.Fields[Templates.LegendInformation.LegendSubtitle].ToString();



                    //stationInfoAll.statusTitle = stationStatusDetails.Fields[Templates.StationStatus.StationStatusTitle].ToString();
                    //stationInfoAll.statusMessage = stationStatusDetails.Fields[Templates.StationStatus.StationStatusDetails].ToString();
                }
                allType.Add(stationInfoAll);
            }

            return(allType);
        }
예제 #38
0
 /// <summary>
 /// Filter Fields
 /// </summary>
 /// <param name="filteredFields">
 /// The filtered fields.
 /// </param>
 /// <param name="field">
 /// The field.
 /// </param>
 private void FilterFields(List<SCField> filteredFields, SCField field)
 {
     var fieldKey = field.ID.ToString();
     if (!(!this.FieldFilter.ContainsKey(fieldKey) ? true : this.FieldFilter[fieldKey]))
     {
         filteredFields.Remove(field);
     }
 }
예제 #39
0
        /// <summary>
        /// Process the Field to be added to the index
        /// </summary>
        /// <param name="field">
        /// The field.
        /// </param>
        /// <param name="document">
        /// The document.
        /// </param>
        protected virtual void ProcessField(SCField field, Document document)
        {
            var value = ExtendedFieldCrawlerFactory.GetFieldCrawlerValue(field, this.FieldCrawlers);

            if (value.IsNullOrEmpty())
            {
                return;
            }

            if (field.TypeKey == "integer" || field.TypeKey == "number")
            {
                value = value.PadLeft(16, '0');
            }

            value = IdHelper.ProcessGUIDs(value);
            this.ProcessField(document, field.Key, value, this.GetStorageType(field), this.GetIndexType(field), this.GetVectorType(field));
            if (this.GetIndexType(field) == LuceneField.Index.TOKENIZED)
            {
                this.ProcessField(document, BuiltinFields.Content, value, LuceneField.Store.NO, LuceneField.Index.TOKENIZED);
            }
        }