public static AuthResponseMicrosoft ExchangeMicrosoft(string authCode, string clientid, string secret, string redirectURI)
        {
            var request = (HttpWebRequest)WebRequest.Create("https://login.microsoftonline.com/common/oauth2/v2.0/token");

            string postData = string.Format("code={0}&client_id={1}&client_secret={2}&redirect_uri={3}&grant_type=authorization_code", authCode, clientid, secret, redirectURI);
            var    data     = Encoding.ASCII.GetBytes(postData);

            request.Method        = "POST";
            request.ContentType   = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;

            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            var response = (HttpWebResponse)request.GetResponse();

            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

            var x = AuthResponseMicrosoft.getMicrosoft(responseString);

            //x.clientId = clientid;
            //x.secret = secret;

            return(x);
        }
        public static AuthResponseMicrosoft refreshTokenMicrosoft(string clientId, string secret, string refresh_token)
        {
            var    request  = (HttpWebRequest)WebRequest.Create("https://login.microsoftonline.com/common/oauth2/v2.0/token");
            string postData = string.Format("client_id={0}&client_secret={1}&refresh_token={2}&grant_type=refresh_token", clientId, secret, refresh_token);
            var    data     = Encoding.ASCII.GetBytes(postData);

            request.Method        = "POST";
            request.ContentType   = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;

            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            var response        = (HttpWebResponse)request.GetResponse();
            var responseString  = new StreamReader(response.GetResponseStream()).ReadToEnd();
            var refreshResponse = AuthResponseMicrosoft.getMicrosoft(responseString);

            return(refreshResponse);
            //this.access_token = refreshResponse.access_token;
            //this.created = DateTime.Now;
        }
        public static AuthResponseMicrosoft getMicrosoft(string response)
        {
            AuthResponseMicrosoft result = JsonConvert.DeserializeObject <AuthResponseMicrosoft>(response);

            return(result);
        }