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; }
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"; }
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(); }