public static async Task Cleanup()
        {
            var reader   = new EntityReader <VentureSchedule>();
            var toDelete = new VentureSchedule();

            foreach (Guid item in RecycleBin)
            {
                toDelete = reader.GetAll().Where(x => x.Key == item).FirstOrDefaultSafe();
                using (var db = new EntityWriter <VentureSchedule>(toDelete))
                {
                    await db.DeleteAsync();
                }
            }
        }
Beispiel #2
0
        public static async Task Cleanup()
        {
            var reader   = new EntityReader <ResourceInfo>();
            var toDelete = new ResourceInfo();

            foreach (Guid item in RecycleBin)
            {
                toDelete = reader.GetAll().Where(x => x.Key == item).FirstOrDefaultSafe();
                using (var db = new EntityWriter <ResourceInfo>(toDelete, new ResourceInfoSPConfig()))
                {
                    await db.DeleteAsync();
                }
            }
        }
Beispiel #3
0
        public static async Task Cleanup()
        {
            var reader   = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var toDelete = new CustomerInfo();

            foreach (Guid item in RecycleBin)
            {
                toDelete = reader.GetAll().Where(x => x.Key == item).FirstOrDefaultSafe();
                using (var db = new EntityWriter <CustomerInfo>(new CustomerSPConfig(new ConnectionStringFactory().GetDefaultConnection(), toDelete)))
                {
                    await db.DeleteAsync();
                }
            }
        }
Beispiel #4
0
        public async Task Core_Entity_CustomerInfo_Delete()
        {
            var reader     = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var testEntity = new CustomerInfo();
            var oldId      = -1;
            var oldKey     = Guid.Empty;

            // Insert and baseline test
            await Core_Entity_CustomerInfo_Insert();

            testEntity = reader.GetAll().OrderByDescending(x => x.CreatedDate).FirstOrDefaultSafe();
            oldId      = testEntity.Id;
            oldKey     = testEntity.Key;
            Assert.IsTrue(testEntity.IsNew == false);
            Assert.IsTrue(testEntity.Id != -1);
            Assert.IsTrue(testEntity.Key != Guid.Empty);
            Assert.IsTrue(!testEntity.FailedRules.Any());

            // Do delete
            using (var writer = new EntityWriter <CustomerInfo>(new CustomerSPConfig(new ConnectionStringFactory().GetDefaultConnection(), testEntity)))
            {
                testEntity = await writer.DeleteAsync();
            }
            Assert.IsTrue(!testEntity.FailedRules.Any());

            // Pull from DB and retest
            testEntity = reader.GetAll().Where(x => x.Id == oldId).FirstOrDefaultSafe();
            Assert.IsTrue(testEntity.IsNew);
            Assert.IsTrue(testEntity.Id != oldId);
            Assert.IsTrue(testEntity.Key != oldKey);
            Assert.IsTrue(testEntity.Id == -1);
            Assert.IsTrue(testEntity.Key == Guid.Empty);
            Assert.IsTrue(!testEntity.FailedRules.Any());

            // Add to recycle bin for cleanup
            RecycleBin.Add(testEntity.Key);
        }
Beispiel #5
0
        public void Core_Data_EntityReader_GetById()
        {
            var custData   = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var custEntity = new CustomerInfo();

            var existingId  = custData.GetAllExcludeDefault().FirstOrDefaultSafe().Id;
            var custWhereId = custData.GetAll().Where(x => x.Id == existingId);

            Assert.IsTrue(custWhereId.Count() > 0);
            Assert.IsTrue(custWhereId.Any());

            custEntity = custWhereId.FirstOrDefaultSafe();
            Assert.IsTrue(custEntity.Id == existingId);
            Assert.IsTrue(custEntity.IsNew == false);
        }
Beispiel #6
0
        public void Core_Data_EntityReader_GetByPage()
        {
            var reader      = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var item        = new CustomerInfo();
            var pageCount   = 3;
            var pageCurrent = 1;
            var testKeys    = reader.GetAll().Take(10).Select(x => x.Key);
            var firstSet    = reader.GetByPage(x => testKeys.Contains(x.Key), y => y.Id, pageCount, pageCurrent).ToList();

            Assert.IsTrue(firstSet.Count() == pageCount);
            Assert.IsTrue(firstSet.First().Id <= firstSet.Last().Id);
            pageCurrent += 1;
            var secondSet = reader.GetByPage(x => testKeys.Contains(x.Key), y => y.Id, pageCount, pageCurrent).ToList();

            Assert.IsTrue(secondSet.Count() == pageCount);
            Assert.IsTrue(secondSet.First().Id <= secondSet.Last().Id);
            Assert.IsTrue(firstSet.Last().Id <= secondSet.First().Id);
        }
        public ActionResult Search(CustomerModel data)
        {
            var model = new CustomerSearchModel();
            IQueryable <CustomerInfo> searchResults;

            model = data.CastOrFill <CustomerSearchModel>();
            using (var reader = new EntityReader <CustomerInfo>())
            {
                searchResults = reader.GetAll()
                                .Where(x => (model.FirstName != Defaults.String && x.FirstName.Contains(model.FirstName)) ||
                                       (model.LastName != Defaults.String && x.LastName.Contains(model.LastName)) ||
                                       (model.BirthDate != Defaults.Date && x.BirthDate == model.BirthDate) ||
                                       (x.Id == model.Id)).Take(25);
            }
            if (searchResults.Any())
            {
                model.Results.FillRange(searchResults);
            }
            TempData[ResultMessage] = $"{model.Results.Count} matches found";

            return(View(CustomerSearchController.SearchView, model));
        }
Beispiel #8
0
        public async Task Core_Entity_CustomerInfo_Update()
        {
            var testEntity   = new CustomerInfo();
            var reader       = new EntityReader <CustomerInfo>(new ConnectionStringFactory().GetDefaultConnection());
            var oldFirstName = string.Empty;
            var newFirstName = DateTime.UtcNow.Ticks.ToString();
            var entityId     = -1;
            var entityKey    = Guid.Empty;

            // Create and capture original data
            await Core_Entity_CustomerInfo_Insert();

            testEntity           = reader.GetAll().OrderByDescending(x => x.CreatedDate).FirstOrDefaultSafe();
            oldFirstName         = testEntity.FirstName;
            entityId             = testEntity.Id;
            entityKey            = testEntity.Key;
            testEntity.FirstName = newFirstName;
            Assert.IsTrue(testEntity.IsNew == false);
            Assert.IsTrue(testEntity.Id != -1);
            Assert.IsTrue(testEntity.Key != Guid.Empty);
            Assert.IsTrue(!testEntity.FailedRules.Any());

            // Do Update
            using (var writer = new EntityWriter <CustomerInfo>(new CustomerSPConfig(new ConnectionStringFactory().GetDefaultConnection(), testEntity)))
            {
                testEntity = await writer.UpdateAsync();
            }
            Assert.IsTrue(!testEntity.FailedRules.Any());

            // Pull from DB and retest
            testEntity = reader.GetById(entityId);
            Assert.IsTrue(testEntity.IsNew == false);
            Assert.IsTrue(testEntity.Id == entityId);
            Assert.IsTrue(testEntity.Key == entityKey);
            Assert.IsTrue(testEntity.Id != -1);
            Assert.IsTrue(testEntity.Key != Guid.Empty);
            Assert.IsTrue(!testEntity.FailedRules.Any());
        }
        public ActionResult SearchResults(string id, string firstName, string lastName)
        {
            var model = new CustomerSearchModel()
            {
                Id = id.TryParseInt32(), Key = id.TryParseGuid(), FirstName = firstName, LastName = lastName
            };
            IQueryable <CustomerInfo> searchResults;

            using (var reader = new EntityReader <CustomerInfo>())
            {
                searchResults = reader.GetAll()
                                .Where(x => (model.FirstName != Defaults.String && x.FirstName.Contains(model.FirstName)) ||
                                       (model.LastName != Defaults.String && x.LastName.Contains(model.LastName)) ||
                                       (model.BirthDate != Defaults.Date && x.BirthDate == model.BirthDate) ||
                                       (x.Id == model.Id)).Take(25);
            }
            if (searchResults.Any())
            {
                model.Results.FillRange(searchResults);
            }
            TempData[ResultMessage] = $"{model.Results.Count} matches found";

            return(PartialView(CustomerSearchController.SearchResultsView, model.Results));
        }