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); }
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(); }
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 })); } }