public static string ConvertReport(ImportReport report)
        {
            var sb = new StringBuilder();

            if (report != null)
                foreach (var process in report.Processes)
                {
                    if (!process.BrokenFields.Any() && !process.BrokenExpressions.Any() && !process.BrokenFilters.Any() && !process.BrokenRules.Any() && !process.BrokenTriggers.Any() && !process.BrokenESyncDesigner.Any() && !process.BrokenIntegration.Any() && !process.BrokenExternalData.Any() && !process.OtherErrors.Any())
                        continue;

                    sb.AppendLine(process.ProcessName);

                    if (!string.IsNullOrEmpty(process.ImportStatus))
                        sb.AppendLine("\tStatus: " + process.ImportStatus);

                    if (process.BrokenFields.Any())
                        sb.AppendLine("\tBroken Fields");

                    foreach (var field in process.BrokenFields.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenExpressions.Any())
                        sb.AppendLine("\tBroken Expressions");

                    foreach (var field in process.BrokenExpressions.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenFilters.Any())
                        sb.AppendLine("\tBroken Filters");

                    foreach (var field in process.BrokenFilters.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenRules.Any())
                        sb.AppendLine("\tBroken Rules");

                    foreach (var field in process.BrokenRules.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenTriggers.Any())
                        sb.AppendLine("\tBroken Triggers");

                    foreach (var field in process.BrokenTriggers.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenESyncDesigner.Any())
                        sb.AppendLine("\tBroken ESync");

                    foreach (var field in process.BrokenESyncDesigner.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenIntegration.Any())
                        sb.AppendLine("\tBroken Integration");

                    foreach (var field in process.BrokenIntegration.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.BrokenExternalData.Any())
                        sb.AppendLine("\tBroken External Data");

                    foreach (var field in process.BrokenExternalData.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }

                    if (process.OtherErrors.Any())
                        sb.AppendLine("\tOther Errors");

                    foreach (var field in process.OtherErrors.Distinct())
                    {
                        sb.AppendLine("\t\t" + field);
                    }
                }

            return sb.ToString();
        }
Example #2
0
        /// <summary>
        /// Sends import report to client.
        /// </summary>
        /// <param name="initiatorId">The initiator id.</param>
        /// <param name="exceptions">The exceptions.</param>
        public static void NotifyImportReport(string initiatorId, ImportReport report)
        {
            if (report == null)
                return;

            if (!ConnectedClients.Contains(initiatorId))
            {
                Log4NetLogger.Instance.Log(LogSeverity.Error, "ServerStatusHub Error", "Cannot find Client in ConnectedClients list, client id: " + initiatorId + ", list of ConnectedClients: " + ConnectedClients);

                return;
            }

            var context = GlobalHost.ConnectionManager.GetHubContext<ServerStatusHub>();
            context.Clients.Client(ConnectedClients.FirstOrDefault(x => x == initiatorId)).NotifyImportReport(report);
        }