Ejemplo n.º 1
0
        public async Task EditShouldSucceed()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "EditPropertiesTestDb").Options;

            using var dbContext = new ApplicationDbContext(options);

            var propertyId   = 5;
            var propertyName = $"Property with ID {propertyId}";

            dbContext.Properties.Add(new Property()
            {
                Id   = propertyId,
                Name = propertyName,
            });
            await dbContext.SaveChangesAsync();

            using var propertyRepository = new EfDeletableEntityRepository <Property>(dbContext);
            var propertiesService = new PropertiesService(propertyRepository);

            var editedName = $"Edited Property with ID {propertyId}";

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

            var property = propertiesService.EditAsync(propertyId, model);

            var editedPropety = dbContext.Properties.FirstOrDefault(p => p.Id == propertyId);

            Assert.NotNull(editedPropety);
            Assert.Equal(editedName, editedPropety.Name);
        }
Ejemplo n.º 2
0
        public async Task EditAsync(int id, EditPropertiesViewModel input)
        {
            var property = this.propertiesRepository.All().FirstOrDefault(x => x.Id == id);

            property.Name    = input.Name;
            property.Address = input.Address;
            property.Owner   = input.Owner;
            property.Type    = input.Type;
            property.Size    = input.Size;
            await this.propertiesRepository.SaveChangesAsync();
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Edit(int id, EditPropertiesViewModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View());
            }

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

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