/// <summary> /// When overridden in a derived class, executes the task. /// </summary> /// <returns> /// true if the task successfully executed; otherwise, false. /// </returns> public override bool Execute() { bool result; int currentStep = 0; LogHelper.LogMessage("\n\n***** BEGIN *******\n"); LogHelper.LogSubStepInfo("K2 Server: " + K2Server); LogHelper.LogSubStepInfo("K2 HostServer Port: " + K2HostServerPort.ToString()); LogHelper.LogSubStepInfo("Service Type Guid: " + ServiceTypeGuid); LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeSystemName); LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeDisplayName); LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeDescription); LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeAssemblyPath); LogHelper.LogSubStepInfo("Service Type : " + serviceTypeClassName); try { LogHelper.LogStep(++currentStep, "Validating"); if (!GuidHelper.IsGuid(ServiceTypeGuid)) { throw new ArgumentException("Invalid Service Type Guid"); } if (!File.Exists(ServiceTypeAssemblyPath)) { throw new ArgumentException("Service Type Assembly Path is not valid."); } // Create the Guid Guid svcGuid = new Guid(ServiceTypeGuid); LogHelper.LogStep(++currentStep, "Getting K2 Service Manager"); LogHelper.LogSubStep("Create K2 Service Manager"); ServiceManagementServer svcMng = new ServiceManagementServer(); using (svcMng.CreateConnection()) { LogHelper.LogSubStep("Opening Connection to K2 Server"); svcMng.Connection.Open(ConnectionString); LogHelper.LogSubStepInfo("Connection State: " + (svcMng.Connection.IsConnected ? "Connected" : "Disconnected")); LogHelper.LogStep(++currentStep, "Registering Service Type"); LogHelper.LogSubStep("Determining if Service Type already exists"); // Check if this Service Type is already registered if (String.IsNullOrEmpty(svcMng.GetServiceType(svcGuid))) { LogHelper.LogSubStepInfo("Service Type does not exist"); LogHelper.LogSubStep("Getting Service Type Definition"); // NOTE: Registering the Service Type without this Service Type definition // results in incorrect registration string svcTypeDefinition = K2Helper.GetK2ServiceTypeDefinition( svcGuid, ServiceTypeSystemName, ServiceTypeDisplayName, ServiceTypeDescription, ServiceTypeAssemblyPath, ServiceTypeClassName); LogHelper.LogSubStepInfo(svcTypeDefinition); LogHelper.LogSubStep("Registering new Service Type"); svcMng.RegisterServiceType(svcGuid, svcTypeDefinition); if (String.IsNullOrEmpty(svcMng.GetServiceType(svcGuid))) { throw new Exception("Registration of Service Type Unsuccessful"); } else { LogHelper.LogSubStepInfo("Registration of Service Type was Successful"); } } else { LogHelper.LogSubStepInfo("Service Type already exists"); LogHelper.LogSubStep("Updating existing Service Type"); svcMng.UpdateServiceType( svcGuid, ServiceTypeSystemName, ServiceTypeDisplayName, ServiceTypeDescription, ServiceTypeAssemblyPath, ServiceTypeClassName); if (String.IsNullOrEmpty(svcMng.GetServiceType(svcGuid))) { throw new Exception("Update of Service Type Unsuccessful"); } else { LogHelper.LogSubStepInfo("Update of Service Type was Successful"); } } } result = true; } catch { throw; } finally { LogHelper.LogMessage("\n***** END *******\n\n"); } return(result); }
/// <summary> /// When overridden in a derived class, executes the task. /// </summary> /// <returns> /// true if the task successfully executed; otherwise, false. /// </returns> public override bool Execute() { bool result; int currentStep = 0; // clean up some values char token = '"'; K2Server = K2Helper.StripLeadingAndTailing(K2Server, token); ServiceInstanceGuid = K2Helper.StripLeadingAndTailing(ServiceInstanceGuid, token); ServiceInstanceSystemName = K2Helper.StripLeadingAndTailing(ServiceInstanceSystemName, token); ServiceInstanceDisplayName = K2Helper.StripLeadingAndTailing(ServiceInstanceDisplayName, token); ServiceInstanceDescription = K2Helper.StripLeadingAndTailing(ServiceInstanceDescription, token); ConfigKeyNames = K2Helper.StripLeadingAndTailing(configKeyNames, token); ConfigKeyValues = K2Helper.StripLeadingAndTailing(ConfigKeyValues, token); ConfigKeysRequired = K2Helper.StripLeadingAndTailing(ConfigKeysRequired, token); ConfigKeyDelimiter = K2Helper.StripLeadingAndTailing(ConfigKeyDelimiter, token); LogHelper.LogMessage("\n\n***** BEGIN *******\n"); LogHelper.LogSubStepInfo("K2 Server: " + K2Server); LogHelper.LogSubStepInfo("K2 HostServer Port: " + K2HostServerPort.ToString()); LogHelper.LogSubStepInfo("Service Instance Guid: " + ServiceInstanceGuid); LogHelper.LogSubStepInfo("Service Instance : " + ServiceInstanceSystemName); LogHelper.LogSubStepInfo("Service Instance : " + ServiceInstanceDisplayName); LogHelper.LogSubStepInfo("Service Instance : " + ServiceInstanceDescription); LogHelper.LogSubStepInfo("Config Key Names : " + ConfigKeyNames); LogHelper.LogSubStepInfo("Config Key Values : " + ConfigKeyValues); LogHelper.LogSubStepInfo("Config Key Reqds : " + ConfigKeysRequired); LogHelper.LogSubStepInfo("Config Delimiter : " + ConfigKeyDelimiter); try { LogHelper.LogStep(++currentStep, "Validating"); if (!GuidHelper.IsGuid(ServiceTypeGuid)) { throw new ArgumentException("Invalid Service Type Guid"); } if (!GuidHelper.IsGuid(ServiceInstanceGuid)) { throw new ArgumentException("Invalid Service Instance Guid"); } // Create the Service Type Guid Guid svcTypeGuid = new Guid(ServiceTypeGuid); // Create the Service Instance Guid Guid svcInstanceGuid = new Guid(ServiceInstanceGuid); LogHelper.LogStep(++currentStep, "Getting K2 Service Manager"); LogHelper.LogSubStep("Create K2 Service Manager"); ServiceManagementServer svcMng = new ServiceManagementServer(); using (svcMng.CreateConnection()) { LogHelper.LogSubStep("Opening Connection to K2 Server"); svcMng.Connection.Open(ConnectionString); LogHelper.LogSubStepInfo("Connection State: " + (svcMng.Connection.IsConnected ? "Connected" : "Disconnected")); char delim = ','; if (ConfigKeyDelimiter.Length == 1) { delim = ConfigKeyDelimiter.ToCharArray()[0]; } LogHelper.LogSubStep("Getting Service Instance Configuration"); string svcInstanceConfig = K2Helper.GetK2ServiceInstanceConfig( ConfigImpersonate, ConfigKeyNames, ConfigKeyValues, ConfigKeysRequired, delim); LogHelper.LogSubStepInfo("Service Instance Config = "); LogHelper.LogSubStepInfo(svcInstanceConfig); LogHelper.LogStep(++currentStep, "Registering Service Instance"); LogHelper.LogSubStep("Determining if Service Instance already exists"); // Check if this Service Instance is already registered if (!K2Helper.DetermineIfServiceInstanceExists(svcMng, svcInstanceGuid)) { LogHelper.LogSubStepInfo("Service Instance does not exist"); LogHelper.LogSubStep("Registering new Service Instance"); svcMng.RegisterServiceInstance( svcTypeGuid, svcInstanceGuid, ServiceInstanceSystemName, ServiceInstanceDisplayName, ServiceInstanceDescription, svcInstanceConfig); if (!K2Helper.DetermineIfServiceInstanceExists(svcMng, svcInstanceGuid)) { throw new Exception("Registration of Service Instance Unsuccessful"); } else { LogHelper.LogSubStepInfo("Registration of Service Instance was Successful"); } } else { LogHelper.LogSubStepInfo("Service Instance already exists"); LogHelper.LogSubStep("Updating existing Service Instance"); svcMng.UpdateServiceInstance( svcTypeGuid, svcInstanceGuid, ServiceInstanceSystemName, ServiceInstanceDisplayName, ServiceInstanceDescription, svcInstanceConfig); if (!K2Helper.DetermineIfServiceInstanceExists(svcMng, svcInstanceGuid)) { throw new Exception("Update of Service Instance Unsuccessful"); } else { LogHelper.LogSubStepInfo("Update of Service Instance was Successful"); } } } result = true; } catch (Exception ex) { throw ex; //LogHelper.LogSubStepInfo(string.Format("Got an error:{0}{1}", ex.Message, ex.StackTrace)); //result = false; } finally { LogHelper.LogMessage("\n***** END *******\n\n"); } return(result); }