/// <summary> /// Trata el cambio de estado de un contacto /// </summary> private void TreatChangedStatus(ChangedStatusEventArgs evntArgs) { if (evntArgs.Connection.Host.EqualsTo(Connection.Host) && evntArgs.Contact.EqualsTo(Contact)) { ShowStatus(evntArgs.Contact, evntArgs.NewStatus.Status, evntArgs.NewStatus.Message); } }
/// <summary> /// Trata el cambio de estado de un contacto /// </summary> internal void TreatChangedStatus(ChangedStatusEventArgs evntArgs) { foreach (BaseNodeViewModel nodeConnection in Children) { if ((nodeConnection as ConnectionNodeViewModel)?.Connection.Host.EqualsTo(evntArgs.Connection.Host) ?? true) { foreach (BaseNodeViewModel nodeGroup in nodeConnection.Children) { if (nodeGroup is GroupNodeViewModel) { foreach (BaseNodeViewModel nodeContact in nodeGroup.Children) { if (nodeContact is ContactNodeViewModel node && node.Contact.EqualsTo(evntArgs.Contact)) { node.Availability = evntArgs.NewStatus.Status; } } } } } } }