public IEnumerable <FeatureViewModel> UpdateAffiliateFeatures(int id, [FromBody] IEnumerable <FeatureViewModel> features) { var existingFeatures = _affiliateService.GetAffiliateFeatures(id).ToList(); foreach (var feature in features) { var existingFeature = existingFeatures.FirstOrDefault(f => f.FeatureID == feature.FeatureID); if (existingFeature != null) { existingFeature.IsEnabled = feature.IsEnabled; foreach (var setting in feature.Settings) { var existingSetting = existingFeature.Settings.FirstOrDefault(s => s.FeatureSettingID == setting.FeatureSettingID); if (existingSetting != null) { existingSetting.Value = setting.Value; } } UpdateAuditData(existingFeature); } } _affiliateService.UpdateAffiliateFeatures(id, existingFeatures); return(GetAffiliateFeatures(id)); }