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
        static void Main(string[] args)
        {
            Console.WriteLine("Connecting to the server...");
            bool connected = false;
            CSCloudClient client = null;
            CSCloudServerProxyHttp.CSCloudServerClient server = null;
            CSCloudLogServerProxy.CSCloudLogServiceClient logService = null;

            try
            {
                client = new CSCloudClient();
                server = new CSCloudServerProxyHttp.CSCloudServerClient(new InstanceContext(client));
                logService = new CSCloudLogServerProxy.CSCloudLogServiceClient();

                connected = client.Connect(server, logService).Result == CSCloud.Enums.CSCloudResult.ERROR;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(string.Format("Could not connect to server: {0}\n{1}", ex.Message, ex.StackTrace));
            }

            CSCloudResponse response = null;
            if (connected)
            {
                Console.WriteLine("Connected to the server.");
                Console.WriteLine("The client will exit automatically when all server commands have been completed.");

                response = new CSCloudResponse
                {
                    Result = CSCloud.Enums.CSCloudResult.SUCCESS,
                };
                client.LogResponse(response, CSCloud.Enums.CSCloudSeverity.INFO);
            }
            else
            {
                Console.WriteLine("Could not connect to the server.");
                if (client != null) client.LogResponse(response, CSCloud.Enums.CSCloudSeverity.INFO);
            }

            Console.WriteLine("Press [ENTER] to quit.");

            Console.ReadLine();
        }
Example #5
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 #6
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 #7
0
        private CSCloudResponse InvalidCommand(CSCloudRequest request)
        {
            CSCloudResponse response = new CSCloudResponse();
            response.Request = request;
            response.Result = CSCloud.Enums.CSCloudResult.ERROR;
            string err = string.Format("Invalid command: {0}", request.Command.Code.ToString());
            response.Messages = new string[] { err };

            LogResponse(response, CSCloud.Enums.CSCloudSeverity.ERROR);

            return response;
        }
Example #8
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;
        }
Example #9
0
        private void saveResponse(string clientName, CSCloudResponse response)
        {
            try
            {
                using (CSCloudEntities db = new CSCloudEntities())
                {
                    db.Commands.Add(CommandToModel(clientName, response.Request.Command, response.Result));
                    db.SaveChanges();
                }
            }
            catch
            {

            }
        }