private MoodleError GetMoodleErrorByXml(string xml)
        {
            var moodlerError = new MoodleError();

            try
            {
                var document         = XDocument.Parse(xml, LoadOptions.PreserveWhitespace);
                var exceptionElement = document.Element("EXCEPTION");
                var message          = exceptionElement.Element("MESSAGE").Value;
                var debugInfo        = exceptionElement.Element("DEBUGINFO").Value;

                moodlerError.Exception = exceptionElement.Attribute("class").Value;
                moodlerError.Message   = message;
                moodlerError.DebugInfo = debugInfo;
            }
            catch (Exception ex)
            {
                moodlerError.Exception      = ex.GetType().FullName;
                moodlerError.Message        = ex.Message;
                moodlerError.DebugInfo      = ex.StackTrace;
                MoodleErrorConvertException = ex;
            }

            return(moodlerError);
        }
        private MoodleError GetMoodleError(string xmlOrJson)
        {
            try
            {
                if (xmlOrJson.IsXml())
                {
                    return(GetMoodleErrorByXml(xmlOrJson));
                }

                return(JsonConvert.DeserializeObject <MoodleError>(xmlOrJson));
            }
            catch (Exception ex)
            {
                MoodleError moodlerError = new MoodleError()
                {
                    Exception = ex.GetType().FullName,
                    Message   = ex.Message,
                    DebugInfo = ex.StackTrace
                };

                MoodleErrorConvertException = ex;
                return(moodlerError);
            }
        }