예제 #1
0
        /// <summary>
        /// Converts <see cref="MISTATUS"/> to <see cref="MessengerStatus"/>
        /// </summary>
        internal static MessengerStatus ToStatus(MISTATUS status)
        {
            switch (status)
            {
            // Online
            case MISTATUS.MISTATUS_ONLINE: return(MessengerStatus.Online);

            //Away
            case MISTATUS.MISTATUS_IDLE:
            case MISTATUS.MISTATUS_AWAY: return(MessengerStatus.Away);

            case MISTATUS.MISTATUS_BE_RIGHT_BACK: return(MessengerStatus.BeRightBack);

            case MISTATUS.MISTATUS_OUT_TO_LUNCH: return(MessengerStatus.OutToLunch);

            //Busy
            case MISTATUS.MISTATUS_BUSY: return(MessengerStatus.Busy);

            case MISTATUS.MISTATUS_ON_THE_PHONE: return(MessengerStatus.OnThePhone);

            //Offline
            case MISTATUS.MISTATUS_OFFLINE: return(MessengerStatus.Offline);

            case MISTATUS.MISTATUS_INVISIBLE: return(MessengerStatus.Invisible);

            default: return(MessengerStatus.Unknown);
            }
        }
예제 #2
0
 private static Status Translate(MISTATUS status)
 {
     return(status == MISTATUS.MISTATUS_IN_A_CONFERENCE ||
            status == MISTATUS.MISTATUS_BUSY ||
            status == MISTATUS.MISTATUS_DO_NOT_DISTURB ||
            status == MISTATUS.MISTATUS_IN_A_MEETING ||
            status == MISTATUS.MISTATUS_ON_THE_PHONE
                ? Status.InMeeting
                : Status.NotInMeeting);
 }
예제 #3
0
        static void _messenger_OnContactStatusChange(object pMContact, MISTATUS mStatus)
        {
            Console.WriteLine("\n***Contact Updated Status Change at {0}", DateTime.Now.ToString());

            // Your code to work with presence goes here...
            Console.WriteLine("\n***OnContactStatusChange***");

            DisplayContactPresence((IMessengerContactAdvanced)pMContact);

            InsertContactInfo((IMessengerContactAdvanced)pMContact);
        }
예제 #4
0
        void OnContactStatusChange(Object eventContactObject, MISTATUS eventStatus)
        {
            IMessengerContact eventContact = eventContactObject as IMessengerContact;

            if ((null == eventContact) || (eventContact.SigninName != contact.SigninName))
            {
                return;
            }

            AvailabilityChanged(this, new EventArgs());
        }
예제 #5
0
 static void _messenger_OnMyStatusChange(int hr, MISTATUS mMyStatus)
 {
     Console.WriteLine("\n***OnMyStatusChange***");
     DisplayContactPresence((IMessengerContactAdvanced)
                            _messenger.GetContact(_messenger.MySigninName, _messenger.MyServiceId));
 }
예제 #6
0
        static string GetStatusString(MISTATUS mStatus)
        {
            switch (mStatus)
            {
            case MISTATUS.MISTATUS_ALLOW_URGENT_INTERRUPTIONS:
                return("Urgent interuptions only");

            case MISTATUS.MISTATUS_AWAY:
                return("Away");

            case MISTATUS.MISTATUS_BE_RIGHT_BACK:
                return("Be right back");

            case MISTATUS.MISTATUS_BUSY:
                return("Busy");

            case MISTATUS.MISTATUS_DO_NOT_DISTURB:
                return("Do no disturb");

            case MISTATUS.MISTATUS_IDLE:
                return("Idle");

            case MISTATUS.MISTATUS_INVISIBLE:
                return("Invisible");

            case MISTATUS.MISTATUS_IN_A_CONFERENCE:
                return("In a conference");

            case MISTATUS.MISTATUS_IN_A_MEETING:
                return("In a meeting");

            case MISTATUS.MISTATUS_LOCAL_CONNECTING_TO_SERVER:
                return("Connecting to server");

            case MISTATUS.MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER:
                return("Disconnecting from server");

            case MISTATUS.MISTATUS_LOCAL_FINDING_SERVER:
                return("Finding server");

            case MISTATUS.MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER:
                return("Synchronizing with server");

            case MISTATUS.MISTATUS_MAY_BE_AVAILABLE:
                return("Inactive");

            case MISTATUS.MISTATUS_OFFLINE:
                return("Offline");

            case MISTATUS.MISTATUS_ONLINE:
                return("Online");

            case MISTATUS.MISTATUS_ON_THE_PHONE:
                return("In a call");

            case MISTATUS.MISTATUS_OUT_OF_OFFICE:
                return("Out of office");

            case MISTATUS.MISTATUS_OUT_TO_LUNCH:
                return("Out to lunch");

            case MISTATUS.MISTATUS_UNKNOWN:
                return("Unknown");

            default:
                return("Indeterminate");
            }
        }
예제 #7
0
        private void communicator_OnContactStatusChange(object pMContact, MISTATUS mStatus)
        {
            IMessengerContactAdvanced contact = (IMessengerContactAdvanced)pMContact;

            if (m_SubscribedContacts.ContainsKey(contact.SigninName.ToLower()))
            {
                StatusChangedEventArgs args = new StatusChangedEventArgs();
                args.Email = contact.SigninName.ToLower();
                args.CurrentStatus = MistatusToFoosStatus(contact.Status);
                args.TimeOfChange = DateTime.Now;
                OnStatusChanged(args);
            }
        }
예제 #8
0
 private static Status MistatusToFoosStatus(MISTATUS miStatus)
 {
     switch (miStatus)
     {
         case MISTATUS.MISTATUS_ONLINE:
         case MISTATUS.MISTATUS_IDLE:
         case MISTATUS.MISTATUS_IN_A_MEETING:
         case MISTATUS.MISTATUS_MAY_BE_AVAILABLE:
             return Status.Available;
         case MISTATUS.MISTATUS_OFFLINE:
             return Status.Offline;
         case MISTATUS.MISTATUS_UNKNOWN:
             return Status.Unknown;
         default:
             return Status.Busy;
     }
 }
 static void messenger_OnContactStatusChange(dynamic contact, MISTATUS mStatus)
 {
     Console.WriteLine(contact.FriendlyName + " " + mStatus.ToString());
 }
예제 #10
0
        void OnContactStatusChange(Object eventContactObject, MISTATUS eventStatus)
        {
            IMessengerContact eventContact = eventContactObject as IMessengerContact;
            if ((null == eventContact) || (eventContact.SigninName != contact.SigninName))
            {
                return;
            }

            AvailabilityChanged(this, new EventArgs());
        }