/// <summary> /// Hangfire job to send LicenceDetailsMessage to One stop. /// </summary> public async Task SendProgramAccountDetailsBroadcastMessageRest(PerformContext hangfireContext, string licenceGuidRaw) { IDynamicsClient dynamicsClient = DynamicsSetupUtil.SetupDynamics(_configuration); if (hangfireContext != null) { hangfireContext.WriteLine("Starting OneStop REST ProgramAccountDetailsBroadcast Job."); } string licenceGuid = Utils.ParseGuid(licenceGuidRaw); //prepare soap content var req = new ProgramAccountDetailsBroadcast(); var licence = dynamicsClient.GetLicenceByIdWithChildren(licenceGuid); if (hangfireContext != null && licence != null) { hangfireContext.WriteLine($"Got Licence {licenceGuid}."); } if (licence == null) { if (hangfireContext != null) { hangfireContext.WriteLine($"Unable to get licence {licenceGuid}."); } if (Log.Logger != null) { Log.Logger.Error($"Unable to get licence {licenceGuid}."); } } else { var innerXml = req.CreateXML(licence); innerXml = _onestopRestClient.CleanXML(innerXml); if (Log.Logger != null) { Log.Logger.Information(innerXml); } if (hangfireContext != null) { hangfireContext.WriteLine(innerXml); } //send message to Onestop hub var outputXML = await _onestopRestClient.ReceiveFromPartner(innerXml); if (hangfireContext != null) { hangfireContext.WriteLine(outputXML); hangfireContext.WriteLine("End of OneStop REST ProgramAccountDetailsBroadcast Job."); } } }
/// <summary> /// Hangfire job to send LicenceDetailsMessage to One stop. /// </summary> public async Task SendProgramAccountDetailsBroadcastMessageREST(PerformContext hangfireContext, string licenceGuidRaw) { if (hangfireContext != null) { hangfireContext.WriteLine("Starting OneStop REST SendLicenceCreationMessage Job."); } string licenceGuid = Utils.ParseGuid(licenceGuidRaw); //prepare soap content var req = new ProgramAccountDetailsBroadcast(); var licence = _dynamics.GetLicenceByIdWithChildren(licenceGuid); if (hangfireContext != null && licence != null) { hangfireContext.WriteLine($"Got Licence {licenceGuid}."); } if (licence == null) { if (hangfireContext != null) { hangfireContext.WriteLine($"Unable to get licence {licenceGuid}."); } if (_logger != null) { _logger.LogError($"Unable to get licence {licenceGuid}."); } } else { var innerXML = req.CreateXML(licence); //send message to Onestop hub var outputXML = await _onestopRestClient.receiveFromPartner(innerXML); if (hangfireContext != null) { hangfireContext.WriteLine(outputXML); hangfireContext.WriteLine("End ofOneStop REST SendLicenceCreationMessage Job."); } } }
/// <summary> /// Hangfire job to send LicenceDetailsMessage to One stop. /// </summary> public async Task SendProgramAccountDetailsBroadcastMessage(PerformContext hangfireContext, string licenceGuidRaw) { if (hangfireContext != null) { hangfireContext.WriteLine("Starting OneStop SendLicenceCreationMessage Job."); } string licenceGuid = Utils.ParseGuid(licenceGuidRaw); OneStopHubService.receiveFromPartnerResponse output; var serviceClient = new OneStopHubService.http___SOAP_BCPartnerPortTypeClient(); serviceClient.ClientCredentials.UserName.UserName = Configuration["ONESTOP_HUB_USERNAME"]; serviceClient.ClientCredentials.UserName.Password = Configuration["ONESTOP_HUB_PASSWORD"]; var basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; serviceClient.Endpoint.Binding = basicHttpBinding; using (new OperationContextScope(serviceClient.InnerChannel)) { //Create message header containing the credentials var header = new OneStopServiceReference.SoapSecurityHeader("", Configuration["ONESTOP_HUB_USERNAME"], Configuration["ONESTOP_HUB_PASSWORD"], ""); //Add the credentials message header to the outgoing request OperationContext.Current.OutgoingMessageHeaders.Add(header); try { var req = new ProgramAccountDetailsBroadcast(); if (hangfireContext != null) { hangfireContext.WriteLine($"Getting licence {licenceGuid}"); } MicrosoftDynamicsCRMadoxioLicences licence = _dynamics.GetLicenceByIdWithChildren(licenceGuid); if (hangfireContext != null) { hangfireContext.WriteLine("Got licence. Creating XML request"); } var innerXML = req.CreateXML(licence); hangfireContext.WriteLine("Sending request."); var request = new OneStopHubService.receiveFromPartnerRequest(innerXML, "out"); output = serviceClient.receiveFromPartnerAsync(request).GetAwaiter().GetResult(); } catch (Exception ex) { if (_logger != null) { _logger.LogError(ex.Message); _logger.LogError(ex.StackTrace); } if (hangfireContext != null) { hangfireContext.WriteLine("Error sending program account details broadcast:"); hangfireContext.WriteLine(ex.Message); } throw; } } if (hangfireContext != null) { hangfireContext.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(output)); hangfireContext.WriteLine("End ofOneStop SendLicenceCreationMessage Job."); } }