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 CSCloudServer() { CommandWorkFlow = ConfigurationManager.AppSettings[KEY_COMMAND_WORKFLOW].Split(','); CommandDelay = int.Parse(ConfigurationManager.AppSettings[KEY_COMMAND_DELAY]); logService = new CSCloudLogServerProxy.CSCloudLogServiceClient(); clients.AllowNew = true; clients.AllowRemove = true; clients.AllowEdit = false; clients.RaiseListChangedEvents = true; clients.ListChanged += new ListChangedEventHandler(clients_ListChanged); ClientConnected += CSCloudClientConnected; CommandSent += CSCloudCommandSent; }