public override int?Save(string action) { var data = new FieldConfigurationDataModel(); data.FieldConfigurationId = FieldConfigurationId; data.SystemEntityTypeId = SystemEntityTypeId; data.ApplicationId = ApplicationId; data.FieldConfigurationDisplayName = DisplayName; data.Name = Name; data.Value = Value; data.Width = Width; data.Formatting = Formatting; data.ControlType = ControlType; data.HorizontalAlignment = HorizontalAlignment; data.GridViewPriority = GridViewPriority; data.DetailsViewPriority = DetailsViewPriority; data.FieldConfigurationModeId = FieldConfigurationModeId; data.DisplayColumn = DisplayColumn; data.CellCount = CellCount; if (action == "Insert") { var dtFieldConfiguration = FieldConfigurationDataManager.DoesExist(data, SessionVariables.RequestProfile); if (dtFieldConfiguration.Rows.Count == 0) { data.FieldConfigurationId = FieldConfigurationDataManager.Create(data, SessionVariables.RequestProfile); var dataDisplayName = new FieldConfigurationDisplayNameDataModel(); dataDisplayName.FieldConfigurationId = data.FieldConfigurationId; dataDisplayName.Value = DisplayName; dataDisplayName.LanguageId = ApplicationCommon.LanguageId; dataDisplayName.IsDefault = 1; FieldConfigurationDisplayNameDataManager.Create(dataDisplayName, SessionVariables.RequestProfile); } else { throw new Exception("Unique Combination already exists."); } } else { FieldConfigurationDataManager.Update(data, SessionVariables.RequestProfile); } FieldConfigurationUtility.SetFieldConfigurations(); // not correct ... when doing insert, we didn't get/change the value of FieldConfigurationId ? return(data.FieldConfigurationId); }