public async Task <DTO.TenantInfoDTO> AddTenant(DTO.TenantInfoDTO info) { var emailAlreadyExists = await _context.Tenants .Where(t => t.Email.ToLower() == info.Email.ToLower()) .CountAsync() > 0; if (emailAlreadyExists) { return(null); } if (info == null) { return(null); } var tenant = new Tenant(); tenant.FirstName = info.FirstName; tenant.LastName = info.LastName; tenant.Email = info.Email; tenant.PhoneNumber = info.PhoneNumber; _context.Add(tenant); await _context.SaveChangesAsync(); await AssignToUnit(tenant.TenantId, info.UnitNumber); await _context.SaveChangesAsync(); return(new DTO.TenantInfoDTO(tenant, info.UnitNumber)); }
public async void BuildsDTO() { var options = TestUtil.GetMemDbOptions("OpensMaintenanceRequest"); AptMgmtPortalAPI.DTO.MaintenanceRequestDTO dto; AptMgmtPortalAPI.Entity.MaintenanceRequest req; using (var db = new AptMgmtDbContext(options)) { var mock = new Mock <ILogger <UserRepository> >(); ILogger <UserRepository> logger = mock.Object; User user = TestUtil.NewUser(db); var repo = (IUser) new UserRepository(logger, db); req = new AptMgmtPortalAPI.Entity.MaintenanceRequest(); req.MaintenanceRequestId = 999; req.OpeningUserId = user.UserId; db.Add(req); db.SaveChanges(); dto = await AptMgmtPortalAPI.DTO.MaintenanceRequestDTO.Build(req, repo); } Assert.Equal(req.MaintenanceRequestId, dto.MaintenanceRequestId); }
public async Task <DataModel.Agreement> SignAgreement(int tenantId, int agreementId, DateTime startDate, DateTime endDate) { var agreement = await _context.Agreements .Where(a => a.AgreementId == agreementId) .FirstOrDefaultAsync(); if (agreement == null) { return(null); } var signedAgreement = new SignedAgreement(); signedAgreement.TenantId = tenantId; signedAgreement.AgreementId = agreementId; signedAgreement.SignedDate = DateTime.Now; signedAgreement.StartDate = startDate; signedAgreement.EndDate = endDate; _context.Add(signedAgreement); await _context.SaveChangesAsync(); return(new DataModel.Agreement { AgreementId = signedAgreement.AgreementId, Title = agreement.Title, Text = agreement.Text, SignedDate = signedAgreement.SignedDate, StartDate = signedAgreement.StartDate, EndDate = signedAgreement.EndDate, }); }
public static Tenant NewTenant(AptMgmtDbContext context) { var tenant = new Tenant(); context.Add(tenant); context.SaveChanges(); return(tenant); }
public static User NewUser(AptMgmtDbContext context) { var user = new User(); context.Add(user); context.SaveChanges(); return(user); }
public static Unit NewUnit(AptMgmtDbContext context) { var unit = new Unit(); unit.UnitNumber = "3111"; unit.TenantId = TestUtil.NewTenant(context).TenantId; context.Add(unit); context.SaveChanges(); return(unit); }
public static AgreementTemplate NewAgreement(AptMgmtDbContext context, string title) { var agreement = new AgreementTemplate(); agreement.Title = title; context.Add(agreement); context.SaveChanges(); return(agreement); }
public static Unit NewUnit(AptMgmtDbContext context, string unitNumber) { var unit = new Unit(); unit.UnitNumber = unitNumber; context.Add(unit); context.SaveChanges(); return(unit); }
public static User NewUserWithAnAPIKey(AptMgmtDbContext context) { var user = new User { ApiKey = "test-key100" }; context.Add(user); context.SaveChanges(); return(user); }
public static Tenant NewTenant(AptMgmtDbContext context) { var tenant = new Tenant(); tenant.FirstName = "testFirstName"; tenant.Email = "*****@*****.**"; tenant.UserId = TestUtil.NewUser(context).UserId; context.Add(tenant); context.SaveChanges(); return(tenant); }
public static Payment NewPayment(AptMgmtDbContext context, int tenantId) { var payment = new Payment(); payment.TenantId = tenantId; context.Add(payment); context.SaveChanges(); return(payment); }
public static (AptMgmtPortalAPI.DTO.UserDTO, Tenant) UserInfoAndTenantForUserRepo(AptMgmtDbContext context) { var userInfo = TestUtil.NewUserDtoWithCredential(context); var tenant = new Tenant { Email = "testUser", UserId = userInfo.UserId, FirstName = "original first name", }; context.Add(tenant); context.SaveChanges(); return(userInfo, tenant); }
public static BillingPeriod NewBillingPeriod(AptMgmtDbContext context) { var period = new BillingPeriod(); var timeSpan = new TimeSpan(0, 0, 5); // All test data is 2 years into the future. var testPeriod = new TimeSpan(730, 0, 0, 0); period.PeriodStart = DateTime.Now + testPeriod - timeSpan; period.PeriodEnd = DateTime.Now + testPeriod + timeSpan; context.Add(period); context.SaveChanges(); return(period); }
public static ResourceUsageRate NewResourceRate(AptMgmtDbContext context, double rate, ResourceType resource, BillingPeriod period) { var newRate = new ResourceUsageRate(); newRate.PeriodStart = period.PeriodStart; newRate.PeriodEnd = period.PeriodEnd; newRate.Rate = rate; newRate.ResourceType = resource; context.Add(newRate); context.SaveChanges(); return(newRate); }
public static Agreement SignAgreement(AptMgmtDbContext context, int agreementId, int tenantId) { // All test data is 2 years into the future. var testPeriod = new TimeSpan(730, 0, 0, 0); var signedAgreement = new Agreement(); signedAgreement.TenantId = tenantId; signedAgreement.AgreementTemplateId = agreementId; signedAgreement.SignedDate = DateTime.Now; signedAgreement.StartDate = DateTime.Now + testPeriod - new TimeSpan(0, 0, 5); signedAgreement.EndDate = DateTime.Now + testPeriod + new TimeSpan(0, 0, 5); context.Add(signedAgreement); context.SaveChanges(); return(signedAgreement); }
public static TenantResourceUsage UseResource(AptMgmtDbContext context, int tenantId, double amount, ResourceType resourceType) { // All test data is 2 years into the future. var testPeriod = new TimeSpan(730, 0, 0, 0); var consumedResource = new TenantResourceUsage { SampleTime = DateTime.Now + testPeriod, UsageAmount = amount, ResourceType = resourceType, TenantId = tenantId, }; context.Add(consumedResource); context.SaveChanges(); return(consumedResource); }
public async void GetsProjectedResourceUsages() { var options = TestUtil.GetMemDbOptions("GetsProjectedResourceUsages"); var testPeriod = new TimeSpan(730, 0, 0, 0); Tenant tenant; BillingPeriod period; using (var db = new AptMgmtDbContext(options)) { var repo = (ITenant) new TenantRepository(db); tenant = TestUtil.NewTenant(db); TestUtil.UseResource(db, tenant.TenantId, 5, ResourceType.Power); TestUtil.UseResource(db, tenant.TenantId, 5, ResourceType.Power); period = new BillingPeriod(); var timeSpan = new TimeSpan(5, 0, 0, 0); // All test data is 2 years into the future. period.PeriodStart = DateTime.Now + testPeriod - timeSpan; period.PeriodEnd = DateTime.Now + testPeriod + timeSpan; db.Add(period); db.SaveChanges(); TestUtil.NewResourceRate(db, 1, ResourceType.Power, period); TestUtil.NewResourceRate(db, 2, ResourceType.Water, period); } using (var db = new AptMgmtDbContext(options)) { var repo = (IBill) new BillRepository(db); var projected = await repo.GetProjectedResourceUsages(tenant.TenantId, period, DateTime.Now + testPeriod); projected = projected.ToList(); // Number will drift slightly due to DateTime.Now calls, round the total to get answer. Assert.Equal(18, Math.Round(projected.ElementAt(0).ProjectedCost())); } }
public async Task <DTO.TenantInfoDTO> AddTenant(DTO.TenantInfoDTO info) { if (info == null) { return(null); } var tenant = new Tenant(); tenant.FirstName = info.FirstName; tenant.LastName = info.LastName; tenant.Email = info.Email; tenant.PhoneNumber = info.PhoneNumber; _context.Add(tenant); await AssignToUnit(tenant.TenantId, info.UnitNumber); await _context.SaveChangesAsync(); return(new DTO.TenantInfoDTO(tenant, info.UnitNumber)); }
public async void EditsUserInfoWithId() { var options = TestUtil.GetMemDbOptions("EditsUserInfo"); var mock = new Mock <ILogger <UserRepository> >(); AptMgmtPortalAPI.Entity.User user; using (var db = new AptMgmtDbContext(options)) { var repo = (IUser) new UserRepository(mock.Object, db); var userInfo = TestUtil.NewUserDtoWithCredential(db); var tenant = new Tenant { Email = "testUser", UserId = userInfo.UserId, FirstName = "original first name", }; db.Add(tenant); db.SaveChanges(); user = await repo.NewUser(userInfo); } using (var db = new AptMgmtDbContext(options)) { var repo = (IUser) new UserRepository(mock.Object, db); var newName = "new first name"; var userInfo = new AptMgmtPortalAPI.DTO.UserDTO(); userInfo.FirstName = newName; userInfo.LoginName = user.LoginName; userInfo.Password = user.Password; var newInfo = await repo.UpdateUserInfo(user.UserId, userInfo); Assert.Equal(newName, newInfo.FirstName); } }