Example #1
0
        public static HttpResponseMessage AppendToFileBlob(string instance, JObject record, UserAccount userAccount)
        {
            string antiForgeryToken = GenerateAntiForgeryToken(instance, userAccount);

            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("X-GSF-Verify", antiForgeryToken);
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    HttpResponseMessage response = client.PutAsJsonAsync("api/PQMark/AppendToFileBlob", record).Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    return(response);
                }
        }
Example #2
0
        public static IEnumerable <dynamic> GetRecords(string instance, string tableName, string ids, UserAccount userAccount)
        {
            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    HttpResponseMessage response = client.GetAsync($"api/PQMark/GetRecords/{tableName}/{ids}").Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    dynamic record    = response.Content.ReadAsAsync <dynamic>();
                    Type    modelType = typeof(Meter).Assembly.GetType("openXDA.Model." + tableName);
                    Type    listType  = typeof(IEnumerable <>).MakeGenericType(modelType);
                    return(record.Result.ToObject(listType));
                }
        }
Example #3
0
        public static dynamic GetRecordWhere(string instance, string tableName, string whereClause, UserAccount userAccount)
        {
            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    string urlEncodedWhereClause = HttpUtility.UrlEncode(whereClause);
                    HttpResponseMessage response = client.GetAsync($"api/PQMark/GetRecordWhere/{tableName}?where={urlEncodedWhereClause}").Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    dynamic record = response.Content.ReadAsAsync <dynamic>();
                    if (record.Result == null)
                    {
                        return(null);
                    }
                    return(record.Result.ToObject(typeof(Meter).Assembly.GetType("openXDA.Model." + tableName)));
                }
        }
        public MiMDDailyStatistic GetRecord(string url, string credential, string password, string meter)
        {
            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(url);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.AddBasicAuthenticationHeader(credential, password);

                    HttpResponseMessage response = client.GetAsync($"api/SystemCenter/Statistics/MiMD/Last/{meter}").Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    string record = response.Content.ReadAsStringAsync().Result;
                    if (record != "\"null\"")
                    {
                        return(JsonConvert.DeserializeObject <MiMDDailyStatistic>(record));
                    }
                    else
                    {
                        return(null);
                    }
                }
        }
Example #5
0
        public static int CreateRecord <T>(string instance, T record, UserAccount userAccount) where T : class
        {
            string antiForgeryToken = GenerateAntiForgeryToken(instance, userAccount);

            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("X-GSF-Verify", antiForgeryToken);
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    HttpResponseMessage response = client.PostAsJsonAsync($"api/PQMark/CreateRecord/{typeof(T).Name}", record).Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    dynamic r = response.Content.ReadAsAsync <dynamic>();
                    return((int)r.Result);
                }
        }
Example #6
0
        public static HttpResponseMessage DeleteRecord(string instance, string tableName, int id, UserAccount userAccount)
        {
            string antiForgeryToken = GenerateAntiForgeryToken(instance, userAccount);

            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("X-GSF-Verify", antiForgeryToken);
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    HttpResponseMessage response = client.DeleteAsync($"api/PQMark/DeleteRecord/{tableName}/{id}").Result;
                    return(response);
                }
        }
        public HttpStatusCode UpdateRecord(string url, string credential, string password, MiMDDailyStatistic record)
        {
            string antiForgeryToken = GenerateAntiForgeryToken(url, credential, password);

            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(url);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("X-GSF-Verify", antiForgeryToken);
                    client.AddBasicAuthenticationHeader(credential, password);

                    HttpResponseMessage response = client.PutAsJsonAsync($"api/SystemCenter/Statistics/MiMD/Update", record).Result;
                    return(response.StatusCode);
                }
        }
Example #8
0
        private static string GenerateAntiForgeryToken(string instance, UserAccount userAccount)
        {
            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    HttpResponseMessage response = client.GetAsync("api/PQMark/GenerateRequestVerficationToken").Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    return(response.Content.ReadAsStringAsync().Result);
                }
        }
        public IHttpActionResult Test(string meter)
        {
            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(InstanceUrl);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.AddBasicAuthenticationHeader(Credential, Password);

                    HttpResponseMessage response = client.GetAsync($"api/Operations/Test/{meter}").Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        return(BadRequest($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}"));
                    }
                    string rsp = response.Content.ReadAsStringAsync().Result;
                    return(Ok(rsp));
                }
        }
Example #10
0
        public static IEnumerable <T> GetRecords <T>(string instance, string ids, UserAccount userAccount) where T : class
        {
            using (WebRequestHandler handler = new WebRequestHandler())
                using (HttpClient client = new HttpClient(handler))
                {
                    handler.ServerCertificateValidationCallback += HandleCertificateValidation;

                    client.BaseAddress = new Uri(instance);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.AddBasicAuthenticationHeader(userAccount.AccountName, userAccount.Password);

                    HttpResponseMessage response = client.GetAsync($"api/PQMark/GetRecords/{typeof(T).Name}/{ids}").Result;

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException($"Server returned status code {response.StatusCode}: {response.ReasonPhrase}");
                    }

                    Task <IEnumerable <T> > record = response.Content.ReadAsAsync <IEnumerable <T> >();
                    return(record.Result);
                }
        }
Example #11
0
 private static void AddBasicAuthenticationHeader(HttpClient client)
 {
     client.AddBasicAuthenticationHeader(s_userName, s_password);
 }