public bool GetToken()
        {
            try
            {
                HttpWebRequest             = (HttpWebRequest)WebRequest.Create($"https://sandbox.finnotech.ir/dev/v1/oauth2/token");
                HttpWebRequest.Method      = "POST";
                HttpWebRequest.ContentType = "application/json";
                HttpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + ApplicationCredentials.GetPassword());

                var tempRequest = new TokenRequestBody()
                {
                    grant_type = "client_credentials",
                    nid        = ApplicationCredentials.NationalId
                };

                var tempJsonBody = JsonConvert.SerializeObject(tempRequest);

                HttpWebRequest.ContentLength = tempJsonBody.Length;

                using (var writtingStream = new StreamWriter(HttpWebRequest.GetRequestStream()))
                    writtingStream.Write(tempJsonBody);

                using (var response = HttpWebRequest.GetResponse())
                    using (var responseStream = new StreamReader(response.GetResponseStream()))
                    {
                        tokenString = responseStream.ReadToEnd();
                        Token       = JsonConvert.DeserializeObject <Token>(tokenString);
                    }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public bool GetOauthToken(string code)
        {
            try
            {
                HttpWebRequest             = (HttpWebRequest)WebRequest.Create("https://sandbox.finnotech.ir/dev/v1/oauth2/authorize");
                HttpWebRequest.Method      = "POST";
                HttpWebRequest.ContentType = "application/json";
                HttpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + ApplicationCredentials.GetPassword());

                var requestBody = new OauthRequestBody()
                {
                    code         = code,
                    redirect_uri = OauthParameters.redirect_uri,
                    grant_type   = "authorization_code"
                };

                var requestBodyJson = JsonConvert.SerializeObject(requestBody);
                HttpWebRequest.ContentLength = requestBodyJson.Length;

                using (var writtingStream = new StreamWriter(HttpWebRequest.GetRequestStream()))
                    writtingStream.Write(requestBodyJson);

                using (var response = HttpWebRequest.GetResponse())
                    using (var responseStream = new StreamReader(response.GetResponseStream()))
                    {
                        tokenString = responseStream.ReadToEnd();
                        var temp = new Token()
                        {
                            access_token = new AccessToken()
                        };
                        OauthToken = JsonConvert.DeserializeObject <OauthToken>(tokenString);
                    }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public FinnotechApplication()
 {
     ApplicationCredentials = new ApplicationCredentials();
 }