public void SendChatMessage()
        {
            ExTraceGlobals.OehCallTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageEventHandler.SendChatMessage");
            this.ThowIfInvalidProvider("SendChatMessage");
            string text = (string)base.GetParameter("cId");
            int    chatSessionId;

            if (!int.TryParse(text, out chatSessionId))
            {
                throw new OwaInvalidRequestException("The chat ID format is not valid:" + text);
            }
            InstantMessageProvider.ProviderMessage message = default(InstantMessageProvider.ProviderMessage);
            message.Body          = (string)base.GetParameter("cMsg");
            message.Format        = (string)base.GetParameter("frmt");
            message.ChatSessionId = chatSessionId;
            message.Recipients    = (string[])base.GetParameter("sUris");
            chatSessionId         = base.UserContext.InstantMessageManager.Provider.SendMessage(message);
            this.Writer.WriteLine("{");
            this.Writer.Write("_cid : '");
            this.Writer.Write(chatSessionId.ToString(CultureInfo.InvariantCulture));
            this.Writer.WriteLine("'");
            this.Writer.Write("}");
            if (Globals.ArePerfCountersEnabled)
            {
                OwaSingleCounters.IMTotalInstantMessagesSent.Increment();
            }
        }
        public void SendNewChatMessage()
        {
            ExTraceGlobals.OehCallTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageEventHandler.SendNewChatMessage");
            this.ThowIfInvalidProvider("SendNewChatMessage");
            string[] array = (string[])base.GetParameter("sUris");
            string   text  = (string)base.GetParameter("lDn");
            string   text2 = (array != null && array.Length > 0) ? array[0] : string.Empty;
            string   text3 = null;
            bool     flag  = false;

            if (text != null)
            {
                text3 = this.GetSipUriFromLegacyDn(text, text2);
                this.ThrowIfSipInvalid(text3, false);
                if (text3 != text2)
                {
                    array = new string[]
                    {
                        text3
                    };
                    flag = true;
                }
            }
            int num;

            if (array.Length < 1)
            {
                ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageEventHandler.SendNewChatMessage. Recipients are empty.");
                num = -1;
            }
            else
            {
                InstantMessageProvider.ProviderMessage message = default(InstantMessageProvider.ProviderMessage);
                message.Body       = (string)base.GetParameter("cMsg");
                message.Format     = (string)base.GetParameter("frmt");
                message.Recipients = array;
                int[] addressTypes = new int[1];
                message.AddressTypes = addressTypes;
                if (base.IsParameterSet("iType"))
                {
                    message.AddressTypes[0] = (int)base.GetParameter("iType");
                }
                num = base.UserContext.InstantMessageManager.Provider.SendNewChatMessage(message);
            }
            this.Writer.WriteLine("{");
            if (flag)
            {
                this.Writer.Write("_sip : '");
                this.Writer.Write(text3);
                this.Writer.WriteLine("',");
            }
            this.Writer.Write("_cid : '");
            this.Writer.Write(num.ToString(CultureInfo.InvariantCulture));
            this.Writer.WriteLine("'");
            this.Writer.Write("}");
            if (Globals.ArePerfCountersEnabled)
            {
                OwaSingleCounters.IMTotalInstantMessagesSent.Increment();
            }
        }