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(); }); }
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); }
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); }
public void Initialize() { fixture = new Fixture(); WebApplicationFactory = new CustomWebApplicationFactory(); httpClient = WebApplicationFactory.Server.CreateClient(); TrackerContext = WebApplicationFactory.TrackerContext; }
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)); }
public void Delete() { var db = new TrackerContext(); string emailDomain = "@test.com"; int count = db.Users .Delete(u => u.EmailAddress.EndsWith(emailDomain)); }
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); }
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(); }
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(); }
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); }
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(); }
public NutritionRepository() { try { _db = new TrackerContext(); } catch (Exception e) { Debug.WriteLine($"Could not connect to database, error: {e.Message}.\n\nException type: {e.GetType()}"); } }
public UnitOfWork(TrackerContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } _context = context; }
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}"); } }
public void AddDeveloper(Developer developer) { var dc = new TrackerContext(); dc.Developers.Add(developer); dc.SaveChanges(); Clients.All.developerAdded(developer); }
public async void DeleteAsync() { var db = new TrackerContext(); string emailDomain = "@test.com"; int count = await db.Users .Where(u => u.EmailAddress.EndsWith(emailDomain)) .DeleteAsync(); }
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()); } }
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 }); }
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(); }
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); }
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(); }
public void FromCacheFirstOrDefaultTest() { var db = new TrackerContext(); var role = db.Roles.FromCacheFirstOrDefault(); role.Should().NotBeNull(); var role2 = db.Roles.FromCacheFirstOrDefault(); role2.Should().NotBeNull(); }
public void FromCacheTest() { var db = new TrackerContext(); var roles = db.Roles.FromCache(); roles.Should().NotBeEmpty(); var roles2 = db.Roles.FromCache(); roles2.Should().NotBeEmpty(); }
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(); }