Exemplo n.º 1
0
        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));
        }