예제 #1
0
        private static void RunWith(OnboardResponse onboardResponse)
        {
            var httpClient           = HttpClientFactory.AuthenticatedHttpClient(onboardResponse);
            var capabilitiesServices =
                new CapabilitiesService(new HttpMessagingService(httpClient));
            var capabilitiesParameters = new CapabilitiesParameters
            {
                OnboardResponse         = onboardResponse,
                ApplicationId           = ApplicationId,
                CertificationVersionId  = CertificationVersionId,
                EnablePushNotifications = CapabilitySpecification.Types.PushNotification.Disabled,
                CapabilityParameters    = new List <CapabilityParameter>()
            };

            var capabilitiesParameter = new CapabilityParameter
            {
                Direction            = CapabilitySpecification.Types.Direction.SendReceive,
                TechnicalMessageType = TechnicalMessageTypes.Iso11783TaskdataZip
            };

            capabilitiesParameters.CapabilityParameters.Add(capabilitiesParameter);
            capabilitiesServices.Send(capabilitiesParameters);

            Thread.Sleep(TimeSpan.FromSeconds(5));

            var fetchMessageService = new FetchMessageService(httpClient);
            var fetch = fetchMessageService.Fetch(onboardResponse);

            Assert.Single(fetch);

            var decodedMessage = DecodeMessageService.Decode(fetch[0].Command.Message);

            Assert.Equal(201, decodedMessage.ResponseEnvelope.ResponseCode);
        }
예제 #2
0
        private static void PrepareTestEnvironmentForRecipient()
        {
            var capabilitiesServices =
                new CapabilitiesService(new HttpMessagingService(HttpClientForRecipient));
            var capabilitiesParameters = new CapabilitiesParameters
            {
                OnboardResponse         = Recipient,
                ApplicationId           = ApplicationId,
                CertificationVersionId  = CertificationVersionId,
                EnablePushNotifications = CapabilitySpecification.Types.PushNotification.Disabled,
                CapabilityParameters    = new List <CapabilityParameter>()
            };
            var capabilitiesParameter = new CapabilityParameter
            {
                Direction            = CapabilitySpecification.Types.Direction.SendReceive,
                TechnicalMessageType = TechnicalMessageTypes.ImgPng
            };

            capabilitiesParameters.CapabilityParameters.Add(capabilitiesParameter);
            capabilitiesServices.Send(capabilitiesParameters);

            Thread.Sleep(TimeSpan.FromSeconds(2));

            var fetchMessageService = new FetchMessageService(HttpClientForRecipient);
            var fetch = fetchMessageService.Fetch(Recipient);

            Assert.Single(fetch);

            var decodedMessage = DecodeMessageService.Decode(fetch[0].Command.Message);

            Assert.Equal(201, decodedMessage.ResponseEnvelope.ResponseCode);
        }
예제 #3
0
        public void GivenValidCapabilitiesWhenSendingCapabilitiesMessageThenTheAgrirouterShouldSetTheCapabilities()
        {
            var capabilitiesServices =
                new CapabilitiesService(new HttpMessagingService(HttpClient));
            var capabilitiesParameters = new CapabilitiesParameters
            {
                OnboardResponse         = OnboardResponse,
                ApplicationId           = ApplicationId,
                CertificationVersionId  = CertificationVersionId,
                EnablePushNotifications = CapabilitySpecification.Types.PushNotification.Disabled,
                CapabilityParameters    = new List <CapabilityParameter>()
            };

            var capabilitiesParameter = new CapabilityParameter
            {
                Direction            = CapabilitySpecification.Types.Direction.SendReceive,
                TechnicalMessageType = TechnicalMessageTypes.Iso11783TaskdataZip
            };

            capabilitiesParameters.CapabilityParameters.Add(capabilitiesParameter);
            capabilitiesServices.Send(capabilitiesParameters);

            Thread.Sleep(TimeSpan.FromSeconds(5));

            var fetchMessageService = new FetchMessageService(HttpClient);
            var fetch = fetchMessageService.Fetch(OnboardResponse);

            Assert.Single(fetch);

            var decodedMessage = DecodeMessageService.Decode(fetch[0].Command.Message);

            Assert.Equal(201, decodedMessage.ResponseEnvelope.ResponseCode);
        }
        GivenValidCapabilitiesWhenSendingCapabilitiesMessageThenTheAgrirouterShouldSetTheCapabilities()
        {
            var mqttClient = new MqttFactory().CreateMqttClient();

            await MqttConnectionHelper.ConnectMqttClient(mqttClient, OnboardResponse);

            await MqttConnectionHelper.SubscribeToTopics(mqttClient, OnboardResponse);

            var capabilitiesServices   = new CapabilitiesService(new MqttMessagingService(mqttClient));
            var capabilitiesParameters = new CapabilitiesParameters
            {
                OnboardResponse         = OnboardResponse,
                ApplicationId           = ApplicationId,
                CertificationVersionId  = CertificationVersionId,
                EnablePushNotifications = CapabilitySpecification.Types.PushNotification.Disabled,
                CapabilityParameters    = new List <CapabilityParameter>()
            };

            var capabilitiesParameter = new CapabilityParameter
            {
                Direction            = CapabilitySpecification.Types.Direction.SendReceive,
                TechnicalMessageType = TechnicalMessageTypes.Iso11783TaskdataZip
            };

            capabilitiesParameters.CapabilityParameters.Add(capabilitiesParameter);
            capabilitiesServices.Send(capabilitiesParameters);
            var messageReceived = false;
            var counter         = 0;

            mqttClient.UseApplicationMessageReceivedHandler(e =>
            {
                messageReceived    = true;
                var messagePayload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
                var decodedMessage = DecodeMessageService.Decode(messagePayload);
                Assert.Equal(201, decodedMessage.ResponseEnvelope.ResponseCode);
            });

            while (!messageReceived && counter < 5)
            {
                await Task.Delay(TimeSpan.FromSeconds(5));

                counter++;
            }

            Assert.True(messageReceived);
        }
        private void Run()
        {
            var dbConnFact = new DbConnectionFactory(_config);

            using (var conn = dbConnFact.Get())
            {
                Console.WriteLine($"Importing data:");
                Console.WriteLine($"  from:  {NHSD.GPITF.BuyingCatalog.Settings.GIF_CRM_URL(_config)}");
                Console.WriteLine($"  into:  {conn.ConnectionString}");
                Console.WriteLine();

                Console.WriteLine($"Retrieving data from CRM:");

                #region NHSD data
                Console.WriteLine($"  Frameworks...");
                var frameworksSvc = new FrameworksService(_repo);
                var frameworks    = frameworksSvc
                                    .GetAll()
                                    .Select(x => Converter.FromCrm(x))
                                    .ToList();

                Console.WriteLine($"  Capabilities...");
                var capsSvc = new CapabilitiesService(_repo);
                var caps    = capsSvc
                              .GetAll()
                              .Select(x => Converter.FromCrm(x))
                              .ToList();

                Console.WriteLine($"  Standards...");
                var stdsSvc = new StandardsService(_repo);
                var stds    = stdsSvc
                              .GetAll()
                              .Select(x => Converter.FromCrm(x))
                              .ToList();

                Console.WriteLine($"  TODO   CapabilityFramework...");
                Console.WriteLine($"  TODO   FrameworkStandard...");

                Console.WriteLine($"  CapabilityStandard...");
                var capsStdsSvc = new CapabilitiesStandardService(_repo);
                var capsStds    = capsStdsSvc
                                  .GetAll()
                                  .Select(x => Converter.FromCrm(x))
                                  .ToList();
                #endregion

                #region Supplier data
                Console.WriteLine($"  Organisations...");
                var orgsSvc = new OrganisationsService(_repo);
                var orgs    = orgsSvc
                              .GetAll()
                              .Select(x => Converter.FromCrm(x))
                              .ToList();

                Console.WriteLine($"  Contacts...");
                var contactsSvc = new ContactsService(_repo);
                var contacts    = orgs
                                  .SelectMany(org => contactsSvc.ByOrganisation(org.Id))
                                  .Select(x => Converter.FromCrm(x))
                                  .ToList();

                Console.WriteLine($"  Solutions...");
                var solnsSvc = new SolutionsService(_repo);
                var solns    = orgs
                               .SelectMany(org => solnsSvc.ByOrganisation(org.Id))
                               .Select(x => Converter.FromCrm(x))
                               .ToList();

                Console.WriteLine($"  TechnicalContact...");
                var techContSvc = new TechnicalContactService(_repo);
                var techConts   = solns
                                  .SelectMany(soln => techContSvc.BySolution(soln.Id))
                                  .Select(x => Converter.FromCrm(x))
                                  .ToList();

                Console.WriteLine($"  TODO   FrameworkSolution...");

                Console.WriteLine($"  ClaimedCapability...");
                var claimedCapsSvc = new CapabilitiesImplementedService(_repo);
                var claimedCaps    = solns
                                     .SelectMany(soln => claimedCapsSvc.BySolution(soln.Id))
                                     .Select(x => Converter.FromCrm(x))
                                     .ToList();

                Console.WriteLine($"  ClaimedStandard...");
                var claimedStdsSvc = new StandardsApplicableService(_repo);
                var claimedStds    = solns
                                     .SelectMany(soln => claimedStdsSvc.BySolution(soln.Id))
                                     .Select(x => Converter.FromCrm(x))
                                     .ToList();

                Console.WriteLine($"  ClaimedCapabilityEvidence...");
                var claimedCapsEvSvc = new CapabilitiesImplementedEvidenceService(_repo);
                var claimedCapsEv    = claimedCaps
                                       .SelectMany(claim => claimedCapsEvSvc.ByClaim(claim.Id).SelectMany(x => x))
                                       .Select(x => Converter.FromCrm(x))
                                       .ToList();

                Console.WriteLine($"  ClaimedStandardEvidence...");
                var claimedStdsEvSvc = new StandardsApplicableEvidenceService(_repo);
                var claimedStdsEv    = claimedStds
                                       .SelectMany(claim => claimedStdsEvSvc.ByClaim(claim.Id).SelectMany(x => x))
                                       .Select(x => Converter.FromCrm(x))
                                       .ToList();

                Console.WriteLine($"  ClaimedCapabilityReview...");
                var claimedCapsRevSvc = new CapabilitiesImplementedReviewsService(_repo);
                var claimedCapsRev    = claimedCapsEv
                                        .SelectMany(ev => claimedCapsRevSvc.ByEvidence(ev.Id).SelectMany(x => x))
                                        .Select(x => Converter.CapabilitiesImplementedReviewsFromCrm(x))
                                        .ToList();

                Console.WriteLine($"  ClaimedStandardReview...");
                var claimedStdsRevSvc = new StandardsApplicableReviewsService(_repo);
                var claimedStdsRev    = claimedStdsEv
                                        .SelectMany(ev => claimedStdsRevSvc.ByEvidence(ev.Id).SelectMany(x => x))
                                        .Select(x => Converter.StandardsApplicableReviewsFromCrm(x))
                                        .ToList();
                #endregion

                Console.WriteLine();

                Console.WriteLine($"Importing data into datastore...");
                using (var trans = conn.BeginTransaction())
                {
                    // NHSD data
                    conn.Insert(frameworks, trans);
                    conn.Insert(caps, trans);
                    conn.Insert(stds, trans);
                    conn.Insert(capsStds, trans);

                    // Supplier data
                    conn.Insert(orgs, trans);
                    conn.Insert(contacts, trans);
                    conn.Insert(solns, trans);
                    conn.Insert(techConts, trans);

                    conn.Insert(claimedCaps, trans);
                    conn.Insert(claimedStds, trans);

                    conn.Insert(GetInsertionTree(claimedCapsEv), trans);
                    conn.Insert(GetInsertionTree(claimedStdsEv), trans);

                    conn.Insert(GetInsertionTree(claimedCapsRev), trans);
                    conn.Insert(GetInsertionTree(claimedStdsRev), trans);

                    trans.Commit();
                }

                Console.WriteLine("Finished!");
            }
        }