Beispiel #1
0
        public async Task EditShouldSucceed()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "EditTenantsTestDb").Options;

            using var dbContext = new ApplicationDbContext(options);

            var tenantId   = 5;
            var tenantName = "Ivan Ivanov";

            dbContext.Tenants.Add(new Tenant()
            {
                Id   = tenantId,
                Name = tenantName,
            });
            await dbContext.SaveChangesAsync();

            using var tenantRepository   = new EfDeletableEntityRepository <Tenant>(dbContext);
            using var propertyRepository = new EfDeletableEntityRepository <Property>(dbContext);
            var tenantService = new TenantsService(tenantRepository, propertyRepository);

            var editedName = "Petar Petrov";

            var model = new EditTenantsViewModel()
            {
                Name = editedName,
            };

            var tenant = tenantService.EditAsync(tenantId, model);

            var editedTenant = dbContext.Tenants.FirstOrDefault(t => t.Id == tenantId);

            Assert.NotNull(editedTenant);
            Assert.Equal(editedName, editedTenant.Name);
        }
Beispiel #2
0
        public async Task EditAsync(int id, EditTenantsViewModel input)
        {
            var tenant = this.tenantsRepository.All().FirstOrDefault(t => t.Id == id);

            //var property = this.propertyRepository.All().FirstOrDefault(p => p.Id == input.PropertyId);
            tenant.Name        = input.Name;
            tenant.LeasePeriod = input.LeasePeriod;
            tenant.Rate        = input.Rate;
            //tenant.PropertyId = input.PropertyId;
            //tenant.Property = property;
            await this.tenantsRepository.SaveChangesAsync();
        }
        public async Task <IActionResult> Edit(int id, EditTenantsViewModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View());
            }

            try
            {
                await this.tenantsService.EditAsync(id, input);

                return(this.RedirectToAction(nameof(this.ById), new { id }));
            }
            catch (Exception ex)
            {
                return(this.View("Error", new ErrorViewModel {
                    RequestId = ex.Message
                }));
            }
        }