public void TestCreateAndSendMetrics() { ClientAction clientAction = new ClientAction(ConnectString); MetricsEnhancement metricsEnhancement = new MetricsEnhancement(); metricsEnhancement.ClientName = "HCTestClient"; metricsEnhancement.Domain = "local"; metricsEnhancement.Environment = "FUT1"; metricsEnhancement.Type = "General"; System.Console.WriteLine(clientAction.CreateAndSendMetrics(metricsEnhancement).ToString()); }
public CentralConnectCode CreateDevice(Device device) { ClientAction clientAction = new ClientAction(this.ConnectString); List<Client> clients = clientAction.RetrieveClientByClientNameAndDomain(device.ClientName, device.ClientDomain); if (clients.Count != 1) { return CentralConnectCode.ClientNotFound; } if (Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(this.ConnectString, "SP_CreateCentralConnectDevice", device.DeviceName, device.Domain, device.ProductNumber, device.SerialNumber, device.CoreSystemModel, device.OSName, device.OSVersion, device.ClientName, device.ClientDomain, device.CreateBy) != 1) { return CentralConnectCode.CreateDeviceFail; } return CentralConnectCode.Success; }
public CentralConnectCode CreateDevice(Device device) { ClientAction clientAction = new ClientAction(this.ConnectString); List <Client> clients = clientAction.RetrieveClientByClientNameAndDomain(device.ClientName, device.ClientDomain); if (clients.Count != 1) { return(CentralConnectCode.ClientNotFound); } if (Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(this.ConnectString, "SP_CreateCentralConnectDevice", device.DeviceName, device.Domain, device.ProductNumber, device.SerialNumber, device.CoreSystemModel, device.OSName, device.OSVersion, device.ClientName, device.ClientDomain, device.CreateBy) != 1) { return(CentralConnectCode.CreateDeviceFail); } return(CentralConnectCode.Success); }
Core.ServiceResponse ICentralConnectService.CreateClient(CentralConnectServiceRequest centralConnectServiceRequest) { if (centralConnectServiceRequest.Client == null) { return new Core.ServiceResponse() { Code = 400, Message = "Client should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.Client.ClientName) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.Domain) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.ProductNumber) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.SerialNumber) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.CoreSystemModel) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.OSName) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.OSVersion) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.CompanyName) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.PrimaryContact) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.SecondaryContact) || string.IsNullOrEmpty(centralConnectServiceRequest.Client.CreateBy)) { return new Core.ServiceResponse() { Code = 400, Message = "ClientName Domain ProductNumber SerialNumber CoreSystemModel OSName OSVersion CompanyName PrimaryContact SecondaryContact CreateBy should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.Id) || string.IsNullOrEmpty(centralConnectServiceRequest.Token) || string.IsNullOrEmpty(centralConnectServiceRequest.Type)) { return new Core.ServiceResponse() { Code = 400, Message = "Id Type and Token should not null" }; } string message = string.Empty; if (HP.TS.Devops.Security.SecurityCode.Success != HP.TS.Devops.Security.SecurityAction.CheckAccess(this.ConnectString, centralConnectServiceRequest, out message)) { return new Core.ServiceResponse() { Code = 403, Message = centralConnectServiceRequest.Id + " of type " + centralConnectServiceRequest.Type + " have no access of " + message }; } ClientAction clientAction = new ClientAction(this.ConnectString); CentralConnectCode centralConnectCode = clientAction.CreateClient(centralConnectServiceRequest.Client); if (CentralConnectCode.Success != centralConnectCode) { return new Core.ServiceResponse() { Code = 500, Message = "CreateClient Fail of " + Enum.GetName(typeof(CentralConnectCode), centralConnectCode) }; } return new Core.ServiceResponse() { Code = 0, Message = "Success" }; }
public CentralConnectCode RegisterDevice(string environment, string deviceName, string domain, string createBy) { List <RegisterDeviceMessage> registerDeviceMessages = this.RetrieveRegisterDeviceMessageByEnvironmentAndDeviceNameAndDomain(environment, deviceName, domain); if (registerDeviceMessages.Count > 0) { return(CentralConnectCode.RegisterDeviceMessageExist); } DictionaryAction dictionaryAction = new DictionaryAction(this.ConnectString); string serviceUrl = string.Format("{0}/{1}", dictionaryAction.RetrieveServiceUrl(environment), "OOSRegistration/OOSRegistrationService.svc"); Logger.Write(string.Format("ServiceUrl={0},DeviceName={1},Domain={2}", serviceUrl, deviceName, domain)); //Device List <Device> devices = this.RetrieveDeviceByDeviceNameAndDomain(deviceName, domain); if (devices.Count != 1) { return(CentralConnectCode.DeviceNotFound); } Logger.Write("Retrieve Device", devices[0]); Device device = devices[0]; //RegisterClientMessage ClientAction clientAction = new ClientAction(this.ConnectString); List <RegisterClientMessage> registerClientMessages = clientAction.RetrieveRegisterClientMessageByEnvironmentAndClientNameAndDomain(environment, device.ClientName, device.ClientDomain); if (registerClientMessages.Count != 1) { return(CentralConnectCode.ClientNotRegister); } Logger.Write("RegisterClientMessage", registerClientMessages[0]); RegisterClientMessage registerClientMessage = registerClientMessages[0]; //Client List <Client> clients = clientAction.RetrieveClientByClientNameAndDomain(device.ClientName, device.ClientDomain); if (clients.Count != 1) { return(CentralConnectCode.ClientNotFound); } Logger.Write("Client", clients[0]); Client client = clients[0]; //Contact ContactAction contactAction = new ContactAction(this.ConnectString); List <Contact> primaryContacts = contactAction.RetrieveContactByFullName(client.PrimaryContact); if (primaryContacts.Count != 1) { return(CentralConnectCode.PrimaryContactNotFound); } Logger.Write("Retrieve PrimaryContacts", primaryContacts[0]); Contact primaryContact = primaryContacts[0]; List <Contact> secondaryContacts = contactAction.RetrieveContactByFullName(client.SecondaryContact); if (secondaryContacts.Count != 1) { return(CentralConnectCode.SecondaryContactNotFound); } Logger.Write("Retrieve SecondaryContact", secondaryContacts[0]); Contact secondaryContact = secondaryContacts[0]; //Company CompanyAction companyAction = new CompanyAction(this.ConnectString); List <Company> companys = companyAction.RetrieveCompanyByCompanyName(client.CompanyName); if (companys.Count != 1) { return(CentralConnectCode.CompanyNotFound); } Logger.Write("Retrieve Company", companys[0]); Company company = companys[0]; //Request HP.TS.Devops.CentralConnect.OOSRegistration.RequestBody requestBody = new HP.TS.Devops.CentralConnect.OOSRegistration.RequestBody() { AutoDetectedSystemSerialNumber = device.SerialNumber, ProductId = device.ProductNumber, SystemModel = device.CoreSystemModel, CoreSystemModel = device.CoreSystemModel, Hostname = device.DeviceName, FQDN = string.Format("{0}.{1}", device.DeviceName, device.Domain), IPAddress = device.IPAddress, Client_HPPID = registerClientMessage.HPPID, MacAddress = device.MAC, OSNameAndVersionString = string.Format("{0},{1}", device.OSName, device.OSVersion), //--prs-- PRSAddress1 = company.Street, PRSCity = company.City, PRSRegion = company.StateProvince, PRSPostalCode = company.PostalCode, PRSCountry = company.CountryCode, //--ISEEEnt--- ISEEEntSerialNumber = client.SerialNumber, ISEEEntProductNumber = client.ProductNumber, ISEEEntProductId = client.ProductNumber, //--iseecus-- ISEECusName = client.CompanyName, //--iseeperson-- ISEEFirstPersonFirstName = primaryContact.FirstName, ISEEFirstPersonLastName = primaryContact.LastName, ISEEFirstPersonEmailAddress = primaryContact.EmailAddress, ISEEFirstPersonTelephoneNumber = primaryContact.Phone, ISEESecondPersonFirstName = secondaryContact.FirstName, ISEESecondPersonLastName = secondaryContact.LastName, ISEESecondPersonEmailAddress = secondaryContact.EmailAddress, ISEESecondPersonTelephoneNumber = secondaryContact.Phone, }; Logger.Write("requestBody", requestBody); HP.TS.Devops.CentralConnect.OOSRegistration.OOSRegistrationServiceResult oosRegistrationServiceResult = this.RegisterDeviceRequest(serviceUrl, requestBody, registerClientMessage.CSID, registerClientMessage.OSGDID, registerClientMessage.RegistrationToken); if (!oosRegistrationServiceResult.IsSuccess) { Logger.Write("OOSRegistrationServiceResult Fail", oosRegistrationServiceResult); if (oosRegistrationServiceResult.Error.IsClientError) { return(CentralConnectCode.RegisterDeviceClientError); } else if (oosRegistrationServiceResult.Error.IsReRegisterError) { return(CentralConnectCode.RegisterDeviceReRegisterError); } else if (oosRegistrationServiceResult.Error.IsTransientError) { return(CentralConnectCode.RegisterDeviceTransientError); } } RegisterDeviceMessage registerDeviceMessage = new RegisterDeviceMessage(); registerDeviceMessage.Environment = environment; registerDeviceMessage.DeviceName = deviceName; registerDeviceMessage.Domain = domain; registerDeviceMessage.OSGDID = oosRegistrationServiceResult.Gdid; registerDeviceMessage.OSGDIDUsn = oosRegistrationServiceResult.OSGdidUsn.ToString(); registerDeviceMessage.HWGDID = oosRegistrationServiceResult.HWGdid; registerDeviceMessage.HWGDIDUsn = oosRegistrationServiceResult.HWGdidUsn.ToString(); registerDeviceMessage.CreateBy = createBy; if (this.AddRegisterDeviceMessage(registerDeviceMessage) != 1) { return(CentralConnectCode.AddRegisterDeviceMessageFail); } return(CentralConnectCode.Success); }
public CentralConnectCode CreateAndSendMetrics(MetricsEnhancement metricsEnhancement) { //Client ClientAction clientAction = new ClientAction(this.ConnectString); List<Client> clients = clientAction.RetrieveClientByClientNameAndDomain(metricsEnhancement.ClientName, metricsEnhancement.Domain); if (clients.Count != 1) { return CentralConnectCode.ClientNotFound; } Logger.Write("Client", clients[0]); Client client = clients[0]; //Contact ContactAction contactAction = new ContactAction(this.ConnectString); List<Contact> primaryContacts = contactAction.RetrieveContactByFullName(client.PrimaryContact); if (primaryContacts.Count != 1) { return CentralConnectCode.PrimaryContactNotFound; } Logger.Write("Retrieve PrimaryContacts", primaryContacts[0]); Contact primaryContact = primaryContacts[0]; List<Contact> secondaryContacts = contactAction.RetrieveContactByFullName(client.SecondaryContact); if (secondaryContacts.Count != 1) { return CentralConnectCode.SecondaryContactNotFound; } Logger.Write("Retrieve SecondaryContact", secondaryContacts[0]); Contact secondaryContact = secondaryContacts[0]; //Company CompanyAction companyAction = new CompanyAction(this.ConnectString); List<Company> companys = companyAction.RetrieveCompanyByCompanyName(client.CompanyName); if (companys.Count != 1) { return CentralConnectCode.CompanyNotFound; } Logger.Write("Retrieve Company", companys[0]); Company company = companys[0]; //registerClientMessages List<RegisterClientMessage> registerClientMessages = this.RetrieveRegisterClientMessageByEnvironmentAndClientNameAndDomain(metricsEnhancement.Environment, metricsEnhancement.ClientName, metricsEnhancement.Domain); if (registerClientMessages.Count != 1) { return CentralConnectCode.RegisterClientMessageNotExist; } Logger.Write("Retrieve registerClientMessages", registerClientMessages[0]); RegisterClientMessage registerClientMessage = registerClientMessages[0]; //devices List<Device> devices = this.RetrieveRegisterDeviceByEnvironmentAndClientNameAndClientDomain(metricsEnhancement.Environment, metricsEnhancement.ClientName, metricsEnhancement.Domain); if (devices.Count == 0) { return CentralConnectCode.ClientNotFoundAssociatedDevice; } Logger.Write("Retrieve devices", devices); MetricsRequest metricsRequest = new MetricsRequest(); //ClientInformation ClientInformation clientInformation = new ClientInformation(); clientInformation.ClientName = metricsEnhancement.ClientName; clientInformation.Domain = metricsEnhancement.Domain; clientInformation.ProductNumber = client.ProductNumber; clientInformation.SerialNumber = client.SerialNumber; clientInformation.CoreSystemModel = client.CoreSystemModel; clientInformation.MAC = client.MAC; clientInformation.OSName = client.OSName; clientInformation.OSVersion = client.OSVersion; clientInformation.IPAddress = client.IPAddress; clientInformation.HPPID = registerClientMessage.HPPID; clientInformation.Password = registerClientMessage.Password; clientInformation.CSID = registerClientMessage.CSID; clientInformation.OSGDID = registerClientMessage.OSGDID; clientInformation.HWGDID = registerClientMessage.HWGDID; clientInformation.RegistrationToken = registerClientMessage.RegistrationToken; clientInformation.CompanyName = client.CompanyName; clientInformation.CountryCode = company.CountryCode; clientInformation.StateProvince = company.StateProvince; clientInformation.City = company.City; clientInformation.Street = company.Street; clientInformation.PostalCode = company.PostalCode; clientInformation.PrimaryContact = client.PrimaryContact; clientInformation.PrimaryFirstName = primaryContact.FirstName; clientInformation.PrimaryLastName = primaryContact.LastName; clientInformation.PrimaryEmailAddress = primaryContact.EmailAddress; clientInformation.PrimaryPhone = primaryContact.Phone; clientInformation.SecondaryContact = client.SecondaryContact; clientInformation.SecondaryFirstName = secondaryContact.FirstName; clientInformation.SecondaryLastName = secondaryContact.LastName; clientInformation.SecondaryEmailAddress = secondaryContact.EmailAddress; clientInformation.SecondaryPhone = secondaryContact.Phone; clientInformation.SupportPartnerId = metricsEnhancement.SupportPartnerId; clientInformation.ServicePartnerId = metricsEnhancement.ServicePartnerId; metricsRequest.ClientInformation = clientInformation; //deviceinformation DeviceAction deviceAction = new DeviceAction(this.ConnectString); List<DeviceInformation> deviceInformations = new List<DeviceInformation>(); foreach (Device item in devices) { DeviceInformation deviceInformation = new DeviceInformation(); deviceInformation.ClientName = client.ClientName; deviceInformation.ClientDomain = client.Domain; deviceInformation.DeviceName = item.DeviceName; deviceInformation.Domain = item.Domain; deviceInformation.ProductNumber = item.ProductNumber; deviceInformation.SerialNumber = item.SerialNumber; deviceInformation.CoreSystemModel = item.CoreSystemModel; deviceInformation.MAC = item.MAC; deviceInformation.OSName = item.OSName; deviceInformation.OSVersion = item.OSVersion; deviceInformation.IPAddress = item.IPAddress; List<RegisterDeviceMessage> registerDeviceMessages = deviceAction.RetrieveRegisterDeviceMessageByEnvironmentAndDeviceNameAndDomain(metricsEnhancement.Environment, item.DeviceName, item.Domain); if (registerDeviceMessages.Count != 1) { return CentralConnectCode.RegisterDeviceMessageNotExist; } RegisterDeviceMessage registerDeviceMessage = registerDeviceMessages[0]; deviceInformation.OSGDID = registerDeviceMessage.OSGDID; deviceInformation.OSGDIDUsn = registerDeviceMessage.OSGDIDUsn; deviceInformation.HWGDID = registerDeviceMessage.HWGDID; deviceInformation.HWGDIDUsn = registerDeviceMessage.HWGDIDUsn; deviceInformation.CollectionProblem = registerDeviceMessage.CollectionProblem; deviceInformation.MonitoringProblem = registerDeviceMessage.MonitoringProblem; deviceInformations.Add(deviceInformation); } metricsRequest.DeviceInformations = deviceInformations; //enhancementArguments Dictionary<string, string> enhancementArguments = new Dictionary<string, string>(); if (metricsEnhancement.Arguments != null) { foreach (Argument item in metricsEnhancement.Arguments) { if (!enhancementArguments.ContainsKey(item.key)) { enhancementArguments.Add(item.key, item.value); } } } metricsRequest.EnhancementArguments = enhancementArguments; //InvokeMetrics Plugin EnhancementAction enhancementAction = new EnhancementAction(this.ConnectString); PluginResponse result = enhancementAction.InvokeMetrics(metricsRequest,metricsEnhancement.Type); if (!result.IsSuccess) { Logger.Write("CreateMetricsFail-" + result.Message); return CentralConnectCode.CreateMetricsFail; } //SendMetrics DictionaryAction dictionaryAction = new DictionaryAction(this.ConnectString); string serviceUrl = string.Format("{0}/{1}", dictionaryAction.RetrieveServiceUrl(metricsEnhancement.Environment), "DataPackageReceiver/DataPackageReceiver.asmx"); DataPackageSubmissionResult dataPackageSubmissionResult =this.SendMetricsRequest(serviceUrl, registerClientMessage.CSID, registerClientMessage.HWGDID, registerClientMessage.OSGDID, registerClientMessage.RegistrationToken, result.FileName, result.FileContent); if (!dataPackageSubmissionResult.IsSuccess) { if (dataPackageSubmissionResult.Error.IsClientError) { return CentralConnectCode.SendMetricsClientError; } else if (dataPackageSubmissionResult.Error.IsReRegisterError) { return CentralConnectCode.SendMetricsReRegisterError; } else if (dataPackageSubmissionResult.Error.IsTransientError) { return CentralConnectCode.SendMetricsTransientError; } } MetricsMessage metricsMessage = new MetricsMessage(); metricsMessage.Environment = metricsEnhancement.Environment; metricsMessage.ClientName = metricsEnhancement.ClientName; metricsMessage.Domain = metricsEnhancement.Domain; metricsMessage.PackageName = result.FileName; metricsMessage.ServicePartnerId = metricsEnhancement.ServicePartnerId; metricsMessage.SupportPartnerId = metricsEnhancement.SupportPartnerId; metricsMessage.CreateBy = "TBD"; if (this.AddMetricsMessage(metricsMessage) != 1) { return CentralConnectCode.AddMetricsMessageFail; } return CentralConnectCode.Success; }
public CentralConnectCode RegisterDevice(string environment, string deviceName, string domain, string createBy) { List<RegisterDeviceMessage> registerDeviceMessages = this.RetrieveRegisterDeviceMessageByEnvironmentAndDeviceNameAndDomain(environment, deviceName, domain); if (registerDeviceMessages.Count > 0) { return CentralConnectCode.RegisterDeviceMessageExist; } DictionaryAction dictionaryAction = new DictionaryAction(this.ConnectString); string serviceUrl = string.Format("{0}/{1}", dictionaryAction.RetrieveServiceUrl(environment), "OOSRegistration/OOSRegistrationService.svc"); Logger.Write(string.Format("ServiceUrl={0},DeviceName={1},Domain={2}", serviceUrl, deviceName, domain)); //Device List<Device> devices = this.RetrieveDeviceByDeviceNameAndDomain(deviceName, domain); if (devices.Count != 1) { return CentralConnectCode.DeviceNotFound; } Logger.Write("Retrieve Device", devices[0]); Device device = devices[0]; //RegisterClientMessage ClientAction clientAction = new ClientAction(this.ConnectString); List<RegisterClientMessage> registerClientMessages = clientAction.RetrieveRegisterClientMessageByEnvironmentAndClientNameAndDomain(environment, device.ClientName, device.ClientDomain); if (registerClientMessages.Count != 1) { return CentralConnectCode.ClientNotRegister; } Logger.Write("RegisterClientMessage", registerClientMessages[0]); RegisterClientMessage registerClientMessage = registerClientMessages[0]; //Client List<Client> clients = clientAction.RetrieveClientByClientNameAndDomain(device.ClientName, device.ClientDomain); if (clients.Count != 1) { return CentralConnectCode.ClientNotFound; } Logger.Write("Client", clients[0]); Client client = clients[0]; //Contact ContactAction contactAction = new ContactAction(this.ConnectString); List<Contact> primaryContacts = contactAction.RetrieveContactByFullName(client.PrimaryContact); if (primaryContacts.Count != 1) { return CentralConnectCode.PrimaryContactNotFound; } Logger.Write("Retrieve PrimaryContacts", primaryContacts[0]); Contact primaryContact = primaryContacts[0]; List<Contact> secondaryContacts = contactAction.RetrieveContactByFullName(client.SecondaryContact); if (secondaryContacts.Count != 1) { return CentralConnectCode.SecondaryContactNotFound; } Logger.Write("Retrieve SecondaryContact", secondaryContacts[0]); Contact secondaryContact = secondaryContacts[0]; //Company CompanyAction companyAction = new CompanyAction(this.ConnectString); List<Company> companys = companyAction.RetrieveCompanyByCompanyName(client.CompanyName); if (companys.Count != 1) { return CentralConnectCode.CompanyNotFound; } Logger.Write("Retrieve Company", companys[0]); Company company = companys[0]; //Request HP.TS.Devops.CentralConnect.OOSRegistration.RequestBody requestBody = new HP.TS.Devops.CentralConnect.OOSRegistration.RequestBody() { AutoDetectedSystemSerialNumber = device.SerialNumber, ProductId = device.ProductNumber, SystemModel = device.CoreSystemModel, CoreSystemModel = device.CoreSystemModel, Hostname = device.DeviceName, FQDN = string.Format("{0}.{1}", device.DeviceName, device.Domain), IPAddress = device.IPAddress, Client_HPPID = registerClientMessage.HPPID, MacAddress = device.MAC, OSNameAndVersionString = string.Format("{0},{1}", device.OSName, device.OSVersion), //--prs-- PRSAddress1 = company.Street, PRSCity = company.City, PRSRegion = company.StateProvince, PRSPostalCode = company.PostalCode, PRSCountry = company.CountryCode, //--ISEEEnt--- ISEEEntSerialNumber = client.SerialNumber, ISEEEntProductNumber = client.ProductNumber, ISEEEntProductId = client.ProductNumber, //--iseecus-- ISEECusName = client.CompanyName, //--iseeperson-- ISEEFirstPersonFirstName = primaryContact.FirstName, ISEEFirstPersonLastName = primaryContact.LastName, ISEEFirstPersonEmailAddress = primaryContact.EmailAddress, ISEEFirstPersonTelephoneNumber = primaryContact.Phone, ISEESecondPersonFirstName = secondaryContact.FirstName, ISEESecondPersonLastName = secondaryContact.LastName, ISEESecondPersonEmailAddress = secondaryContact.EmailAddress, ISEESecondPersonTelephoneNumber = secondaryContact.Phone, }; Logger.Write("requestBody", requestBody); HP.TS.Devops.CentralConnect.OOSRegistration.OOSRegistrationServiceResult oosRegistrationServiceResult = this.RegisterDeviceRequest(serviceUrl, requestBody, registerClientMessage.CSID, registerClientMessage.OSGDID, registerClientMessage.RegistrationToken); if (!oosRegistrationServiceResult.IsSuccess) { Logger.Write("OOSRegistrationServiceResult Fail", oosRegistrationServiceResult); if (oosRegistrationServiceResult.Error.IsClientError) { return CentralConnectCode.RegisterDeviceClientError; } else if (oosRegistrationServiceResult.Error.IsReRegisterError) { return CentralConnectCode.RegisterDeviceReRegisterError; } else if (oosRegistrationServiceResult.Error.IsTransientError) { return CentralConnectCode.RegisterDeviceTransientError; } } RegisterDeviceMessage registerDeviceMessage = new RegisterDeviceMessage(); registerDeviceMessage.Environment = environment; registerDeviceMessage.DeviceName = deviceName; registerDeviceMessage.Domain = domain; registerDeviceMessage.OSGDID = oosRegistrationServiceResult.Gdid; registerDeviceMessage.OSGDIDUsn = oosRegistrationServiceResult.OSGdidUsn.ToString(); registerDeviceMessage.HWGDID = oosRegistrationServiceResult.HWGdid; registerDeviceMessage.HWGDIDUsn = oosRegistrationServiceResult.HWGdidUsn.ToString(); registerDeviceMessage.CreateBy = createBy; if (this.AddRegisterDeviceMessage(registerDeviceMessage) != 1) { return CentralConnectCode.AddRegisterDeviceMessageFail; } return CentralConnectCode.Success; }
public CentralConnectCode CreateAndSendMetrics(MetricsEnhancement metricsEnhancement) { //Client ClientAction clientAction = new ClientAction(this.ConnectString); List <Client> clients = clientAction.RetrieveClientByClientNameAndDomain(metricsEnhancement.ClientName, metricsEnhancement.Domain); if (clients.Count != 1) { return(CentralConnectCode.ClientNotFound); } Logger.Write("Client", clients[0]); Client client = clients[0]; //Contact ContactAction contactAction = new ContactAction(this.ConnectString); List <Contact> primaryContacts = contactAction.RetrieveContactByFullName(client.PrimaryContact); if (primaryContacts.Count != 1) { return(CentralConnectCode.PrimaryContactNotFound); } Logger.Write("Retrieve PrimaryContacts", primaryContacts[0]); Contact primaryContact = primaryContacts[0]; List <Contact> secondaryContacts = contactAction.RetrieveContactByFullName(client.SecondaryContact); if (secondaryContacts.Count != 1) { return(CentralConnectCode.SecondaryContactNotFound); } Logger.Write("Retrieve SecondaryContact", secondaryContacts[0]); Contact secondaryContact = secondaryContacts[0]; //Company CompanyAction companyAction = new CompanyAction(this.ConnectString); List <Company> companys = companyAction.RetrieveCompanyByCompanyName(client.CompanyName); if (companys.Count != 1) { return(CentralConnectCode.CompanyNotFound); } Logger.Write("Retrieve Company", companys[0]); Company company = companys[0]; //registerClientMessages List <RegisterClientMessage> registerClientMessages = this.RetrieveRegisterClientMessageByEnvironmentAndClientNameAndDomain(metricsEnhancement.Environment, metricsEnhancement.ClientName, metricsEnhancement.Domain); if (registerClientMessages.Count != 1) { return(CentralConnectCode.RegisterClientMessageNotExist); } Logger.Write("Retrieve registerClientMessages", registerClientMessages[0]); RegisterClientMessage registerClientMessage = registerClientMessages[0]; //devices List <Device> devices = this.RetrieveRegisterDeviceByEnvironmentAndClientNameAndClientDomain(metricsEnhancement.Environment, metricsEnhancement.ClientName, metricsEnhancement.Domain); if (devices.Count == 0) { return(CentralConnectCode.ClientNotFoundAssociatedDevice); } Logger.Write("Retrieve devices", devices); MetricsRequest metricsRequest = new MetricsRequest(); //ClientInformation ClientInformation clientInformation = new ClientInformation(); clientInformation.ClientName = metricsEnhancement.ClientName; clientInformation.Domain = metricsEnhancement.Domain; clientInformation.ProductNumber = client.ProductNumber; clientInformation.SerialNumber = client.SerialNumber; clientInformation.CoreSystemModel = client.CoreSystemModel; clientInformation.MAC = client.MAC; clientInformation.OSName = client.OSName; clientInformation.OSVersion = client.OSVersion; clientInformation.IPAddress = client.IPAddress; clientInformation.HPPID = registerClientMessage.HPPID; clientInformation.Password = registerClientMessage.Password; clientInformation.CSID = registerClientMessage.CSID; clientInformation.OSGDID = registerClientMessage.OSGDID; clientInformation.HWGDID = registerClientMessage.HWGDID; clientInformation.RegistrationToken = registerClientMessage.RegistrationToken; clientInformation.CompanyName = client.CompanyName; clientInformation.CountryCode = company.CountryCode; clientInformation.StateProvince = company.StateProvince; clientInformation.City = company.City; clientInformation.Street = company.Street; clientInformation.PostalCode = company.PostalCode; clientInformation.PrimaryContact = client.PrimaryContact; clientInformation.PrimaryFirstName = primaryContact.FirstName; clientInformation.PrimaryLastName = primaryContact.LastName; clientInformation.PrimaryEmailAddress = primaryContact.EmailAddress; clientInformation.PrimaryPhone = primaryContact.Phone; clientInformation.SecondaryContact = client.SecondaryContact; clientInformation.SecondaryFirstName = secondaryContact.FirstName; clientInformation.SecondaryLastName = secondaryContact.LastName; clientInformation.SecondaryEmailAddress = secondaryContact.EmailAddress; clientInformation.SecondaryPhone = secondaryContact.Phone; clientInformation.SupportPartnerId = metricsEnhancement.SupportPartnerId; clientInformation.ServicePartnerId = metricsEnhancement.ServicePartnerId; metricsRequest.ClientInformation = clientInformation; //deviceinformation DeviceAction deviceAction = new DeviceAction(this.ConnectString); List <DeviceInformation> deviceInformations = new List <DeviceInformation>(); foreach (Device item in devices) { DeviceInformation deviceInformation = new DeviceInformation(); deviceInformation.ClientName = client.ClientName; deviceInformation.ClientDomain = client.Domain; deviceInformation.DeviceName = item.DeviceName; deviceInformation.Domain = item.Domain; deviceInformation.ProductNumber = item.ProductNumber; deviceInformation.SerialNumber = item.SerialNumber; deviceInformation.CoreSystemModel = item.CoreSystemModel; deviceInformation.MAC = item.MAC; deviceInformation.OSName = item.OSName; deviceInformation.OSVersion = item.OSVersion; deviceInformation.IPAddress = item.IPAddress; List <RegisterDeviceMessage> registerDeviceMessages = deviceAction.RetrieveRegisterDeviceMessageByEnvironmentAndDeviceNameAndDomain(metricsEnhancement.Environment, item.DeviceName, item.Domain); if (registerDeviceMessages.Count != 1) { return(CentralConnectCode.RegisterDeviceMessageNotExist); } RegisterDeviceMessage registerDeviceMessage = registerDeviceMessages[0]; deviceInformation.OSGDID = registerDeviceMessage.OSGDID; deviceInformation.OSGDIDUsn = registerDeviceMessage.OSGDIDUsn; deviceInformation.HWGDID = registerDeviceMessage.HWGDID; deviceInformation.HWGDIDUsn = registerDeviceMessage.HWGDIDUsn; deviceInformation.CollectionProblem = registerDeviceMessage.CollectionProblem; deviceInformation.MonitoringProblem = registerDeviceMessage.MonitoringProblem; deviceInformations.Add(deviceInformation); } metricsRequest.DeviceInformations = deviceInformations; //enhancementArguments Dictionary <string, string> enhancementArguments = new Dictionary <string, string>(); if (metricsEnhancement.Arguments != null) { foreach (Argument item in metricsEnhancement.Arguments) { if (!enhancementArguments.ContainsKey(item.key)) { enhancementArguments.Add(item.key, item.value); } } } metricsRequest.EnhancementArguments = enhancementArguments; //InvokeMetrics Plugin EnhancementAction enhancementAction = new EnhancementAction(this.ConnectString); PluginResponse result = enhancementAction.InvokeMetrics(metricsRequest, metricsEnhancement.Type); if (!result.IsSuccess) { Logger.Write("CreateMetricsFail-" + result.Message); return(CentralConnectCode.CreateMetricsFail); } //SendMetrics DictionaryAction dictionaryAction = new DictionaryAction(this.ConnectString); string serviceUrl = string.Format("{0}/{1}", dictionaryAction.RetrieveServiceUrl(metricsEnhancement.Environment), "DataPackageReceiver/DataPackageReceiver.asmx"); DataPackageSubmissionResult dataPackageSubmissionResult = this.SendMetricsRequest(serviceUrl, registerClientMessage.CSID, registerClientMessage.HWGDID, registerClientMessage.OSGDID, registerClientMessage.RegistrationToken, result.FileName, result.FileContent); if (!dataPackageSubmissionResult.IsSuccess) { if (dataPackageSubmissionResult.Error.IsClientError) { return(CentralConnectCode.SendMetricsClientError); } else if (dataPackageSubmissionResult.Error.IsReRegisterError) { return(CentralConnectCode.SendMetricsReRegisterError); } else if (dataPackageSubmissionResult.Error.IsTransientError) { return(CentralConnectCode.SendMetricsTransientError); } } MetricsMessage metricsMessage = new MetricsMessage(); metricsMessage.Environment = metricsEnhancement.Environment; metricsMessage.ClientName = metricsEnhancement.ClientName; metricsMessage.Domain = metricsEnhancement.Domain; metricsMessage.PackageName = result.FileName; metricsMessage.ServicePartnerId = metricsEnhancement.ServicePartnerId; metricsMessage.SupportPartnerId = metricsEnhancement.SupportPartnerId; metricsMessage.CreateBy = "TBD"; if (this.AddMetricsMessage(metricsMessage) != 1) { return(CentralConnectCode.AddMetricsMessageFail); } return(CentralConnectCode.Success); }
Core.ServiceResponse ICentralConnectService.VisibleClient(CentralConnectServiceRequest centralConnectServiceRequest) { if (centralConnectServiceRequest.RegisterClientMessage == null) { return new Core.ServiceResponse() { Code = 400, Message = "RegisterClientMessage should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.Environment) || string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.ClientName) || string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.Domain) || string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.HPPID) || string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.Password)) { return new Core.ServiceResponse() { Code = 400, Message = "Environment ClientName Domain HPPID Password should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.Id) || string.IsNullOrEmpty(centralConnectServiceRequest.Token) || string.IsNullOrEmpty(centralConnectServiceRequest.Type)) { return new Core.ServiceResponse() { Code = 400, Message = "Id Type and Token should not null" }; } string message = string.Empty; if (HP.TS.Devops.Security.SecurityCode.Success != HP.TS.Devops.Security.SecurityAction.CheckAccess(this.ConnectString, centralConnectServiceRequest, out message)) { return new Core.ServiceResponse() { Code = 403, Message = centralConnectServiceRequest.Id + " of type " + centralConnectServiceRequest.Type + " have no access of " + message }; } ClientAction clientAction = new ClientAction(this.ConnectString); CentralConnectCode clientCode = clientAction.VisibleClient(centralConnectServiceRequest.RegisterClientMessage.Environment, centralConnectServiceRequest.RegisterClientMessage.ClientName, centralConnectServiceRequest.RegisterClientMessage.Domain, centralConnectServiceRequest.RegisterClientMessage.HPPID, centralConnectServiceRequest.RegisterClientMessage.Password); if (CentralConnectCode.Success != clientCode) { return new Core.ServiceResponse() { Code = 500, Message = "RegisterClient Fail of " + Enum.GetName(typeof(CentralConnectCode), clientCode) }; } return new Core.ServiceResponse() { Code = 0, Message = "Success" }; }
Core.ServiceResponse ICentralConnectService.SendClientMetrics(CentralConnectServiceRequest centralConnectServiceRequest) { if (centralConnectServiceRequest.MetricsEnhancement == null) { return new Core.ServiceResponse() { Code = 400, Message = "MetricsEnhancement should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.MetricsEnhancement.Environment) || string.IsNullOrEmpty(centralConnectServiceRequest.MetricsEnhancement.ClientName) || string.IsNullOrEmpty(centralConnectServiceRequest.MetricsEnhancement.Domain) || string.IsNullOrEmpty(centralConnectServiceRequest.MetricsEnhancement.Type)) { return new Core.ServiceResponse() { Code = 400, Message = "Environment ClientName Domain Type should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.Id) || string.IsNullOrEmpty(centralConnectServiceRequest.Token) || string.IsNullOrEmpty(centralConnectServiceRequest.Type)) { return new Core.ServiceResponse() { Code = 400, Message = "Id Type and Token should not null" }; } string message = string.Empty; if (HP.TS.Devops.Security.SecurityCode.Success != HP.TS.Devops.Security.SecurityAction.CheckAccess(this.ConnectString, centralConnectServiceRequest, out message)) { return new Core.ServiceResponse() { Code = 403, Message = centralConnectServiceRequest.Id + " of type " + centralConnectServiceRequest.Type + " have no access of " + message }; } ClientAction clientAction = new ClientAction(this.ConnectString); CentralConnectCode clientCode = clientAction.CreateAndSendMetrics(centralConnectServiceRequest.MetricsEnhancement); if (CentralConnectCode.Success != clientCode) { return new Core.ServiceResponse() { Code = 500, Message = "CreateAndSendMetrics Fail of " + Enum.GetName(typeof(CentralConnectCode), clientCode) }; } return new Core.ServiceResponse() { Code = 0, Message = "Success" }; }
CentralConnectServiceResponse ICentralConnectService.RetrieveRegisterClientMessageByEnvironmentAndClientNameAndDomain(CentralConnectServiceRequest centralConnectServiceRequest) { if (centralConnectServiceRequest.RegisterClientMessage == null) { return new CentralConnectServiceResponse() { Code = 400, Message = "RegisterClientMessage should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.Environment) ||string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.ClientName) || string.IsNullOrEmpty(centralConnectServiceRequest.RegisterClientMessage.Domain)) { return new CentralConnectServiceResponse() { Code = 400, Message = "Environment ClientName Domain should not null" }; } if (string.IsNullOrEmpty(centralConnectServiceRequest.Id) || string.IsNullOrEmpty(centralConnectServiceRequest.Token) || string.IsNullOrEmpty(centralConnectServiceRequest.Type)) { return new CentralConnectServiceResponse() { Code = 400, Message = "Id Type and Token should not null" }; } string message = string.Empty; if (HP.TS.Devops.Security.SecurityCode.Success != HP.TS.Devops.Security.SecurityAction.CheckAccess(this.ConnectString, centralConnectServiceRequest, out message)) { return new CentralConnectServiceResponse() { Code = 403, Message = centralConnectServiceRequest.Id + " of type " + centralConnectServiceRequest.Type + " have no access of " + message }; } ClientAction clientAction = new ClientAction(this.ConnectString); List<RegisterClientMessage> registerClientMessages = clientAction.RetrieveRegisterClientMessageByEnvironmentAndClientNameAndDomain(centralConnectServiceRequest.RegisterClientMessage.Environment, centralConnectServiceRequest.RegisterClientMessage.ClientName, centralConnectServiceRequest.RegisterClientMessage.Domain); return new CentralConnectServiceResponse() { Code = 0, Message = "Success", RegisterClientMessages = registerClientMessages }; }