protected virtual void OnPlacesChanged(PlaceChangedEventArgs e) { if (PlacesChanged != null) PlacesChanged(this, e); }
private void Owner_PlacesChanged(object sender, PlaceChangedEventArgs e) { if (comboPlaces.InvokeRequired) { comboPlaces.BeginInvoke(new EventHandler<PlaceChangedEventArgs>(Owner_PlacesChanged), sender, e); return; } // if (Messenger.Owner.Places.Count > 1) { comboPlaces.BeginUpdate(); comboPlaces.Items.Clear(); comboPlaces.Items.Add("(" + Messenger.Owner.PlaceCount + ") Places"); comboPlaces.Items.Add("Signout from here (" + Messenger.Owner.EpName + ")"); comboPlaces.Items.Add("Signout from everywhere"); Dictionary<Guid, EndPointData> copyPlaces = new Dictionary<Guid, EndPointData>(Messenger.Owner.EndPointData); foreach (KeyValuePair<Guid, EndPointData> keyvalue in copyPlaces) { PrivateEndPointData ipep = keyvalue.Value as PrivateEndPointData; if (ipep.Id != NSMessageHandler.MachineGuid) comboPlaces.Items.Add(ipep.Name + " " + ipep.Id); } comboPlaces.SelectedIndex = 0; comboPlaces.Visible = true; comboPlaces.EndUpdate(); } }
internal void SetChangedPlace(PlaceChangedEventArgs e) { Trace.WriteLineIf(Settings.TraceSwitch.TraceVerbose, "The account " + e.EndPointData.Account + " was " + e.Reason + " at another place: " + e.PlaceName + " " + e.EndPointData.Id, GetType().Name); bool triggerEvent = false; lock (SyncObject) { switch (e.Reason) { case PlaceChangedReason.SignedIn: lock (SyncObject) EndPointData[e.EndPointData.Id] = e.EndPointData; triggerEvent = true; break; case PlaceChangedReason.SignedOut: lock (SyncObject) { if (EndPointData.ContainsKey(e.EndPointData.Id)) { EndPointData.Remove(e.EndPointData.Id); triggerEvent = true; } } break; } } if (triggerEvent) { OnPlacesChanged(e); } }