Example #1
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureServices(services =>
            {
                // Remove the app's ApplicationDbContext registration.
                var descriptor = services.SingleOrDefault(
                    d => d.ServiceType ==
                    typeof(DbContextOptions <TrackerContext>));

                if (descriptor != null)
                {
                    services.Remove(descriptor);
                }

                // Add ApplicationDbContext using an in-memory database for testing.

                services.AddDbContext <TrackerContext>(opt => opt.UseSqlite("Filename=test.db"));

                // Build the service provider.
                var sp         = services.BuildServiceProvider();
                TrackerContext = sp.GetService <TrackerContext>();
                TrackerContext.Database.EnsureDeleted();
                TrackerContext.Database.EnsureCreated();
            });
        }
Example #2
0
        public void CreateLog2()
        {
            AuditConfiguration.Default.IncludeRelationships = true;
            AuditConfiguration.Default.LoadRelationships    = true;

            AuditConfiguration.Default.IsAuditable <Task>();
            AuditConfiguration.Default.IsAuditable <User>();

            var db    = new TrackerContext();
            var audit = db.BeginAudit();

            var task = db.Tasks.Find(1);

            Assert.IsNotNull(task);

            task.PriorityId = 2;
            task.StatusId   = 2;
            task.Summary    = "Summary: " + DateTime.Now.Ticks;

            var log = audit.CreateLog();

            Assert.IsNotNull(log);

            string xml = log.ToXml();

            Assert.IsNotNull(xml);
        }
Example #3
0
        public void CreateLog2()
        {
            AuditConfiguration.Default.IncludeRelationships = true;
            AuditConfiguration.Default.LoadRelationships    = true;

            AuditConfiguration.Default.IsAuditable <Task>();
            AuditConfiguration.Default.IsAuditable <User>();

            var db    = new TrackerContext();
            var audit = db.BeginAudit();

            var task = db.Tasks.Find(1);

            Assert.IsNotNull(task);

            task.PriorityId = 2;
            task.StatusId   = 2;
            task.Summary    = "Summary: " + DateTime.Now.Ticks;

            var log = audit.CreateLog();

            Assert.IsNotNull(log);
            foreach (var property in log.Entities.SelectMany(e => e.Properties))
            {
                Assert.AreNotEqual(property.Current, "{error}");
                Assert.AreNotEqual(property.Original, "{error}");
            }

            string xml = log.ToXml();

            Assert.IsNotNull(xml);
        }
        public void FutureCountTest()
        {
            var db = new TrackerContext();

            // build up queries

            string emailDomain = "@battlestar.com";
            var q1 = db.Users
                .Where(p => p.EmailAddress.EndsWith(emailDomain))
                .Future();

            string search = "Earth";
            var q2 = db.Tasks
                .Where(t => t.Summary.Contains(search))
                .FutureCount();

            // should be 2 queries 
            //Assert.Equal(2, db.FutureQueries.Count);

            // this triggers the loading of all the future queries
            var users = q1.ToList();
            Assert.NotNull(users);

            // should be cleared at this point
            //Assert.Equal(0, db.FutureQueries.Count);

            // this should already be loaded
            Assert.True(((IFutureQuery)q2).IsLoaded);

            int count = q2;
            Assert.NotEqual(count, 0);
        }
Example #5
0
 public void Initialize()
 {
     fixture = new Fixture();
     WebApplicationFactory = new CustomWebApplicationFactory();
     httpClient            = WebApplicationFactory.Server.CreateClient();
     TrackerContext        = WebApplicationFactory.TrackerContext;
 }
Example #6
0
        public async Task GetProcesses_DocumentIdExistsWithProcesses_ReturnExpectedList()
        {
            // Arrange
            var document = fixture.Build <Document>()
                           .With(entity => entity.Processes, new List <Process>()
            {
                fixture.Build <Process>().With(x => x.Document, (Document)null).Create(),
                fixture.Build <Process>().With(x => x.Document, (Document)null).Create(),
                fixture.Build <Process>().With(x => x.Document, (Document)null).Create()
            })
                           .Create();

            TrackerContext.Documents.Add(document);
            TrackerContext.SaveChanges();

            // Act
            var httpResponseMessage = await httpClient.GetAsync($"documents/{document.Id}/processes");

            string json = await httpResponseMessage.Content.ReadAsStringAsync();

            var result = JsonToListObject <ProcessDto>(json);

            // Assert
            result.Should().BeEquivalentTo(document.Processes, options => options.Excluding(x => x.Document));
        }
Example #7
0
 public void Delete()
 {
     var    db          = new TrackerContext();
     string emailDomain = "@test.com";
     int    count       = db.Users
                          .Delete(u => u.EmailAddress.EndsWith(emailDomain));
 }
Example #8
0
        public void Delete()
        {
            AuditConfiguration.Default.IncludeRelationships = true;
            AuditConfiguration.Default.LoadRelationships    = true;

            AuditConfiguration.Default.IsAuditable <Task>();
            AuditConfiguration.Default.IsAuditable <User>().NotAudited(p => p.Avatar);

            var db    = new TrackerContext();
            var audit = db.BeginAudit();

            var user = new User();

            user.EmailAddress     = string.Format("email.{0}@test.com", DateTime.Now.Ticks);
            user.CreatedDate      = DateTime.Now;
            user.ModifiedDate     = DateTime.Now;
            user.PasswordHash     = DateTime.Now.Ticks.ToString();
            user.PasswordSalt     = "abcde";
            user.IsApproved       = false;
            user.LastActivityDate = DateTime.Now;

            db.Users.Add(user);

            var log = audit.CreateLog();

            Assert.IsNotNull(log);

            string beforeXml = log.ToXml();

            Assert.IsNotNull(beforeXml);
            Console.WriteLine(beforeXml);

            db.SaveChanges();

            log.Refresh();

            string afterXml = log.ToXml();

            Assert.IsNotNull(afterXml);

            var lastLog = audit.LastLog;
            var lastXml = lastLog.Refresh().ToXml();

            Assert.IsNotNull(lastXml);
            Console.WriteLine(lastXml);

            db.Users.Remove(user);

            var deleteLog = audit.CreateLog();

            Assert.IsNotNull(deleteLog);

            db.SaveChanges();

            var deleteXml = deleteLog.ToXml();

            Assert.IsNotNull(deleteXml);
            Console.WriteLine(deleteXml);
        }
        public void GetEntityMapAuditData()
        {
            var db = new TrackerContext();

            var map = db.Audits.ToObjectQuery().GetEntityMap <AuditData>();

            Assert.AreEqual("[dbo].[Audit]", map.TableName);
        }
Example #10
0
 public async Task PopulateStatusesDropDownList(TrackerContext _context, object selectedStatus = null)
 {
     AssessmentCreateVM.StatusesList = await _context.Status.Select(s => new SelectListItem()
     {
         Value = s.StatusID.ToString(),
         Text  = s.StatusName
     }).ToListAsync();
 }
Example #11
0
 public async Task PopulateLocationsDropDownList(TrackerContext _context, object selectedLocation = null)
 {
     AssessmentCreateVM.LocationsList = await _context.Location.Select(l => new SelectListItem()
     {
         Value = l.LocationID.ToString(),
         Text  = l.LocationCode
     }).ToListAsync();
 }
Example #12
0
        public async Task PopulateDropDownLists(TrackerContext _context, object selectedLocation = null, object selectedStatus = null, object selectedState = null, object selectedVendor = null)
        {
            await PopulateLocationsDropDownList(_context, selectedLocation);
            await PopulateStatusesDropDownList(_context, selectedStatus);
            await PopulateVendorList(_context, selectedVendor);

            PopulateTrueFalseNullList(_context, selectedState);
        }
Example #13
0
 public async Task PopulateVendorList(TrackerContext _context, object selectedVendor = null)
 {
     AssessmentCreateVM.VendorList = await _context.Vendor.Select(v => new SelectListItem()
     {
         Value = v.VendorID.ToString(),
         Text  = v.VendorName
     }).ToListAsync();
 }
        private void FillDatabase()
        {
            List <DatabaseBackedObject> objectsToAdd = DefaultRepositoryData.BuildTestData();
            TrackerContext context = new TrackerContext();

            objectsToAdd.ForEach(x => context.Set(x.GetType()).Add(x));
            context.SaveChanges();
        }
        private void UpdateDatabase()
        {
            List <DatabaseBackedObject> objectsToAdd = DefaultRepositoryData.BuildTestData();
            TrackerContext context = new TrackerContext();

            objectsToAdd.ForEach(x => context.Entry(x).State = System.Data.Entity.EntityState.Modified);
            context.SaveChanges();
        }
Example #16
0
 public NutritionRepository()
 {
     try {
         _db = new TrackerContext();
     } catch (Exception e) {
         Debug.WriteLine($"Could not connect to database, error: {e.Message}.\n\nException type: {e.GetType()}");
     }
 }
Example #17
0
 public UnitOfWork(TrackerContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException(nameof(context));
     }
     _context = context;
 }
Example #18
0
        public void CreateLogLoaded()
        {
            var auditConfiguration = AuditConfiguration.Default;

            auditConfiguration.IncludeRelationships = true;
            auditConfiguration.LoadRelationships    = true;
            auditConfiguration.DefaultAuditable     = true;

            // customize the audit for Task entity
            //auditConfiguration.IsAuditable<Task>()
            //  .NotAudited(t => t.TaskExtended)
            //  .FormatWith(t => t.Status, v => FormatStatus(v));

            // set name as the display member when status is a foreign key
            auditConfiguration.IsAuditable <Status>()
            .DisplayMember(t => t.Name);

            var db    = new TrackerContext();
            var audit = db.BeginAudit();

            var user = db.Users.Find(1);

            user.Comment = "Testing: " + DateTime.Now.Ticks;

            var newTask = new Task()
            {
                AssignedId = 1,
                CreatedId  = 1,
                StatusId   = 1,
                PriorityId = 2,
                Summary    = "Summary: " + DateTime.Now.Ticks
            };

            db.Tasks.Add(newTask);

            var p = db.Priorities.Find(2);

            var updateTask = db.Tasks.Find(1);

            updateTask.Priority = p;
            updateTask.StatusId = 2;
            updateTask.Summary  = "Summary: " + DateTime.Now.Ticks;

            var log = audit.CreateLog();

            Assert.IsNotNull(log);

            string xml = log.ToXml();

            Assert.IsNotNull(xml);

            foreach (var property in log.Entities.SelectMany(e => e.Properties))
            {
                Assert.AreNotEqual(property.Current, "{error}");
                Assert.AreNotEqual(property.Original, "{error}");
            }
        }
Example #19
0
        public void AddDeveloper(Developer developer)
        {
            var dc = new TrackerContext();

            dc.Developers.Add(developer);
            dc.SaveChanges();

            Clients.All.developerAdded(developer);
        }
Example #20
0
        public async void DeleteAsync()
        {
            var    db          = new TrackerContext();
            string emailDomain = "@test.com";

            int count = await db.Users
                        .Where(u => u.EmailAddress.EndsWith(emailDomain))
                        .DeleteAsync();
        }
Example #21
0
 public void Update()
 {
     var    db          = new TrackerContext();
     string emailDomain = "@test.com";
     int    count       = db.Users
                          .Where(u => u.EmailAddress.EndsWith(emailDomain))
                          .Update(u => new User {
         IsApproved = false, LastActivityDate = DateTime.Now
     });
 }
        public void Delete()
        {
            var db = new TrackerContext();

            db.Database.Log = s => System.Diagnostics.Trace.WriteLine(s);
            string emailDomain = "@test.com";
            int    count       = db.Users
                                 .Where(u => u.EmailAddress.EndsWith(emailDomain))
                                 .Delete();
        }
 public IEnumerable <Position> GetLatestPositionsForSession(string sessionKey)
 {
     using (var dbContext = new TrackerContext())
     {
         return(dbContext.Users.Include(x => x.Session)
                .Include(x => x.Positions).ToList()
                .Where(x => x.Session.Key == sessionKey && x.Positions != null && x.Positions.Count > 0)
                .Select(user => user.Positions.OrderByDescending(x => x.Timestamp).First()).ToList());
     }
 }
Example #24
0
        public void UpdateCopy()
        {
            var    db          = new TrackerContext();
            string emailDomain = "@test.com";

            int count = db.Users
                        .Where(u => u.EmailAddress.EndsWith(emailDomain))
                        .Update(u => new User {
                Comment = u.LastName
            });
        }
Example #25
0
        public void DeleteWhere()
        {
            var    db          = new TrackerContext();
            string emailDomain = "@test.com";

            //var user = db.Users.Select(u => new User { FirstName = u.FirstName, LastName = u.LastName });

            int count = db.Users
                        .Where(u => u.EmailAddress.EndsWith(emailDomain))
                        .Delete();
        }
Example #26
0
        public void Refresh()
        {
            AuditConfiguration.Default.IncludeRelationships = true;
            AuditConfiguration.Default.LoadRelationships    = true;

            AuditConfiguration.Default.IsAuditable <Task>();
            AuditConfiguration.Default.IsAuditable <User>().NotAudited(p => p.Avatar);

            var db    = new TrackerContext();
            var audit = db.BeginAudit();

            var user = new User();

            user.EmailAddress     = string.Format("email.{0}@test.com", DateTime.Now.Ticks);
            user.CreatedDate      = DateTime.Now;
            user.ModifiedDate     = DateTime.Now;
            user.PasswordHash     = DateTime.Now.Ticks.ToString();
            user.PasswordSalt     = "abcde";
            user.IsApproved       = false;
            user.LastActivityDate = DateTime.Now;

            db.Users.Add(user);

            var log = audit.CreateLog();

            Assert.IsNotNull(log);
            foreach (var property in log.Entities.SelectMany(e => e.Properties))
            {
                Assert.AreNotEqual(property.Current, "{error}");
                Assert.AreNotEqual(property.Original, "{error}");
            }

            string beforeXml = log.ToXml();

            Assert.IsNotNull(beforeXml);

            db.SaveChanges();

            log.Refresh();
            foreach (var property in log.Entities.SelectMany(e => e.Properties))
            {
                Assert.AreNotEqual(property.Current, "{error}");
                Assert.AreNotEqual(property.Original, "{error}");
            }

            string afterXml = log.ToXml();

            Assert.IsNotNull(afterXml);

            var lastLog = audit.LastLog;
            var lastXml = lastLog.Refresh().ToXml();

            Assert.IsNotNull(lastXml);
        }
Example #27
0
        static void Main(string[] args)
        {
            using (var dbContext = new TrackerContext())
            {
                Console.WriteLine("Sessions: " + dbContext.Sessions.Count());
                Console.WriteLine("Users: " + dbContext.Users.Count());
                Console.WriteLine("Positions: " + dbContext.Positions.Count());
            }

            Console.ReadLine();
        }
Example #28
0
        public void FromCacheFirstOrDefaultTest()
        {
            var db   = new TrackerContext();
            var role = db.Roles.FromCacheFirstOrDefault();

            role.Should().NotBeNull();

            var role2 = db.Roles.FromCacheFirstOrDefault();

            role2.Should().NotBeNull();
        }
Example #29
0
        public void FromCacheTest()
        {
            var db    = new TrackerContext();
            var roles = db.Roles.FromCache();

            roles.Should().NotBeEmpty();

            var roles2 = db.Roles.FromCache();

            roles2.Should().NotBeEmpty();
        }
Example #30
0
        public void DeleteWhereWithExpressionContainingNullParameter()
        {
            var    db          = new TrackerContext();
            string emailDomain = "@test.com";
            string optionalComparisonString = null;

            // This test verifies that the delete is processed correctly when the where expression uses a parameter with a null parameter
            int count = db.Users
                        .Where(u => u.EmailAddress.EndsWith(emailDomain) && (string.IsNullOrEmpty(optionalComparisonString) || u.AvatarType == optionalComparisonString))
                        .Delete();
        }