当前位置: 首页>>代码示例>>C#>>正文


C# BinaryFileService.LoadAttributes方法代码示例

本文整理汇总了C#中Rock.Model.BinaryFileService.LoadAttributes方法的典型用法代码示例。如果您正苦于以下问题:C# BinaryFileService.LoadAttributes方法的具体用法?C# BinaryFileService.LoadAttributes怎么用?C# BinaryFileService.LoadAttributes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Rock.Model.BinaryFileService的用法示例。


在下文中一共展示了BinaryFileService.LoadAttributes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Read

        /// <summary>
        /// Reads the specified label by id.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        public static KioskLabel Read( int id )
        {
            string cacheKey = KioskLabel.CacheKey( id );

            ObjectCache cache = MemoryCache.Default;
            KioskLabel label = cache[cacheKey] as KioskLabel;

            if ( label != null )
            {
                return label;
            }
            else
            {
                var file = new BinaryFileService( new RockContext() ).Get( id );
                if ( file != null )
                {
                    label = new KioskLabel();

                    label.Guid = file.Guid;
                    label.Url = string.Format( "{0}GetFile.ashx?id={1}", System.Web.VirtualPathUtility.ToAbsolute( "~" ), file.Id );
                    label.MergeFields = new Dictionary<string, string>();
                    label.FileContent = System.Text.Encoding.Default.GetString( file.Data.Content );

                    file.LoadAttributes();
                    string attributeValue = file.GetAttributeValue( "MergeCodes" );
                    if ( !string.IsNullOrWhiteSpace( attributeValue ) )
                    {
                        string[] nameValues = attributeValue.Split( new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries );
                        foreach ( string nameValue in nameValues )
                        {
                            string[] nameAndValue = nameValue.Split( new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries );
                            if ( nameAndValue.Length == 2 && !label.MergeFields.ContainsKey( nameAndValue[0] ) )
                            {
                                label.MergeFields.Add( nameAndValue[0], nameAndValue[1] );

                                int definedValueId = int.MinValue;
                                if ( int.TryParse( nameAndValue[1], out definedValueId ) )
                                {
                                    var definedValue = DefinedValueCache.Read( definedValueId );
                                    if ( definedValue != null )
                                    {
                                        string mergeField = definedValue.GetAttributeValue( "MergeField" );
                                        if ( mergeField != null )
                                        {
                                            label.MergeFields[nameAndValue[0]] = mergeField;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    var cachePolicy = new CacheItemPolicy();
                    cachePolicy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds( 60 );
                    cache.Set( cacheKey, label, cachePolicy );

                    return label;
                }
            }

            return null;
        }
开发者ID:Ganon11,项目名称:Rock,代码行数:67,代码来源:KioskLabel.cs

示例2: Read

        /// <summary>
        /// Reads the specified label by guid.
        /// </summary>
        /// <param name="guid">The unique identifier.</param>
        /// <returns></returns>
        public static KioskLabel Read( Guid guid )
        {
            string cacheKey = KioskLabel.CacheKey( guid );

            RockMemoryCache cache = RockMemoryCache.Default;
            KioskLabel label = cache[cacheKey] as KioskLabel;

            if ( label != null )
            {
                return label;
            }
            else
            {
                using ( var rockContext = new RockContext() )
                {
                    var file = new BinaryFileService( rockContext ).Get( guid );
                    if ( file != null )
                    {
                        label = new KioskLabel();
                        label.Guid = file.Guid;
                        label.Url = string.Format( "{0}GetFile.ashx?id={1}", System.Web.VirtualPathUtility.ToAbsolute( "~" ), file.Id );
                        label.MergeFields = new Dictionary<string, string>();
                        label.FileContent = file.ContentsToString();

                        file.LoadAttributes( rockContext );

                        label.LabelType = file.GetAttributeValue( "core_LabelType" ).ConvertToEnum<KioskLabelType>();

                        string attributeValue = file.GetAttributeValue( "MergeCodes" );
                        if ( !string.IsNullOrWhiteSpace( attributeValue ) )
                        {
                            string[] nameValues = attributeValue.Split( new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries );
                            foreach ( string nameValue in nameValues )
                            {
                                string[] nameAndValue = nameValue.Split( new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries );
                                if ( nameAndValue.Length == 2 && !label.MergeFields.ContainsKey( nameAndValue[0] ) )
                                {
                                    label.MergeFields.Add( nameAndValue[0], nameAndValue[1] );

                                    int definedValueId = int.MinValue;
                                    if ( int.TryParse( nameAndValue[1], out definedValueId ) )
                                    {
                                        var definedValue = DefinedValueCache.Read( definedValueId );
                                        if ( definedValue != null )
                                        {
                                            string mergeField = definedValue.GetAttributeValue( "MergeField" );
                                            if ( mergeField != null )
                                            {
                                                label.MergeFields[nameAndValue[0]] = mergeField;
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        cache.Set( cacheKey, label, new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.Date.AddDays( 1 ) } );

                        return label;
                    }
                }
            }

            return null;
        }
开发者ID:NewSpring,项目名称:Rock,代码行数:70,代码来源:KioskLabel.cs


注:本文中的Rock.Model.BinaryFileService.LoadAttributes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。