/// <summary> /// Find this istance in Static ErrorMapping /// </summary> /// <param name="_flyExceptionType">Internal Exception type</param> /// <returns>Founded FlyExceptionObject</returns> public static FlyExceptionObject Get(FlyExceptionTypeEnum _flyExceptionType) { try { if (ErrorsDescription == null) { XmlDocument doc = new XmlDocument(); doc.Load(FlyConfiguration.ErrorDescriptionFile); ErrorsDescription = XElement.Load(new XmlNodeReader(doc)); } XElement err = (from el in ErrorsDescription.Elements() where el.Attribute("Code").Value == _flyExceptionType.ToString() select el).FirstOrDefault <XElement>(); SdmxErrorCodeEnumType tipoErr = SdmxErrorCodeEnumType.InternalServerError; Enum.TryParse(err.Attribute("SdmxType").Value, true, out tipoErr); XElement Description = (from el in err.Elements() where el.Name == "Description" && el.Attribute("LocaleIsoCode").Value == "en" select el).FirstOrDefault <XElement>(); return(new FlyExceptionObject(_flyExceptionType, tipoErr, (string)Description)); } catch (Exception ex) { return(new FlyExceptionObject(FlyExceptionTypeEnum.InternalError, SdmxErrorCodeEnumType.InternalServerError, string.Format("No Error description configured --> Error: {0} Message: {1}", _flyExceptionType.ToString(), ex.Message))); } }
/// <summary> /// Create FlyExceptionObject Instace /// </summary> /// <param name="_flyExceptionType">Internal Exception type</param> /// <param name="_sdmxErrorCodeType">SDMX Standard Error Type</param> /// <param name="_flyExceptionText">Additional exception description</param> public FlyExceptionObject(FlyExceptionTypeEnum _flyExceptionType, SdmxErrorCodeEnumType _sdmxErrorCodeType, string _flyExceptionText) { this.FlyExceptionType = _flyExceptionType; this.SDMXException = SDMXExceptionObject.Get(_sdmxErrorCodeType); this.FlyExceptionText = _flyExceptionText; }