Hi, I am trying to reference a variable declared in Main() method in SSIS script task in a different method.
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
public void Main()
{
try
{
var user = Dts.Variables["User::usr"].Value.ToString();
var code = Dts.Variables["User::pwd"].Value.ToString();
}
catch (Exception e)
{
}
}
private class getItem
{
public string url = "http://localhost:1234/api/item";
using (var client = new System.Net.Http.HttpClient())
{
client.BaseAddress = new Uri("baseUrl");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync("/item/GetAllItems").Result;
string res = "";
using (HttpContent content = response.Content)
{
Task<string> result = content.ReadAsStringAsync();
res = result.Result;
}
}
private httpRequest cr(string uri, string webMethod = "GET", byte[] data = null, string contentType = "application/json", bool isAuth = false)
{
var reqid = httpRequest.Create(uri);
if (isAuth)
{
var hruser = user;
var hrcode = code;
var authString = Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", user, code)));
reqid.Headers.Add("Authorization", "Basic " + authString);
}
return reqid;
}
}
}
What I have tried:
I tried using a constructor but still run to error "object reference not set to an instance of an object.".
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
string user;
string code;
public void Main()
{
try
{
user = Dts.Variables["User::usr"].Value.ToString();
code = Dts.Variables["User::pwd"].Value.ToString();
}
catch (Exception e)
{
}
}
private class getItem
{
public string url = "http://localhost:1234/api/item";
string User;
string Code;
public getItem(string user, string code)
{
User = user;
Code = code;
}
using (var client = new System.Net.Http.HttpClient())
{
client.BaseAddress = new Uri("baseUrl");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync("/item/GetAllItems").Result;
string res = "";
using (HttpContent content = response.Content)
{
Task<string> result = content.ReadAsStringAsync();
res = result.Result;
}
}
private httpRequest cr(string uri, string webMethod = "GET", byte[] data = null, string contentType = "application/json", bool isAuth = false)
{
var reqid = httpRequest.Create(uri);
if (isAuth)
{
var hruser = User;
var hrcode = Code;
var authString = Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", user, code)));
reqid.Headers.Add("Authorization", "Basic " + authString);
}
return reqid;
}
}
public string getItemDesc()
{
getItem gi = new getItem(user, code);
string uri = gi.BaseUrl;
HttpStatusCode statuscode;
string idesc = gi.httpRequest(uri, out statuscode, isSecured: true);
if (statuscode != HttpStatusCode.OK) throw new ApplicationException("error");
return idesc;
}
}