public IHttpActionResult Put([FromBody] List <UpdateFunctionalAreaFaultTypeStatusModel> request) { if (request is null || !request.Any() || !ModelState.IsValid) { return(BadRequest(ModelState)); } if (request.Select(c => c.FaultTypeId).Distinct().Count() != request.Count) { return(BadRequest("FaultTypeId must be unique")); } var groupedUpdateList = request.GroupBy(u => u.FunctionalAreaId).Select(grp => grp.ToList()).ToList(); foreach (var listfunctionalAreaFaulType in groupedUpdateList) { var functionalArea = _functionalAreaRepository.Find((Guid)listfunctionalAreaFaulType.First().FunctionalAreaId); if (functionalArea != null) { listfunctionalAreaFaulType.ForEach(fa => functionalArea.FaultTypes.Find(f => f.Id == fa.FaultTypeId).IsSelected = (bool)fa.IsSelected); _functionalAreaRepository.UpdateFaultTypesSelections(functionalArea); } } return(Ok()); }