예제 #1
0
        public bool IsClientErrorResource <TResourceCode>(TResourceCode resourceCode)
            where TResourceCode : struct, IConvertible
        {
            try
            {
                if (!typeof(TResourceCode).IsEnum)
                {
                    throw new ArgumentException("Le type TResourceCode doit être une énumération.");
                }

                LocalizationUtilityAttribute localizationUtility = EnumHandler.GetCustomAttributeOnType <TResourceCode, LocalizationUtilityAttribute>();

                if (localizationUtility == null)
                {
                    throw new ArgumentException("Le type doit être une ressource de traduction.");
                }

                ResourceCodeDetailsAttribute details = EnumHandler.GetCustomAttributeOnValue <TResourceCode, ResourceCodeDetailsAttribute>(resourceCode);

                bool result = (details.SolutionPart == ESolutionPart.ClientError);
                return(result);
            }
            catch (Exception e)
            {
                throw;
            }
        }
예제 #2
0
        /// <summary>
        /// Get a string from the dictionary.
        /// </summary>
        /// <typeparam name="T">The resource serial type.</typeparam>
        /// <param name="resource">The resource serial.</param>
        /// <param name="culture">The user cutlure.</param>
        /// <returns></returns>
        public IResourceResult <TResourceCode> GetResourceResult <TResourceCode>(TResourceCode resourceCode, CultureInfo culture, params object[] args)
            where TResourceCode : struct, IConvertible
        {
            try
            {
                if (!typeof(TResourceCode).IsEnum)
                {
                    throw new ArgumentException("Le type TResourceCode doit être une énumération.");
                }

                LocalizationUtilityAttribute localizationUtility = EnumHandler.GetCustomAttributeOnType <TResourceCode, LocalizationUtilityAttribute>();

                if (localizationUtility == null)
                {
                    throw new ArgumentException("Le type doit être une ressource de traduction.");
                }

                ResourceCodeDetailsAttribute resourceCodeDetails = EnumHandler.GetCustomAttributeOnValue <TResourceCode, ResourceCodeDetailsAttribute>(resourceCode);
                ResourceManager rm = this.GetResourceManager <TResourceCode>();

                IResourceResult <TResourceCode> resourceResult = null;

                // Set result
                if (resourceCodeDetails.ResourceType == EResourceType.Object)
                {
                    resourceResult = new ResourceResult <TResourceCode>(localizationUtility, resourceCodeDetails, resourceCode, rm.GetObject(resourceCode.ToString()));
                }
                if (resourceCodeDetails.ResourceType == EResourceType.Stream)
                {
                    resourceResult = new ResourceResult <TResourceCode>(localizationUtility, resourceCodeDetails, resourceCode, rm.GetStream(resourceCode.ToString()));
                }
                if (resourceCodeDetails.ResourceType == EResourceType.String)
                {
                    resourceResult = new ResourceResult <TResourceCode>(localizationUtility, resourceCodeDetails, resourceCode, rm.GetString(resourceCode.ToString()), args);
                }

                // Format result
                if (resourceCodeDetails.ResourceType == EResourceType.String &&
                    args != null &&
                    args.Any())
                {
                    resourceResult.StringContent = string.Format(resourceResult.StringContent, args);
                }

                return(resourceResult);
            }
            catch (Exception e)
            {
                throw;
            }
        }