private static bool AddError(ErrorDto errorDto) {
            var errorId = errorDto.ErrorId;
            var sourceId = errorDto.SourceId;
            var infoUrl = errorDto.InfoUrl;

            var infoUrlPath = string.IsNullOrWhiteSpace(infoUrl) ? string.Empty : new Uri(infoUrl).AbsoluteUri;

            var section = ConfigurationManager.GetSection("elmahr") as RootSection;
            var hasSection = section != null;
            if (!hasSection) return false;

            var apps = GlobalHost.DependencyResolver.Resolve<IApplications>();

            var source = apps[sourceId];
            if (source == null) {
                apps.AddSource("Name", sourceId, "", new SourceSection("Name", sourceId, "", null, new Dictionary<string, string>()));
                source = apps[sourceId];
            }

            var error = errorDto.ToError();

            string errorJson = JsonConvert.SerializeObject(error);

            var payload = Error.ProcessAndAppendError(sourceId, errorId, errorJson, infoUrlPath, ErrorCatcher(infoUrlPath), true);

            if (payload != null) {
                Hub.Log(string.Format("Received error from {0}: {1}", payload.GetApplication().ApplicationName, payload.Message));
            }

            return true;
        }