Exemple #1
0
        public void ThenEachCategoryContainsData()
        {
            // Build
            SqlConnection connection = (SqlConnection)DbConnectionFactory.Get().CreateIfNotExists("name=DefaultConnection");
            SqlCommand    command    = connection.CreateCommand();

            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = "dbo.GetAllCategories";

            // Operator
            connection.OpenIfNot();
            IDataReader             queryResult          = command.ExecuteReader();
            Materializer <Category> categoryMaterializer = new Materializer <Category>(queryResult);
            List <Category>         categories           = new List <Category>();

            while (queryResult.Read())
            {
                categories.Add(categoryMaterializer.Materialize(queryResult));
            }

            // Check
            foreach (Category cat in categories)
            {
                AssertPropertiesAreNotNull(cat.GetType(), cat);
            }
        }
Exemple #2
0
        private void Run()
        {
            var config = new ConfigurationBuilder()
                         .AddUserSecrets <Program>()
                         .Build();

            var dbConnFact = new DbConnectionFactory(config);

            using (var conn = dbConnFact.Get())
            {
                Console.WriteLine($"Importing from:  {_dataDirectory}");
                Console.WriteLine($"          into:  {conn.ConnectionString}");
                using (var trans = conn.BeginTransaction())
                {
                    foreach (var type in GetImportTypes())
                    {
                        var method  = typeof(Program).GetMethod(nameof(Load), BindingFlags.NonPublic | BindingFlags.Instance);
                        var generic = method.MakeGenericMethod(type);
                        generic.Invoke(this, new object[] { conn, trans });
                    }
                    trans.Commit();
                }
                Console.WriteLine("Finished!");
            }
        }
Exemple #3
0
        public void ThenThrowArgumentNullException()
        {
            // Build
            IDbConnectionFactory factory  = DbConnectionFactory.Get();
            string nameOrConnectionString = string.Empty;

            // Operator
            IDbConnection connection1 = factory.CreateIfNotExists(nameOrConnectionString);
        }
        public void ThenThrowAnException()
        {
            // Build
            IDbConnectionFactory factory  = DbConnectionFactory.Get();
            string nameOrConnectionString = "name=WrongConnection";

            // Operator
            IDbConnection connection1 = factory.CreateIfNotExists(nameOrConnectionString);
        }
Exemple #5
0
        public void ThenCreateNewDatabaseConnection()
        {
            // Build
            IDbConnectionFactory factory  = DbConnectionFactory.Get();
            string nameOrConnectionString = "name=DefaultConnection";

            // Operator
            IDbConnection connection1 = factory.CreateIfNotExists(nameOrConnectionString);

            // Check
            Assert.IsInstanceOfType(connection1, typeof(SqlConnection));
        }
        public void ThenCreateNewDatabaseConnection()
        {
            // Build
            IDbConnectionFactory factory  = DbConnectionFactory.Get();
            string nameOrConnectionString = "Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-CodeCamper.Web-20120601131139;";

            // Operator
            IDbConnection connection1 = factory.CreateIfNotExists(nameOrConnectionString);

            // Check
            Assert.IsInstanceOfType(connection1, typeof(SqlConnection));
        }
Exemple #7
0
        public void ThenConnection1And2AreSame()
        {
            // Build
            IDbConnectionFactory factory  = DbConnectionFactory.Get();
            string nameOrConnectionString = "Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-CodeCamper.Web-20120601131139;";

            // Operator
            IDbConnection connection1 = factory.CreateIfNotExists(nameOrConnectionString);
            IDbConnection connection2 = factory.CreateIfNotExists(nameOrConnectionString);

            // Check
            Assert.AreEqual <IDbConnection>(connection1, connection2);
        }
        public void ThenCreateDatabaseInstance()
        {
            // Build
            string    nameOrConnectionString = "name=DefaultConnection";
            IDatabase db = new Database(nameOrConnectionString, DbConnectionFactory.Get());

            // Operator

            // Check
            Assert.IsNotNull(db);
            Assert.IsNotNull(db.ConnectionFactory);
            Assert.IsNotNull(db.Connection);
        }
Exemple #9
0
        public void ThenCategoryShaperIsCreated()
        {
            // Build
            IDbConnection connection = DbConnectionFactory.Get().CreateIfNotExists("name=DefaultConnection");
            IDbCommand    command    = connection.CreateCommand();

            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = "dbo.GetAllCategories";

            // Operator
            connection.OpenIfNot();
            IDataReader             queryResult          = command.ExecuteReader();
            Materializer <Category> categoryMaterializer = new Materializer <Category>(queryResult);

            // Check
            Assert.IsInstanceOfType(categoryMaterializer, typeof(Materializer <Category>));
        }
Exemple #10
0
        public void ThenCollectionOfCategoriesReturned()
        {
            // Build
            SqlConnection connection = (SqlConnection)DbConnectionFactory.Get().CreateIfNotExists("name=DefaultConnection");
            SqlCommand    command    = connection.CreateCommand();

            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = "dbo.GetAllCategories";

            // Operator
            connection.OpenIfNot();
            IDataReader             queryResult          = command.ExecuteReader();
            Materializer <Category> categoryMaterializer = new Materializer <Category>(queryResult);
            List <Category>         categories           = new List <Category>();

            while (queryResult.Read())
            {
                categories.Add(categoryMaterializer.Materialize(queryResult));
            }

            // Check
            Assert.IsTrue(categories.Any());
        }
        public void ThenEmptyCategoryCollectionIsReturned()
        {
            // Build
            SqlConnection connection = (SqlConnection)DbConnectionFactory.Get().CreateIfNotExists("name=DefaultConnection");
            SqlCommand    command    = connection.CreateCommand();

            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = "dbo.GetCategory";
            command.Parameters.AddWithValue("Id", SomeCategoryId);

            // Operator
            connection.OpenIfNot();
            IDataReader             queryResult          = command.ExecuteReader();
            Materializer <Category> categoryMaterializer = new Materializer <Category>(queryResult);
            List <Category>         categories           = new List <Category>();

            while (queryResult.Read())
            {
                categories.Add(categoryMaterializer.Materialize(queryResult));
            }

            // Check
            Assert.IsTrue(categories.Count() == 0);
        }
        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!");
            }
        }