Esempio n. 1
0
        private async void Profiles_ComboBox_ItemClicked(object sender, ComboBoxItemContainer item)
        {
            if (await ConfirmLeave((FrameworkElement)sender) == false)
            {
                return;
            }

            var ctx          = new SaveData.SaveData();
            var profile      = (SaveData.Models.Profile)item.DataContext;
            var panelButtons = ctx.PanelButtons.Where(p => p.Profile.Id == profile.Id);
            var formData     = new EditorFormData {
                Profile      = profile,
                PanelButtons = panelButtons
            };

            LoadProfile(formData);
            _hasUnsavedChanges = false;

            Profiles_ComboBox.Close();
            BlockNavigator.NavigateBack((FrameworkElement)sender);
        }
Esempio n. 2
0
        /// <summary>
        /// Binds grid with properties.
        /// </summary>
        private void BindProperties()
        {
            // Clear rows
            grdUserProperties.Rows.Clear();

            // Create list of AD properties
            List <ComboBoxItemContainer> attributeList = new List <ComboBoxItemContainer>();

            switch (ImportProfile.BindingEditorMode)
            {
            case BindingEditorMode.Simple:
                foreach (string attr in ADSimpleUserProperties)
                {
                    string attrName = ResHelper.GetString("ADAttribute_" + attr);
                    if (attr != ADProvider.NoneAttribute)
                    {
                        attrName += " (" + attr + ")";
                    }
                    ComboBoxItemContainer container = new ComboBoxItemContainer(attrName, attr);
                    attributeList.Add(container);
                }
                break;

            case BindingEditorMode.Advanced:
                // Add 'none' item
                attributeList.Add(new ComboBoxItemContainer(ResHelper.GetString("ADAttribute_" + ADProvider.NoneAttribute), ADProvider.NoneAttribute));

                // Add non-culture-specific attributes
                attributeList.AddRange(ADProvider.GetUserAttributes().Select(attribute => new ComboBoxItemContainer(attribute, attribute)));
                break;
            }


            // Sort attributes alphabetically
            attributeList.Sort((c1, c2) => CMSString.Compare(c1.DisplayMember, c2.DisplayMember, StringComparison.OrdinalIgnoreCase));

            if (CMSUserProperties.Count == 0)
            {
                // Load user data class
                DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(UserInfo.OBJECT_TYPE);

                // Load columns from the user data class
                LoadColumns(dci);

                // Load user settings data class
                dci = DataClassInfoProvider.GetDataClassInfo(UserSettingsInfo.OBJECT_TYPE);

                // Load columns from the user settings data class
                LoadColumns(dci);

                // Sort properties by name
                CMSUserProperties.Sort();
            }

            // Create default preselection
            if (ImportProfile.UserProperties.Count == 0)
            {
                ImportProfile.UserProperties.Add("FirstName", "givenName");
                ImportProfile.UserProperties.Add("MiddleName", "middleName");
                ImportProfile.UserProperties.Add("LastName", "sn");
                ImportProfile.UserProperties.Add("Email", "mail");
            }

            foreach (string property in CMSUserProperties)
            {
                // Create new row
                DataGridViewRow dr = new DataGridViewRow();

                // Create cell with CMS property
                DataGridViewTextBoxCell cmsProp = new DataGridViewTextBoxCell();
                cmsProp.Value = property;

                // Create cell with AD attributes
                DataGridViewComboBoxCell adAttr = new DataGridViewComboBoxCell();

                // Bind combobox cell
                adAttr.DisplayMember = "DisplayMember";
                adAttr.ValueMember   = "ValueMember";
                adAttr.DataSource    = attributeList;

                // Preselect values based on import profile
                if (ImportProfile.UserProperties.ContainsKey(property))
                {
                    string val = ImportProfile.UserProperties[property];
                    if (!chkAllAttributes.Checked && !ADSimpleUserProperties.Contains(val))
                    {
                        // Add values selected in advanced mode
                        attributeList.Add(new ComboBoxItemContainer(val, val));
                    }

                    adAttr.Value = val;
                }
                else
                {
                    // Set empty mapping
                    adAttr.Value = ADProvider.NoneAttribute;
                }

                // Add both cells to datarow
                dr.Cells.Add(cmsProp);
                dr.Cells.Add(adAttr);

                // Set CMS property read-only
                cmsProp.ReadOnly = true;

                // Add row to DataGridView
                grdUserProperties.Rows.Add(dr);
            }
        }