示例#1
0
        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());
        }