Beispiel #1
0
        public async Task Core_Entity_StoredProcedureEntity_GetByKey()
        {
            var dbCustomer = new CustomerInfo();
            var dbReader   = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var lastKey    = Guid.Empty;

            await Core_Entity_StoredProcedureEntity_Create();

            lastKey = dbReader.GetByKey(RecycleBin.Last()).Key;

            dbCustomer = dbReader.GetByKey(lastKey);
            Assert.IsTrue(dbCustomer.Id != -1);
            Assert.IsTrue(dbCustomer.Key != Guid.Empty);
            Assert.IsTrue(dbCustomer.CreatedDate.Date == DateTime.UtcNow.Date);
        }
Beispiel #2
0
        public void Entity_StoredProcedureEntity_Delete()
        {
            var writer      = new StoredProcedureWriter <CustomerInfo>();
            var reader      = new EntityReader <CustomerInfo>();
            var dbCustomer  = new CustomerInfo();
            var lastKey     = TypeExtension.DefaultGuid;
            var originalId  = TypeExtension.DefaultInteger;
            var originalKey = TypeExtension.DefaultGuid;

            Entity_StoredProcedureEntity_Create();
            lastKey = StoredProcedureEntityTests.RecycleBin.Last();

            dbCustomer  = reader.GetByKey(lastKey);
            originalId  = dbCustomer.Id;
            originalKey = dbCustomer.Key;
            Assert.IsTrue(!dbCustomer.IsNew);
            Assert.IsTrue(dbCustomer.Id != TypeExtension.DefaultInteger);
            Assert.IsTrue(dbCustomer.Key != TypeExtension.DefaultGuid);
            Assert.IsTrue(dbCustomer.CreatedDate.Date == DateTime.UtcNow.Date);

            dbCustomer = writer.Delete(dbCustomer);
            Assert.IsTrue(dbCustomer.IsNew);

            dbCustomer = reader.GetById(originalId);
            Assert.IsTrue(dbCustomer.IsNew);
            Assert.IsTrue(dbCustomer.Id == TypeExtension.DefaultInteger);
            Assert.IsTrue(dbCustomer.Key == TypeExtension.DefaultGuid);
        }
Beispiel #3
0
        public async Task Person_ResourcePerson_Create()
        {
            var testEntity   = new ResourcePerson();
            var resultEntity = new ResourcePerson();

            // Create should update original object, and pass back a fresh-from-db object
            testEntity.Fill(testEntities[Arithmetic.Random(1, testEntities.Count)]);
            using (var writer = new EntityWriter <ResourcePerson>(testEntity, new ResourcePersonSPConfig()))
            {
                resultEntity = await writer.SaveAsync();
            }
            Assert.IsTrue(testEntity.Id != Defaults.Integer);
            Assert.IsTrue(testEntity.Key != Defaults.Guid);
            Assert.IsTrue(resultEntity.Id != Defaults.Integer);
            Assert.IsTrue(resultEntity.Key != Defaults.Guid);
            Assert.IsTrue(!testEntity.FailedRules.Any());

            // Object in db should match in-memory objects
            var reader = new EntityReader <ResourcePerson>();

            testEntity = reader.GetByKey(resultEntity.Key);
            Assert.IsTrue(!testEntity.IsNew);
            Assert.IsTrue(testEntity.Id != Defaults.Integer);
            Assert.IsTrue(testEntity.Key != Defaults.Guid);
            Assert.IsTrue(testEntity.Id == resultEntity.Id);
            Assert.IsTrue(testEntity.Key == resultEntity.Key);
            Assert.IsTrue(!testEntity.FailedRules.Any());

            ResourcePersonTests.RecycleBin.Add(testEntity.Key);
        }
Beispiel #4
0
        public async Task Core_Entity_StoredProcedureEntity_Delete()
        {
            var db          = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var testItem    = new CustomerInfo();
            var testResult  = new CustomerInfo();
            var lastKey     = Guid.Empty;
            var originalID  = -1;
            var originalKey = Guid.Empty;

            await Core_Entity_StoredProcedureEntity_Create();

            lastKey = RecycleBin.Last();

            testItem    = db.GetByKey(lastKey);
            originalID  = testItem.Id;
            originalKey = testItem.Key;
            Assert.IsTrue(testItem.Id != -1);
            Assert.IsTrue(testItem.Key != Guid.Empty);
            Assert.IsTrue(testItem.CreatedDate.Date == DateTime.UtcNow.Date);

            using (var writer = new EntityWriter <CustomerInfo>(new CustomerSPConfig(new ConnectionStringFactory().GetDefaultConnection(), testItem)))
            {
                var deleteResult = await writer.DeleteAsync();

                Assert.IsTrue(deleteResult.IsNew);
            }

            testItem = db.GetById(originalID);
            Assert.IsTrue(testItem.Id != originalID);
            Assert.IsTrue(testItem.Key != originalKey);
            Assert.IsTrue(testItem.Id == -1);
            Assert.IsTrue(testItem.Key == Guid.Empty);
        }
        public async Task Core_Data_StoredProcedure_Update()
        {
            var testItem      = new CustomerInfo();
            var reader        = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var customerTests = new CustomerInfoTests();

            await customerTests.Core_Entity_CustomerInfo_Insert();

            testItem = reader.GetByKey(CustomerTests.RecycleBin.LastOrDefault());

            var updateProc = new StoredProcedure <CustomerInfo>()
            {
                StoredProcedureName = "CustomerInfoUpdate",
                Parameters          = new List <SqlParameter>()
                {
                    new SqlParameter("@Key", testItem.Key),
                    new SqlParameter("@FirstName", testItem.FirstName),
                    new SqlParameter("@MiddleName", testItem.MiddleName),
                    new SqlParameter("@LastName", testItem.LastName),
                    new SqlParameter("@BirthDate", testItem.BirthDate),
                    new SqlParameter("@GenderId", testItem.GenderId),
                    new SqlParameter("@CustomerTypeId", testItem.CustomerTypeId)
                }
            };

            Assert.IsTrue(updateProc.StoredProcedureName.Length > 0);
            Assert.IsTrue(updateProc.Parameters.Count() > 0);
        }
Beispiel #6
0
        public async Task Core_Entity_StoredProcedureEntity_Update()
        {
            var reader         = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var item           = new CustomerInfo();
            var resultCustomer = new CustomerInfo();
            var uniqueValue    = RandomString.Next();

            await Core_Entity_StoredProcedureEntity_Create();

            Guid lastKey = RecycleBin.Last();

            item = reader.GetByKey(lastKey);
            var  originalID  = item.Id;
            Guid originalKey = item.Key;

            Assert.IsTrue(item.Id != -1);
            Assert.IsTrue(item.Key != Guid.Empty);

            item.FirstName = uniqueValue;
            using (var writer = new EntityWriter <CustomerInfo>(new CustomerSPConfig(new ConnectionStringFactory().GetDefaultConnection(), item)))
            {
                resultCustomer = await writer.UpdateAsync();
            }
            Assert.IsTrue(resultCustomer.Id != -1);
            Assert.IsTrue(resultCustomer.Key != Guid.Empty);
            Assert.IsTrue(item.Id == resultCustomer.Id && resultCustomer.Id == originalID);
            Assert.IsTrue(item.Key == resultCustomer.Key && resultCustomer.Key == originalKey);

            item = reader.GetById(originalID);
            Assert.IsTrue(item.Id == resultCustomer.Id && resultCustomer.Id == originalID);
            Assert.IsTrue(item.Key == resultCustomer.Key && resultCustomer.Key == originalKey);

            Assert.IsTrue(item.Id != -1);
            Assert.IsTrue(item.Key != Guid.Empty);
        }
Beispiel #7
0
        public async Task Entity_StoredProcedureEntity_Delete()
        {
            var reader = new EntityReader <CustomerInfo>();

            await Entity_StoredProcedureEntity_Create();

            var lastKey = StoredProcedureEntityTests.RecycleBin.Last();

            var testEntity = reader.GetByKey(lastKey);
            var originalId = testEntity.Id;

            Assert.IsTrue(!testEntity.IsNew);
            Assert.IsTrue(testEntity.Id != Defaults.Integer);
            Assert.IsTrue(testEntity.Key != Defaults.Guid);
            Assert.IsTrue(testEntity.CreatedDate.Date == DateTime.UtcNow.Date);

            using (var writer = new StoredProcedureWriter <CustomerInfo>(testEntity, new CustomerSPConfig(testEntity)))
            {
                testEntity = await writer.DeleteAsync();
            }
            Assert.IsTrue(testEntity.IsNew);

            testEntity = reader.GetById(originalId);
            Assert.IsTrue(testEntity.IsNew);
            Assert.IsTrue(testEntity.Id == Defaults.Integer);
            Assert.IsTrue(testEntity.Key == Defaults.Guid);
        }
Beispiel #8
0
        public static void Cleanup()
        {
            var writer = new EntityWriter <CustomerInfo>();
            var reader = new EntityReader <CustomerInfo>();

            foreach (Guid item in RecycleBin)
            {
                writer.Delete(reader.GetByKey(item));
            }
        }
Beispiel #9
0
        public void Core_Data_EntityReader_Singles()
        {
            var reader    = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var testItem  = new CustomerInfo();
            var emptyGuid = Guid.Empty;

            // By Id
            var results = reader.GetAllExcludeDefault();
            var first   = results.FirstOrDefaultSafe();

            testItem = reader.GetByKey(first.Key);
            Assert.IsTrue(testItem.IsNew == false);
            Assert.IsTrue(testItem.Id != -1);
            Assert.IsTrue(testItem.Key != Guid.Empty);

            // By Key
            testItem = reader.GetByKey(reader.GetAllExcludeDefault().FirstOrDefaultSafe().Key);
            Assert.IsTrue(testItem.IsNew == false);
            Assert.IsTrue(testItem.Id != -1);
            Assert.IsTrue(testItem.Key != Guid.Empty);
        }
Beispiel #10
0
        public static async Task Cleanup()
        {
            var reader = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());

            foreach (Guid item in RecycleBin)
            {
                var toDelete = reader.GetByKey(item);
                using (var writer = new EntityWriter <CustomerInfo>(new CustomerSPConfig(new ConnectionStringFactory().GetDefaultConnection(), toDelete)))
                {
                    await writer.DeleteAsync();
                }
            }
        }
Beispiel #11
0
        public ActionResult Summary(string id)
        {
            var reader   = new EntityReader <CustomerInfo>();
            var customer = (id.IsInteger() ?
                            reader.GetById(id.TryParseInt32()) :
                            reader.GetByKey(id.TryParseGuid()));

            if (customer.IsNew)
            {
                TempData[ResultMessage] = "Customer not found";
            }

            return(View(CustomerController.SummaryView, customer.CastOrFill <CustomerModel>()));
        }
Beispiel #12
0
        public ActionResult Delete(CustomerModel model)
        {
            var reader   = new EntityReader <CustomerInfo>();
            var customer = reader.GetByKey(model.Key);

            customer = customer.Delete();
            if (customer.IsNew)
            {
                TempData[ResultMessage] = "Successfully deleted";
            }
            else
            {
                TempData[ResultMessage] = "Failed to delete";
            }

            return(View(CustomerSearchController.SearchView, customer.CastOrFill <CustomerSearchModel>()));
        }
Beispiel #13
0
        public async Task <ActionResult> Delete(CustomerModel model)
        {
            var reader   = new EntityReader <CustomerInfo>();
            var customer = reader.GetByKey(model.Key);

            using (var writer = new StoredProcedureWriter <CustomerInfo>(customer, new CustomerSPConfig(customer)))
            {
                customer = await writer.DeleteAsync();
            }
            if (customer.IsNew)
            {
                TempData[ResultMessage] = "Successfully deleted";
            }
            else
            {
                TempData[ResultMessage] = "Failed to delete";
            }

            return(View(CustomerSearchController.SearchView, customer.CastOrFill <CustomerSearchModel>()));
        }
        public async Task Core_Data_StoredProcedure_Delete()
        {
            var testItem      = new CustomerInfo();
            var reader        = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var customerTests = new CustomerInfoTests();

            await customerTests.Core_Entity_CustomerInfo_Insert();

            testItem = reader.GetByKey(CustomerTests.RecycleBin.LastOrDefault());
            var deleteProc = new StoredProcedure <CustomerInfo>()
            {
                StoredProcedureName = "CustomerInfoDelete",
                Parameters          = new List <SqlParameter>()
                {
                    new SqlParameter("@Key", testItem.Key)
                }
            };

            Assert.IsTrue(deleteProc.StoredProcedureName.Length > 0);
            Assert.IsTrue(deleteProc.Parameters.Count() > 0);
        }
Beispiel #15
0
        public void Entity_StoredProcedureEntity_Update()
        {
            var writer         = new StoredProcedureWriter <CustomerInfo>();
            var reader         = new EntityReader <CustomerInfo>();
            var resultCustomer = new CustomerInfo();
            var dbCustomer     = new CustomerInfo();
            var uniqueValue    = Guid.NewGuid().ToString().Replace("-", "");
            var lastKey        = TypeExtension.DefaultGuid;
            var originalId     = TypeExtension.DefaultInteger;
            var originalKey    = TypeExtension.DefaultGuid;

            Entity_StoredProcedureEntity_Create();
            lastKey = StoredProcedureEntityTests.RecycleBin.Last();

            dbCustomer  = reader.GetByKey(lastKey);
            originalId  = dbCustomer.Id;
            originalKey = dbCustomer.Key;
            Assert.IsTrue(!dbCustomer.IsNew);
            Assert.IsTrue(dbCustomer.Id != TypeExtension.DefaultInteger);
            Assert.IsTrue(dbCustomer.Key != TypeExtension.DefaultGuid);

            dbCustomer.FirstName = uniqueValue;
            resultCustomer       = writer.Update(dbCustomer);
            Assert.IsTrue(!resultCustomer.IsNew);
            Assert.IsTrue(resultCustomer.Id != TypeExtension.DefaultInteger);
            Assert.IsTrue(resultCustomer.Key != TypeExtension.DefaultGuid);
            Assert.IsTrue(dbCustomer.Id == resultCustomer.Id && resultCustomer.Id == originalId);
            Assert.IsTrue(dbCustomer.Key == resultCustomer.Key && resultCustomer.Key == originalKey);

            dbCustomer = dbCustomer = reader.GetById(originalId);
            Assert.IsTrue(!dbCustomer.IsNew);
            Assert.IsTrue(dbCustomer.Id == resultCustomer.Id && resultCustomer.Id == originalId);
            Assert.IsTrue(dbCustomer.Key == resultCustomer.Key && resultCustomer.Key == originalKey);
            Assert.IsTrue(dbCustomer.Id != TypeExtension.DefaultInteger);
            Assert.IsTrue(dbCustomer.Key != TypeExtension.DefaultGuid);
        }
Beispiel #16
0
        public async Task Entity_StoredProcedureEntity_Update()
        {
            var reader       = new EntityReader <CustomerInfo>();
            var resultEntity = new CustomerInfo();
            var uniqueValue  = Guid.NewGuid().ToString().Replace("-", "");

            await Entity_StoredProcedureEntity_Create();

            var lastKey = StoredProcedureEntityTests.RecycleBin.Last();

            var testEntity  = reader.GetByKey(lastKey);
            var originalId  = testEntity.Id;
            var originalKey = testEntity.Key;

            Assert.IsTrue(!testEntity.IsNew);
            Assert.IsTrue(testEntity.Id != Defaults.Integer);
            Assert.IsTrue(testEntity.Key != Defaults.Guid);

            testEntity.FirstName = uniqueValue;
            using (var writer = new StoredProcedureWriter <CustomerInfo>(testEntity, new CustomerSPConfig(testEntity)))
            {
                resultEntity = await writer.UpdateAsync();
            }
            Assert.IsTrue(!resultEntity.IsNew);
            Assert.IsTrue(resultEntity.Id != Defaults.Integer);
            Assert.IsTrue(resultEntity.Key != Defaults.Guid);
            Assert.IsTrue(testEntity.Id == resultEntity.Id && resultEntity.Id == originalId);
            Assert.IsTrue(testEntity.Key == resultEntity.Key && resultEntity.Key == originalKey);

            testEntity = reader.GetById(originalId);
            Assert.IsTrue(!testEntity.IsNew);
            Assert.IsTrue(testEntity.Id == resultEntity.Id && resultEntity.Id == originalId);
            Assert.IsTrue(testEntity.Key == resultEntity.Key && resultEntity.Key == originalKey);
            Assert.IsTrue(testEntity.Id != Defaults.Integer);
            Assert.IsTrue(testEntity.Key != Defaults.Guid);
        }