示例#1
0
        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());
            }
        }
示例#2
0
        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();
        }
示例#3
0
        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());
            }
        }
示例#4
0
        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);
        }