Example #1
0
        public CSCloudResponse Connect(CSCloudServerProxyHttp.ICSCloudServer server, CSCloudLogServerProxy.ICSCloudLogService logService)
        {
            if (server == null) throw new ArgumentNullException("server");

            this.server = server;
            this.logService = logService;

            CSCloudResponse response = new CSCloudResponse();
            CSCloudRequest request = new CSCloudRequest();
            request.ClientName = this.GetName();
            request.Command = new CSCloudCommand();
            request.Command.Code = CSCloud.Enums.CSCloudCommandCode.CONNECT;
            response.Request = request;

            bool connected = false;
            try
            {
                connected = server.Connect(this.GetName(), ConfigurationManager.AppSettings[KEY_PASSWORD]);

                if (connected)
                {
                    if (logService == null)
                    {
                        response.Result = CSCloud.Enums.CSCloudResult.WARNIG;
                        var msg = string.Format("No Log Service is available , client {0} can not log it's activities", this.GetName());
                        response.Messages = new string[] { msg };

                        Debug.WriteLine(msg);
                    }
                    else
                    {
                        response.Result = CSCloud.Enums.CSCloudResult.SUCCESS;
                        LogResponse(response, CSCloud.Enums.CSCloudSeverity.INFO);
                    }
                }
                else
                {
                    response.Result = CSCloud.Enums.CSCloudResult.ERROR;
                    LogResponse(response, CSCloud.Enums.CSCloudSeverity.WARNING); //TODO JBG Decide on how conditions like these are logged
                }
            }
            catch (Exception ex)
            {
                response.Result = CSCloud.Enums.CSCloudResult.ERROR;
                response.Messages = new string[] { ex.Message };
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.ERROR, response.ToString(), ex.StackTrace);
            }

            return response;
        }
        public static void LogResponse(this ICSCloudLogService logService, CSCloudResponse response, CSCloud.Enums.CSCloudSeverity severity, string message = null, string stackTrace = null)
        {
            if (logService == null) return;

            try
            {
                if (response == null) throw new ArgumentNullException("response");

                logService.Log(CSCloudLogEntry.FromResponse(response, severity, message, stackTrace));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(string.Format("Could not log response to Log Service: {2}\n{0}\n{1}", ex.Message, ex.StackTrace, response.ToString()));
            }
        }
Example #3
0
        public static CSCloudLogEntry FromResponse(CSCloudResponse response, CSCloudSeverity severity, string message, string stackTrace = null)
        {
            if (response == null) return null;

            CSCloudLogEntry log = new CSCloudLogEntry();
            log.Date = DateTime.UtcNow;
            log.Severity = severity;

            StringBuilder sb = new StringBuilder();
            sb.AppendLine(response.ToString());
            if (message != null) sb.AppendLine().Append(message);
            if (stackTrace != null) sb.AppendLine().AppendLine(stackTrace);
            log.Message = sb.ToString();

            return log;
        }
Example #4
0
        private CSCloudResponse Test(CSCloudRequest request)
        {
            CSCloudResponse response = new CSCloudResponse();
            response.Request = request;

            try
            {
                response.Result = CSCloud.Enums.CSCloudResult.WARNIG; //TODO JBG Testing
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.INFO);
                //TODO JBG Success with warning condition
            }
            catch (Exception ex)
            {
                response.Result = CSCloud.Enums.CSCloudResult.ERROR;
                response.Messages = new string[] { ex.Message };
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.ERROR, response.ToString(), ex.StackTrace);
            }

            return response;
        }
Example #5
0
        private CSCloudResponse Report(CSCloudRequest request)
        {
            CSCloudResponse response = new CSCloudResponse();
            response.Request = request;

            try
            {
                response.Result = CSCloud.Enums.CSCloudResult.ERROR; //TODO JBG Testing
                response.Messages = new string[] { "Nothing to report..." }; //TODO JBG
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.INFO);
            }
            catch (Exception ex)
            {
                response.Result = CSCloud.Enums.CSCloudResult.ERROR;
                response.Messages = new string[] { ex.Message };
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.ERROR, response.ToString(), ex.StackTrace);
            }

            return response;
        }
Example #6
0
        private CSCloudResponse Disconnect(CSCloudRequest request)
        {
            CSCloudResponse response = new CSCloudResponse();
            response.Request = request;

            try
            {
                response.Result = CSCloud.Enums.CSCloudResult.SUCCESS;
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.INFO);
                server.Disconnect(this.GetName());
            }
            catch (Exception ex)
            {
                response.Result = CSCloud.Enums.CSCloudResult.ERROR;
                response.Messages = new string[] { ex.Message };
                LogResponse(response, CSCloud.Enums.CSCloudSeverity.ERROR, response.ToString(), ex.StackTrace);
            }

            return response;
        }