Example #1
0
        public void RefreshToken()
        {
            var http = new HttpClient();

            using (var db = new HACIENDAContext())
            {
                var tk = db.Token.Where(b => b.Id == Guid.Parse("12adc686-2914-402b-87fc-09828b4ff442"))
                         .FirstOrDefault();
                var body = new List <KeyValuePair <string, string> >();
                body.Add(new KeyValuePair <string, string>("Content-Type", ContentType));
                body.Add(new KeyValuePair <string, string>("client_id", ClientId));
                body.Add(new KeyValuePair <string, string>("refresh_token", tk.RefreshToken));
                body.Add(new KeyValuePair <string, string>("grant_type", "refresh_token"));
                var content = new FormUrlEncodedContent(body);
                HttpResponseMessage response = http.PostAsync(TokenEndPoint, content).Result;
                string res = response.Content.ReadAsStringAsync().Result;
                if (!TokenExpired(response.StatusCode.ToString()))
                {
                    db.Remove(db.Token.Single(a => a.Id == tk.Id));
                    db.SaveChanges();
                    GetToken();
                }
                else
                {
                    Serializer(res, "update");
                }
            }
        }
Example #2
0
        public void Serializer(string res, string type)
        {
            Token tk = Newtonsoft.Json.JsonConvert.DeserializeObject <Token>(res);

            using (var db = new HACIENDAContext())
            {
                switch (type)
                {
                case "create":
                    db.Token.Add(new Token {
                        TokenType = tk.TokenType, ExpiresIn = tk.ExpiresIn, RefreshToken = tk.RefreshToken, AccessToken = tk.AccessToken, RefreshExpiresIn = tk.RefreshExpiresIn, SessionState = tk.SessionState
                    });
                    db.SaveChanges();
                    Console.WriteLine("Se creo un nuevo token");
                    break;

                case "update":
                    var token = db.Token.FirstOrDefault(item => item.Id == Guid.Parse("5766f8fc-1f3b-4eb3-9913-314f3df0c351"));
                    if (token != null)
                    {
                        token.TokenType        = tk.TokenType;
                        token.ExpiresIn        = tk.ExpiresIn;
                        token.RefreshToken     = tk.RefreshToken;
                        token.AccessToken      = tk.AccessToken;
                        token.RefreshExpiresIn = tk.RefreshExpiresIn;
                        token.SessionState     = tk.SessionState;
                        db.Token.Update(token);
                        db.SaveChanges();
                        Console.WriteLine("Se Actualizo el token");
                    }
                    break;
                }
            }
        }
Example #3
0
        public void SerializerXml(string res)
        {
            VoucherResponse v = Newtonsoft.Json.JsonConvert.DeserializeObject <VoucherResponse>(res);

            using (var db = new HACIENDAContext())
            {
                db.VoucherResponse.Add(new VoucherResponse {
                    Clave        = v.Clave,
                    Fecha        = v.Fecha,
                    IntEstado    = v.IntEstado,
                    RespuestaXml = v.RespuestaXml
                });
                db.SaveChanges();
                Console.WriteLine(String.Format("Se recibio una respuesta de hacienda del documento{0} con un status {1} ", v.Clave, v.IntEstado));
            }
        }
Example #4
0
        public async Task <string> GetElectronicBill()
        {
            string responseBody;

            using (var db = new HACIENDAContext())
            {
                var tk = db.Token.Where(b => b.Id == Guid.Parse("12adc686-2914-402b-87fc-09828b4ff442"))
                         .FirstOrDefault();
                var http = new HttpClient();
                http.DefaultRequestHeaders.Add("Authorization", "bearer " + tk.AccessToken);
                responseBody = await http.GetStringAsync(VouchersEndPoint + "recepcion/" + "50604111915580001061700100001010000000024100005555");

                SerializerXml(responseBody);
            }
            return(responseBody);
        }