Esempio n. 1
0
 bool ParseRequest(WmOutlookRequest request)
 {
     bool success = false;
     try
     {
         m_kws = Wm.GetKwsByInternalID(request.Cmd.Elements[0].UInt64);
         m_flags = (OAnpType.OanpScreenShareFlags)request.Cmd.Elements[1].UInt32;
         m_hwnd = request.Cmd.Elements[2].UInt32;
         success = RegisterToKws(true);
     }
     catch (Exception ex)
     {
         HandleMiscFailure(ex);
     }
     return success;
 }
Esempio n. 2
0
 public OutlookCreateKwsOp(WorkspaceManager wm, WmOutlookRequest request)
     : base(wm, request, false)
 {
 }
Esempio n. 3
0
 public OutlookSkurlKwsOp(WorkspaceManager wm, WmOutlookRequest request)
     : base(wm, request, true)
 {
 }
Esempio n. 4
0
 public OutlookNewKwsOp(WorkspaceManager wm, WmOutlookRequest request, bool publicKwsFlag)
     : base(wm)
 {
     m_publicKwsFlag = publicKwsFlag;
     RegisterOutlookRequest(request);
 }
Esempio n. 5
0
 private void HandleWorkspaceSubscribe(WmOutlookRequest request)
 {
     (new OutlookWorkspaceSubscribeOp(m_wm, request)).StartOp();
 }
Esempio n. 6
0
 bool ParseRequest(WmOutlookRequest request)
 {
     bool success = false;
     try
     {
         m_kws = Wm.GetKwsByInternalID(request.Cmd.Elements[0].UInt64);
         m_isSubscription = (request.Cmd.Elements[1].UInt32 != 0);
         m_lastEventID = request.Cmd.Elements[2].UInt64;
         success = true;
     }
     catch (Exception ex)
     {
         HandleMiscFailure(ex);
     }
     return success;
 }
Esempio n. 7
0
 public OutlookStartScreenShareOp(WorkspaceManager wm, WmOutlookRequest request)
     : base(wm)
 {
     RegisterOutlookRequest(request);
 }
Esempio n. 8
0
 public OutlookInviteOp(WorkspaceManager wm, Workspace kws, WmOutlookRequest request)
     : base(wm, kws)
 {
     RegisterOutlookRequest(request);
 }
Esempio n. 9
0
 private void HandleLookupRecAddr(WmOutlookRequest request)
 {
     (new OutlookLookupRecAddrOp(m_wm, request)).StartOp();
 }
Esempio n. 10
0
 private void HandleJoinKws(WmOutlookRequest request)
 {
     (new OutlookJoinKwsOp(m_wm, request)).StartOp();
 }
Esempio n. 11
0
        private void HandleIsKwsUser(WmOutlookRequest request)
        {
            UInt64 kwsID = request.Cmd.Elements[0].UInt64;
            UInt32 nbUser = request.Cmd.Elements[1].UInt32;
            List<String> addrList = new List<String>();
            for (UInt32 i = 0; i < nbUser; i++) addrList.Add(request.Cmd.Elements[(int)i + 2].String);

            AnpMsg res = request.MakeReply(OAnpType.OANP_RES_IS_KWS_USER);
            res.AddUInt32(nbUser);
            Workspace kws = m_wm.GetKwsByInternalID(kwsID);

            foreach (String addr in addrList)
            {
                if (kws == null) res.AddUInt32(0);
                else res.AddUInt32(Convert.ToUInt32(kws.CoreData.UserInfo.GetUserByEmailAddress(addr) != null));
            }

            request.SendReply(res);
        }
Esempio n. 12
0
 private void HandleInviteToKws(WmOutlookRequest request)
 {
     UInt64 kwsID = request.Cmd.Elements[0].UInt64;
     Workspace kws = m_wm.GetKwsByInternalID(kwsID);
     if (kws == null || kws.GetRunLevel() != KwsRunLevel.Online)
         throw new Exception("the " + Base.GetKwsString() + " is not available at this time");
     (new OutlookInviteOp(m_wm, kws, request)).StartOp();
 }
Esempio n. 13
0
 private void HandleGetSkurl(WmOutlookRequest request)
 {
     (new OutlookSkurlKwsOp(m_wm, request)).StartOp();
 }
Esempio n. 14
0
 private void HandleCreateKws(WmOutlookRequest request)
 {
     (new OutlookCreateKwsOp(m_wm, request)).StartOp();
 }
Esempio n. 15
0
        /// <summary>
        /// Called by WmOutlookRequest.SendReply().
        /// </summary>
        public void SendReply(WmOutlookRequest request, AnpMsg msg)
        {
            if (request.Status == WmOutlookRequestStatus.Finished) return;

            if (request.Status == WmOutlookRequestStatus.Executing)
            {
                Debug.Assert(RequestTree.ContainsKey(request.MsgID));
                Debug.Assert(m_sessionStatus == OutlookSessionStatus.Open);
                RequestTree.Remove(request.MsgID);
                SendAnpMsgToThread(msg);
            }

            request.Status = WmOutlookRequestStatus.Finished;
        }
Esempio n. 16
0
 public OutlookJoinKwsOp(WorkspaceManager wm, WmOutlookRequest request)
     : base(wm, new KwsCredentials(), wm.UiBroker.Browser.PrimaryFolder.FullPath, true)
 {
     RegisterOutlookRequest(request);
 }
Esempio n. 17
0
 /// <summary>
 /// Set the outlook request reference and listen for its failure.
 /// </summary>
 public virtual void RegisterOutlookRequest(WmOutlookRequest request)
 {
     m_outlookRequest = request;
     m_outlookRequest.OnOutlookFailure += HandleMiscFailure;
 }
Esempio n. 18
0
        private void HandleOpenKws(WmOutlookRequest request)
        {
            UInt64 kwsID = request.Cmd.Elements[0].UInt64;
            Workspace kws = m_wm.GetKwsByInternalID(kwsID);
            if (kws == null || kws.GetRunLevel() < KwsRunLevel.Offline)
                throw new Exception("the " + Base.GetKwsString() + " cannot be displayed at this time");
            request.SendReply(request.MakeReply(OAnpType.OANP_RES_OK));

            m_wm.UiBroker.RequestShowMainForm();
            m_wm.UiBroker.RequestSelectKws(kws, true);
        }
Esempio n. 19
0
 public OutlookLookupRecAddrOp(WorkspaceManager wm, WmOutlookRequest request)
     : base(wm)
 {
     KwsCredentials creds = new KwsCredentials();
     creds.SecureFlag = true;
     m_ih = new KwsInviteOpHelper(this, creds);
     m_ih.FillInviteParamsFromOutlookLookupRecCmd(request.Cmd);
     RegisterOutlookRequest(request);
 }
Esempio n. 20
0
        /// <summary>
        /// Handle a request received from Outlook.
        /// </summary>
        private void HandleOutlookRequest(AnpMsg msg)
        {
            Logging.Log(1, "HandleOutlookRequest() called.");

            if (RequestTree.ContainsKey(msg.ID))
            {
                Logging.Log(2, "Received duplicate Outlook request ID.");
                return;
            }

            // Register the request.
            WmOutlookRequest request = new WmOutlookRequest(this, msg);
            RequestTree[request.MsgID] = request;

            try
            {
                // Validate version.
                if (msg.Major != OAnp.Major || msg.Minor != OAnp.Minor)
                    throw new Exception("Unsupported OANP version " + msg.Major + "." + msg.Minor + ".");

                // Dispatch.
                UInt32 type = msg.Type;
                if (type == OAnpType.OANP_CMD_IS_KWS_USER) HandleIsKwsUser(request);
                else if (type == OAnpType.OANP_CMD_OPEN_KWS) HandleOpenKws(request);
                else if (type == OAnpType.OANP_CMD_JOIN_KWS) HandleJoinKws(request);
                else if (type == OAnpType.OANP_CMD_CREATE_KWS) HandleCreateKws(request);
                else if (type == OAnpType.OANP_CMD_INVITE_TO_KWS) HandleInviteToKws(request);
                else if (type == OAnpType.OANP_CMD_GET_SKURL) HandleGetSkurl(request);
                else if (type == OAnpType.OANP_CMD_LOOKUP_REC_ADDR) HandleLookupRecAddr(request);
                else if (type == OAnpType.OANP_CMD_WORKSPACE_SUBSCRIBE) HandleWorkspaceSubscribe(request);
                else if (type == OAnpType.OANP_CMD_START_SCREEN_SHARE) HandleStartScreenShare(request);
                else throw new Exception("unknown command received");
            }

            catch (Exception ex)
            {
                request.SendFailure(ex.Message);
            }
        }
Esempio n. 21
0
 private void HandleStartScreenShare(WmOutlookRequest request)
 {
     (new OutlookStartScreenShareOp(m_wm, request)).StartOp();
 }
Esempio n. 22
0
 public OutlookWorkspaceSubscribeOp(WorkspaceManager wm, WmOutlookRequest request)
     : base(wm)
 {
     RegisterOutlookRequest(request);
 }