Gwupe.Agent.GwupeClientAppContext.SubmitFaultReport C# (CSharp) Method

SubmitFaultReport() public method

public SubmitFaultReport ( FaultReport report ) : void
report FaultReport
return void
        public void SubmitFaultReport(FaultReport report)
        {
            // get the log file data
            var rootAppender = ((Hierarchy)LogManager.GetRepository()).Root.Appenders.OfType<FileAppender>().FirstOrDefault();
            string filename = rootAppender != null ? rootAppender.File : string.Empty;
            #if DEBUG
            string serviceFilename = @"C:\Windows\Temp\GwupeService_Dev.log";
            #else
            string serviceFilename = @"C:\Windows\Temp\GwupeService.log";
            #endif
            if (!String.IsNullOrEmpty(filename))
            {
                try
                {
                    var request = new FaultReportRq
                    {
                        report = report.UserReport,
                        subject = report.Subject,
                        version = Version(3),
                        platform = Environment.OSVersion.ToString()
                    };
                    try
                    {
                        request.log = Convert.ToBase64String(ExtractLog(filename));
                    }
                    catch (Exception e)
                    {
                        Logger.Error("Failed to extract log from " + filename, e);
                        request.report += "\n\n\nFailed to extract log from " + filename;
                    }
                    try
                    {
                        request.serviceLog = Convert.ToBase64String(ExtractLog(serviceFilename));
                    }
                    catch (Exception e)
                    {
                        Logger.Error("Failed to extract log from " + serviceFilename, e);
                        request.report += "\n\n\nFailed to extract log from " + filename;
                    }
                    try
                    {
                        var response = ConnectionManager.Connection.Request<FaultReportRq, FaultReportRs>(request);
                    }
                    catch (Exception e)
                    {
                        Logger.Error("Failed to send fault report to server", e);
                    }
                }
                catch (Exception e)
                {
                    Logger.Error("Failed to read the log file", e);
                }
            }
            else
            {
                Logger.Error("Failed to get the log file, cannot submit fault.");
            }
        }