public async Task EditAsyncShouldEditCorrectly() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: "TrainersEditDb").Options; var dbContext = new ApplicationDbContext(options); await dbContext.Trainers.AddAsync( new Trainer { Id = 1, FirstName = "FirstName", LastName = "LastName", Description = "Description", Age = 30, ImageUrl = "ImageUrl", InstagramUrl = "InstagramUrl", PhoneNumber = "0877777777", ProfessionId = 1, }); await dbContext.SaveChangesAsync(); var repository = new EfDeletableEntityRepository <Trainer>(dbContext); var service = new TrainersService(repository); var editModel = new EditTrainerInputServiceModel { FirstName = "First", LastName = "Last", Description = "Description2", Age = 50, ImageUrl = "ImageUrl2", InstagramUrl = "InstagramUrl2", PhoneNumber = "088888888", ProfessionId = 2, }; await service.EditAsync(1, editModel); var result = dbContext.Trainers.FirstOrDefault(x => x.Id == 1); Assert.NotNull(result); Assert.Equal("First", result.FirstName); Assert.Equal("Last", result.LastName); Assert.Equal("Description2", result.Description); Assert.Equal(50, result.Age); Assert.Equal("ImageUrl2", result.ImageUrl); Assert.Equal("InstagramUrl2", result.InstagramUrl); Assert.Equal("088888888", result.PhoneNumber); Assert.Equal(2, result.ProfessionId); }
public async Task EditAsync(int id, EditTrainerInputServiceModel trainerModel) { var trainer = this.trainersRepository.All().Where(t => t.Id == id).FirstOrDefault(); trainer.FirstName = trainerModel.FirstName; trainer.LastName = trainerModel.LastName; trainer.Description = trainerModel.Description; trainer.Age = trainerModel.Age; trainer.InstagramUrl = trainerModel.InstagramUrl; trainer.PhoneNumber = trainerModel.PhoneNumber; trainer.ProfessionId = trainerModel.ProfessionId; if (trainerModel.ImageUrl != null) { trainer.ImageUrl = trainerModel.ImageUrl; } await this.trainersRepository.SaveChangesAsync(); }