I need some help. I am getting the exception in code line "e_svr.svr = svr;"
. I don't know why because svr
is not null. Any help will be appreciated.
I am trying to save an instance of the object in a Dictionary.
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,ConcurrencyMode=ConcurrencyMode.Multiple)]
public class EPS_Service : IEPS_Service
{
public decimal cal;
static Dictionary<string, EPS_Instance> OpenConnections =
new Dictionary<string, EPS_Instance>();
public invoice_data Invoice_to_Client(input_params inputparams)
{
EPS_Instance e_svr = new EPS_Instance();
invoice_data Invoice = new invoice_data();
if (OpenConnections.TryGetValue(inputparams.VSId + inputparams.Username, out e_svr))
{
Trace.WriteLine("FOUND!");
e_svr.svr.PrepareByMoney(e_svr.ck, inputparams.VSId, inputparams.meter_number, inputparams.amount, 0, ref cal);
object tr_bl = e_svr.svr.GetInvoiceData(e_svr.ck, e_svr.svr.Confirm(e_svr.ck));
Invoice.invoice_header = fill_invoice_header(tr_bl);
Invoice.invoice_body = fill_invoice_body(tr_bl);
Invoice.invoice_extra = fill_invoice_extra(tr_bl);
Invoice.invoice_steps = fill_invoice_steps(tr_bl);
Invoice.invoice_transfer = fill_invoice_transfer(tr_bl);
}
else
{
Trace.WriteLine("NOT FOUND");
EPS30Ora.EPS30Svr svr = new EPS30Ora.EPS30Svr();
if (svr.LogOnEx("EDENOR", inputparams.VSId, inputparams.Username, inputparams.Password, "EPS30Ora", ref inputparams.ck) == EPS30Ora.LogonResult.psOK)
{
e_svr.ck = inputparams.ck;
e_svr.svr = svr;
OpenConnections.Add(inputparams.VSId + inputparams.Username, e_svr);
svr.PrepareByMoney(inputparams.ck, inputparams.VSId, inputparams.meter_number, inputparams.amount, 0, ref cal);
object tr_bl = svr.GetInvoiceData(inputparams.ck, svr.Confirm(inputparams.ck));
Invoice.invoice_header = fill_invoice_header(tr_bl);
Invoice.invoice_body = fill_invoice_body(tr_bl);
Invoice.invoice_extra = fill_invoice_extra(tr_bl);
Invoice.invoice_steps = fill_invoice_steps(tr_bl);
Invoice.invoice_transfer = fill_invoice_transfer(tr_bl);
}
}
return Invoice;
}
}