public async Task <ActionResult <MaterialVm> > PutMaterial(short id, MaterialUpdateRequest materialUpdateRequest) { var material = await _context.Materials.FirstOrDefaultAsync(x => x.ID == id); material.Name = materialUpdateRequest.Name; material.Status = materialUpdateRequest.Status; if (id != material.ID) { return(BadRequest()); } _context.Entry(material).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MaterialExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task UpdateMaterial_Success() { var dbContext = _fixture.Context; Material oldMaterial = new Material { Name = "Test material" }; await dbContext.Materials.AddAsync(oldMaterial); await dbContext.SaveChangesAsync(); MaterialUpdateRequest newMaterial = new MaterialUpdateRequest { Name = "Test1 material" }; var controller = new MaterialsController(dbContext); var result = await controller.PutMaterial(1, newMaterial); var updatAtActionResult = Assert.IsType <OkObjectResult>(result.Result); var resultValue = Assert.IsType <MaterialUpdateRequest>(updatAtActionResult.Value); Assert.Equal(oldMaterial.Name, resultValue.Name); Assert.Equal(oldMaterial.Name, newMaterial.Name); }
public IActionResult UpdateMaterialMasterData(int id, [FromBody] MaterialUpdateRequest materialUpdateRequest) { if (materialUpdateRequest == null || string.IsNullOrWhiteSpace(materialUpdateRequest.Name) || string.IsNullOrWhiteSpace(materialUpdateRequest.Manufacturer) || string.IsNullOrWhiteSpace(materialUpdateRequest.ManufacturerId) || string.IsNullOrWhiteSpace(materialUpdateRequest.Type)) { return(HandleBadRequest("Incomplete or invalid material data submitted for update.")); } // Check for material type validity Plastic plastic = null; try { plastic = PlasticsService.GetPlastic(materialUpdateRequest.Type); } catch (PlasticNotFoundException exception) { return(HandleBadRequest(exception.Message)); } // Proceed with updating try { Material material = MaterialsService.UpdateMaterial(id, materialUpdateRequest.Name, materialUpdateRequest.Manufacturer, materialUpdateRequest.ManufacturerId, plastic); return(Ok(material)); } catch (MaterialNotFoundException exception) { return(HandleResourceNotFoundException(exception)); } catch (Exception exception) { return(HandleUnexpectedException(exception)); } }