Ejemplo n.º 1
0
    /// <summary>
    /// Invokes messaging api to send message without any attachments
    /// </summary>
    /// <param name="mmsAddress">string, phone number</param>
    /// <param name="mmsMessage">string, mms message</param>
    private void SendMessageNoAttachments(string mmsAddress, string mmsMessage)
    {
        string boundaryToSend = "----------------------------" + DateTime.Now.Ticks.ToString("x");

        HttpWebRequest mmsRequestObject = (HttpWebRequest)WebRequest.Create(string.Empty + this.endPoint + "/rest/mms/2/messaging/outbox");

        mmsRequestObject.Headers.Add("Authorization", "Bearer " + this.accessToken);
        mmsRequestObject.ContentType = "multipart/form-data; type=\"application/x-www-form-urlencoded\"; start=\"<startpart>\"; boundary=\"" + boundaryToSend + "\"\r\n";
        mmsRequestObject.Method      = "POST";
        mmsRequestObject.KeepAlive   = true;

        UTF8Encoding encoding = new UTF8Encoding();

        byte[] bytesToSend   = encoding.GetBytes(string.Empty);
        string mmsParameters = "Address=" + Server.UrlEncode("tel:" + mmsAddress) + "&Subject=" + Server.UrlEncode(mmsMessage);

        string dataToSend = string.Empty;

        dataToSend += "--" + boundaryToSend + "\r\n";
        dataToSend += "Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nContent-Transfer-Encoding: 8bit\r\nContent-Disposition: form-data; name=\"root-fields\"\r\nContent-ID: <startpart>\r\n\r\n" + mmsParameters + "\r\n";
        dataToSend += "--" + boundaryToSend + "--\r\n";
        bytesToSend = encoding.GetBytes(dataToSend);

        int sizeToSend   = bytesToSend.Length;
        var memBufToSend = new MemoryStream(new byte[sizeToSend], 0, sizeToSend, true, true);

        memBufToSend.Write(bytesToSend, 0, bytesToSend.Length);
        byte[] finalData = memBufToSend.GetBuffer();
        mmsRequestObject.ContentLength = finalData.Length;

        Stream postStream = null;

        try
        {
            postStream = mmsRequestObject.GetRequestStream();
            postStream.Write(finalData, 0, finalData.Length);
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (null != postStream)
            {
                postStream.Close();
            }
        }

        WebResponse mmsResponseObject = mmsRequestObject.GetResponse();

        using (StreamReader streamReader = new StreamReader(mmsResponseObject.GetResponseStream()))
        {
            string mmsResponseData = streamReader.ReadToEnd();
            JavaScriptSerializer deserializeJsonObject = new JavaScriptSerializer();
            MmsResponseId        deserializedJsonObj   = (MmsResponseId)deserializeJsonObject.Deserialize(mmsResponseData, typeof(MmsResponseId));
            messageIDTextBox.Text = deserializedJsonObj.id.ToString();
            this.DrawPanelForSuccess(sendMessagePanel, deserializedJsonObj.id.ToString());
            streamReader.Close();
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// Sends MMS message by invoking Send MMS api
    /// </summary>
    private void SendMMS()
    {
        Stream       postStream   = null;
        FileStream   fileStream   = null;
        BinaryReader binaryReader = null;

        try
        {
            string mmsFilePath = Request.MapPath(this.couponPath);
            string boundary    = "----------------------------" + DateTime.Now.Ticks.ToString("x");

            HttpWebRequest mmsRequestObject = (HttpWebRequest)WebRequest.Create(string.Empty + this.endPoint + "/rest/mms/2/messaging/outbox");
            mmsRequestObject.Headers.Add("Authorization", "Bearer " + this.accessToken);
            mmsRequestObject.ContentType = "multipart/form-data; type=\"application/x-www-form-urlencoded\"; start=\"<startpart>\"; boundary=\"" + boundary + "\"\r\n";
            mmsRequestObject.Method      = "POST";
            mmsRequestObject.KeepAlive   = true;

            UTF8Encoding encoding    = new UTF8Encoding();
            byte[]       postBytes   = encoding.GetBytes(string.Empty);
            string       sendMMSData = this.phoneNumbersParameter + "&Subject=" + Server.UrlEncode(subjectLabel.Text.ToString());
            string       data        = string.Empty;

            fileStream   = new FileStream(mmsFilePath + this.couponFileName, FileMode.Open, FileAccess.Read);
            binaryReader = new BinaryReader(fileStream);
            byte[] image = binaryReader.ReadBytes((int)fileStream.Length);

            data += "--" + boundary + "\r\n";
            data += "Content-Type:application/x-www-form-urlencoded;charset=UTF-8\r\nContent-Transfer-Encoding:8bit\r\nContent-ID:<startpart>\r\n\r\n" + sendMMSData + "\r\n";
            data += "--" + boundary + "\r\n";
            data += "Content-Disposition:attachment;name=\"" + "coupon.jpg" + "\"\r\n";
            data += "Content-Type:image/gif\r\n";
            data += "Content-ID:<" + "coupon.jpg" + ">\r\n";
            data += "Content-Transfer-Encoding:binary\r\n\r\n";
            byte[] firstPart = encoding.GetBytes(data);
            int    newSize   = firstPart.Length + image.Length;

            var memoryStream = new MemoryStream(new byte[newSize], 0, newSize, true, true);
            memoryStream.Write(firstPart, 0, firstPart.Length);
            memoryStream.Write(image, 0, image.Length);

            byte[] secondpart = memoryStream.GetBuffer();
            byte[] thirdpart  = encoding.GetBytes("\r\n--" + boundary + "--\r\n");
            newSize = secondpart.Length + thirdpart.Length;

            var memoryStream2 = new MemoryStream(new byte[newSize], 0, newSize, true, true);
            memoryStream2.Write(secondpart, 0, secondpart.Length);
            memoryStream2.Write(thirdpart, 0, thirdpart.Length);

            postBytes = memoryStream2.GetBuffer();
            mmsRequestObject.ContentLength = postBytes.Length;

            postStream = mmsRequestObject.GetRequestStream();
            postStream.Write(postBytes, 0, postBytes.Length);
            postStream.Close();

            WebResponse mmsResponseObject = mmsRequestObject.GetResponse();
            using (StreamReader streamReader = new StreamReader(mmsResponseObject.GetResponseStream()))
            {
                string mmsResponseData = streamReader.ReadToEnd();
                JavaScriptSerializer deserializeJsonObject = new JavaScriptSerializer();
                MmsResponseId        deserializedJsonObj   = (MmsResponseId)deserializeJsonObject.Deserialize(mmsResponseData, typeof(MmsResponseId));

                msgIdLabel.Text = deserializedJsonObj.Id;
                this.DrawPanelForSuccess(sendMMSPanel, deserializedJsonObj.Id);
                streamReader.Close();
            }

            /*if (this.invalidPhoneNumbers.Count > 0)
             * {
             *  this.DrawPanelForFailedNumbers(sendMMSPanel);
             * }*/
            mmsRequestObject = null;
        }
        catch (WebException we)
        {
            string errorResponse = string.Empty;

            try
            {
                using (StreamReader sr2 = new StreamReader(we.Response.GetResponseStream()))
                {
                    errorResponse = sr2.ReadToEnd();
                    sr2.Close();
                }
            }
            catch
            {
                errorResponse = "Unable to get response";
            }
            this.DrawPanelForFailure(sendMMSPanel, errorResponse + Environment.NewLine + we.Message);
        }
        catch (Exception ex)
        {
            this.DrawPanelForFailure(sendMMSPanel, ex.ToString());
        }
        finally
        {
            if (null != binaryReader)
            {
                binaryReader.Close();
            }

            if (null != fileStream)
            {
                fileStream.Close();
            }

            if (null != postStream)
            {
                postStream.Close();
            }
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// Sends MMS by calling messaging api
    /// </summary>
    /// <param name="mmsAddress">string, phone number</param>
    /// <param name="mmsMessage">string, mms message</param>
    private void SendMultimediaMessage(string mmsAddress, string mmsMessage)
    {
        string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");

        HttpWebRequest mmsRequestObject = (HttpWebRequest)WebRequest.Create(string.Empty + this.endPoint + "/rest/mms/2/messaging/outbox");

        mmsRequestObject.Headers.Add("Authorization", "Bearer " + this.accessToken);
        mmsRequestObject.ContentType = "multipart/form-data; type=\"application/x-www-form-urlencoded\"; start=\"<startpart>\"; boundary=\"" + boundary + "\"\r\n";
        mmsRequestObject.Method      = "POST";
        mmsRequestObject.KeepAlive   = true;

        UTF8Encoding encoding = new UTF8Encoding();

        byte[] totalpostBytes = encoding.GetBytes(string.Empty);
        string sendMMSData    = "Address=" + Server.UrlEncode("tel:" + mmsAddress) + "&Subject=" + Server.UrlEncode(mmsMessage);

        string data = string.Empty;

        data += "--" + boundary + "\r\n";
        data += "Content-Type:application/x-www-form-urlencoded;charset=UTF-8\r\nContent-Transfer-Encoding:8bit\r\nContent-ID:<startpart>\r\n\r\n" + sendMMSData + "\r\n";

        totalpostBytes = this.FormMIMEParts(boundary, ref data);

        byte[] byteLastBoundary = encoding.GetBytes("\r\n--" + boundary + "--\r\n");
        int    totalSize        = totalpostBytes.Length + byteLastBoundary.Length;

        var totalMS = new MemoryStream(new byte[totalSize], 0, totalSize, true, true);

        totalMS.Write(totalpostBytes, 0, totalpostBytes.Length);
        totalMS.Write(byteLastBoundary, 0, byteLastBoundary.Length);

        byte[] finalpostBytes = totalMS.GetBuffer();
        mmsRequestObject.ContentLength = finalpostBytes.Length;

        Stream postStream = null;

        try
        {
            postStream = mmsRequestObject.GetRequestStream();
            postStream.Write(finalpostBytes, 0, finalpostBytes.Length);
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (null != postStream)
            {
                postStream.Close();
            }
        }

        WebResponse mmsResponseObject = mmsRequestObject.GetResponse();

        using (StreamReader streamReader = new StreamReader(mmsResponseObject.GetResponseStream()))
        {
            string mmsResponseData = streamReader.ReadToEnd();
            JavaScriptSerializer deserializeJsonObject = new JavaScriptSerializer();
            MmsResponseId        deserializedJsonObj   = (MmsResponseId)deserializeJsonObject.Deserialize(mmsResponseData, typeof(MmsResponseId));
            messageIDTextBox.Text = deserializedJsonObj.id.ToString();
            this.DrawPanelForSuccess(sendMessagePanel, deserializedJsonObj.id.ToString());
            streamReader.Close();
        }
    }