public async Task UpdateAsync(int id, EditRigInputModel input) { var rig = this.rigsRepository.All() .FirstOrDefault(r => r.Id == id); rig.Name = input.Name; rig.Description = input.Description; await this.rigsRepository.SaveChangesAsync(); }
public async Task <IActionResult> Edit(int id, EditRigInputModel input) { var currentUserId = this.User.FindFirst(ClaimTypes.NameIdentifier).Value; var rigOwnerId = this.rigsService.GetRigOwnerId(id); var isAdministrator = this.User.IsInRole(GlobalConstants.AdministratorRoleName); if (currentUserId != rigOwnerId && !isAdministrator) { return(this.NotFound()); } if (!this.ModelState.IsValid) { return(this.View(input)); } await this.rigsService.UpdateAsync(id, input); return(this.RedirectToAction(nameof(this.ById), new { id })); }
public async Task UpdateAsyncShouldWorkCorrect() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; using var db = new ApplicationDbContext(options); var rigRepository = new EfDeletableEntityRepository <Rig>(db); var service = new RigsService(null, rigRepository); await rigRepository.AddAsync(new Rig { Id = 22, Steps = new List <Step> { new Step() }, Description = "initial test description", Name = "initial name", OwnerId = "t1t2t3", }); await rigRepository.SaveChangesAsync(); var input = new EditRigInputModel { Name = "updated name", Description = "updated description", }; await service.UpdateAsync(22, input); await rigRepository.SaveChangesAsync(); AutoMapperConfig.RegisterMappings(typeof(RigModel).Assembly); var rig = service.GetById <RigModel>(22); Assert.Equal("updated name", rig.Name); Assert.Equal("updated description", rig.Description); }