public IActionResult Create() { var model = new CreateTenantsViewModel(); try { model.PropertiesItems = this.propertiesService.GetAllAsKeyValuePairs(); return(this.View(model)); } catch (Exception ex) { this.ModelState.AddModelError(string.Empty, ex.Message); return(this.View()); } }
public async Task CreateAsync(CreateTenantsViewModel input) { var property = this.propertyRepository.All().FirstOrDefault(x => x.Id == input.PropertyId); var tenant = new Tenant() { Name = input.Name, Rate = input.Rate, LeasePeriod = input.LeasePeriod, Property = property, ManagerId = input.ManagerId, }; await this.tenantsRepository.AddAsync(tenant); await this.tenantsRepository.SaveChangesAsync(); }
public async Task <IActionResult> Create(CreateTenantsViewModel input) { if (!this.ModelState.IsValid) { return(this.View()); } try { input.ManagerId = this.HttpContext.User.Claims.First(c => c.Type.Contains("nameidentifier")).Value; await this.tenantsService.CreateAsync(input); return(this.Redirect("/")); } catch (Exception ex) { this.ModelState.AddModelError(string.Empty, ex.Message); return(this.View()); } }
public async Task CreateShouldSucceed() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: "CreateTenantsTestDb").Options; using var dbContext = new ApplicationDbContext(options); using var tenantRepository = new EfDeletableEntityRepository <Tenant>(dbContext); using var propertyRepository = new EfDeletableEntityRepository <Property>(dbContext); var tenantsService = new TenantsService(tenantRepository, propertyRepository); var model = new CreateTenantsViewModel() { Name = "Peter", Rate = 1800, LeasePeriod = 12, }; await tenantsService.CreateAsync(model); var createdModel = dbContext.Tenants.FirstOrDefault(p => p.Name == "Peter"); Assert.NotNull(createdModel); }