public static List<Gesture> GetGestures(List<UIElement> uiElements)
        {
            var list = uiElements.Join(eventRequests, u => u, e => e.UIElement, (u, e) => e.Gesture).ToList<Gesture>();

            return list;
        }
Beispiel #2
0
        internal void EditBiotaPermissions(TaxonViewModel taxon)
        {
            if (!taxon.TaxaID.HasValue || taxon.TaxaID.Value < 0) {
                ErrorMessage.Show("You must save apply changes before you can proceed.");
                return;
            }

            bool readOnly = !User.HasBiotaPermission(taxon.TaxaID.Value, PERMISSION_MASK.OWNER);

            if (!readOnly) {
                PluginManager.Instance.AddNonDockableContent(Owner, new BiotaPermissions(User, taxon, readOnly), "Taxon Permissions for '" + taxon.TaxaFullName + (readOnly ? "' (Read Only)" : "'"), SizeToContent.Manual);
            } else {
                // Display a readonly version of the permissions...
                var permStr = "";
                string strOwners = "";
                using (new OverrideCursor(Cursors.Wait)) {
                    var service = new SupportService(User);
                    var perms = service.GetBiotaPermissions(User.Username, taxon.TaxaID.Value);
                    var owners = service.getBiotaOwners(taxon.TaxaID.Value);

                    if ((perms.PermMask1 & (int) PERMISSION_MASK.OWNER) != 0) {
                        permStr= "Owner";
                    } else if ((perms.PermMask1 & (int) PERMISSION_MASK.WRITE) != 0) {
                        var rights = new List<String>();
                        if ((perms.PermMask1 & (int) PERMISSION_MASK.INSERT) != 0) {
                            rights.Add("Insert");
                        }
                        if ((perms.PermMask1 & (int) PERMISSION_MASK.UPDATE) != 0) {
                            rights.Add("Update");
                        }
                        if ((perms.PermMask1 & (int) PERMISSION_MASK.DELETE) != 0) {
                            rights.Add("Delete");
                        }
                        permStr = rights.Join(", ");
                    } else {
                        permStr = "Read Only";
                    }

                    var ownerNames = new List<string>();
                    foreach (BiotaOwner owner in owners) {
                        if (!string.IsNullOrWhiteSpace(owner.Name)) {
                            ownerNames.Add(string.Format("{0} ({1})", owner.Name, owner.FullName));
                        }
                    }

                    strOwners = ownerNames.Join(", ");
                    if (string.IsNullOrWhiteSpace(strOwners)) {
                        strOwners = "sa (System Administrator)";
                    }
                }

                InfoBox.Show(string.Format("Permissions: {0}\n\nOwners: {1}", permStr, strOwners), "Permissions for " + taxon.TaxaFullName, this);
            }
        }
        private void DoImport()
        {
            if (String.IsNullOrEmpty(txtFilename.Text)) {
                ErrorMessage.Show("You must select a file before proceeding!");
                return;
            }

            int rowCount = 0;

            var service = new SupportService(User);

            using (var parser = new GenericParserAdapter(txtFilename.Text)) {
                parser.ColumnDelimiter = ',';
                parser.FirstRowHasHeader = chkFirstRowHeaders.IsChecked.GetValueOrDefault(false);
                parser.TextQualifier = '\"';
                parser.FirstRowSetsExpectedColumnCount = true;

                var columnNames = new List<String>();
                var values = new List<string>();
                while (parser.Read()) {
                    if (rowCount == 0) {
                        for (int i = 0; i < parser.ColumnCount; ++i) {
                            if (parser.FirstRowHasHeader) {
                                columnNames.Add(parser.GetColumnName(i));
                            } else {
                                columnNames.Add("Column" + i);
                            }
                        }
                    }
                    values.Clear();
                    for (int i = 0; i < parser.ColumnCount; ++i) {
                        values.Add(parser[i]);
                    }

                    String strFullPath = null;
                    if (values.Count == 0) {
                        strFullPath = values[0];
                    } else {
                        strFullPath = values.Join("\\");
                    }

                    if (!String.IsNullOrWhiteSpace(strFullPath)) {
                        service.GetDistributionIdFromPath(strFullPath);
                        lblProgress.InvokeIfRequired(() => {
                            lblProgress.Content = strFullPath;
                            lblProgress.UpdateLayout();
                        });
                        rowCount++;
                    }
                }
            }

            lblProgress.InvokeIfRequired(() => {
                lblProgress.Content = String.Format("{0} rows processed.", rowCount);
            });
            btnCancel.Content = "_Close";
        }
Beispiel #4
0
        public SpeakerSynchronizer(WPFTranscription Transcription, AdvancedSpeakerCollection SpeakersDatabase)
            : this()
        {
            this._transcription = Transcription;
            this._speakersDatabase = SpeakersDatabase;

            _pairs = _transcription.Speakers
                .OrderBy(s => s.Surname)
                .ThenBy(s => s.FirstName)
                .ThenBy(s => s.MiddleName)
                .Select(s => new SpeakerPair { Speaker1 = new SpeakerContainer(s) })
                .ToList();

            //Join speakers from document with speakers from localDB by fullname and order pairs
            var first = _pairs.Join(_speakersDatabase, p => p.Speaker1.Speaker.FullName.ToLower(), s => s.FullName.ToLower(), (sp, s) => new { document = sp, local = s })
                .Distinct()
                .OrderBy(s => s.local.Surname)
                .ThenBy(s => s.local.FirstName)
                .ThenBy(s => s.local.MiddleName);

            //get all speakers from local DB that was not joined
            var other = _speakersDatabase.Except(first.Select(s => s.local).ToArray())
                .OrderBy(s => s.Surname)
                .ThenBy(s => s.FirstName)
                .ThenBy(s => s.MiddleName);

            //concat all speakers from local DB but ordered to match remaining speakers in document.
            listlocal.ItemsSource = first.Select(s => s.local).Concat(other).ToList();

            //add pairs with order matching to listlocal and concat speakers without matching name in local DB
            listdocument.ItemsSource = _pairs = first.Select(s => s.document)
                                                        .OrderBy(s => s.Speaker1.SurName)
                                                        .ThenBy(s => s.Speaker1.FirstName)
                                                        .ThenBy(s => s.Speaker1.MiddleName)
                                                        .Concat(_pairs.Except(first.Select(s => s.document))).ToList();
        }