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; } }
/// <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; } }