public void Load(DataRow bindingRow)
{
try
{
m_id = (bindingRow.Table.Columns.Contains("id") && bindingRow["id"] != DBNull.Value && bindingRow["id"] != null) ? new Guid(bindingRow["id"] as string) : Guid.NewGuid();
m_providerId = new Guid(bindingRow["providerid"] as string);
ProviderName = bindingRow["providername"] as string;
m_owner = bindingRow["owner"] as string;
AdminMemberId = bindingRow["adminmemberid"] as string;
m_isRegistered = (bindingRow.Table.Columns.Contains("isregistered") && bindingRow["isregistered"] != DBNull.Value && bindingRow["isregistered"] != null) ? Convert.ToBoolean(bindingRow["isregistered"]) : false;
if (bindingRow.Table.Columns.Contains("bindinguri") && bindingRow["bindinguri"] != DBNull.Value && bindingRow["bindinguri"] != null && !bindingRow["bindinguri"].ToString().IsNullOrBlank())
{
m_bindingURI = SIPURI.ParseSIPURI(bindingRow["bindinguri"] as string);
}
else
{
logger.Warn("Could not load BindingURI for SIPProviderBinding with id=" + m_id + ".");
}
if (bindingRow.Table.Columns.Contains("bindingexpiry") && bindingRow["bindingexpiry"] != DBNull.Value && bindingRow["bindingexpiry"] != null)
{
m_bindingExpiry = Convert.ToInt32(bindingRow["bindingexpiry"]);
}
if (bindingRow.Table.Columns.Contains("cseq") && bindingRow["cseq"] != DBNull.Value && bindingRow["cseq"] != null && bindingRow["cseq"].ToString().Length > 0)
{
CSeq = Convert.ToInt32(bindingRow["cseq"]);
}
if (bindingRow.Table.Columns.Contains("lastregistertime") && bindingRow["lastregistertime"] != DBNull.Value && bindingRow["lastregistertime"] != null && !(bindingRow["lastregistertime"] as string).IsNullOrBlank())
{
LastRegisterTime = DateTimeOffset.Parse(bindingRow["lastregistertime"] as string);
}
if (bindingRow.Table.Columns.Contains("lastregisterattempt") && bindingRow["lastregisterattempt"] != DBNull.Value && bindingRow["lastregisterattempt"] != null && !(bindingRow["lastregisterattempt"] as string).IsNullOrBlank())
{
LastRegisterAttempt = DateTimeOffset.Parse(bindingRow["lastregisterattempt"] as string);
}
if (bindingRow.Table.Columns.Contains("nextregistrationtime") && bindingRow["nextregistrationtime"] != DBNull.Value && bindingRow["nextregistrationtime"] != null && !(bindingRow["nextregistrationtime"] as string).IsNullOrBlank())
{
NextRegistrationTime = DateTimeOffset.Parse(bindingRow["nextregistrationtime"] as string);
}
if (bindingRow.Table.Columns.Contains("registrarsipsocket") && bindingRow["registrarsipsocket"] != DBNull.Value && bindingRow["registrarsipsocket"] != null && bindingRow["registrarsipsocket"].ToString().Length > 0)
{
RegistrarSIPEndPoint = SIPEndPoint.ParseSIPEndPoint(bindingRow["registrarsipsocket"] as string);
}
m_registrationFailureMessage = bindingRow["registrationfailuremessage"] as string;
//logger.Debug(" loaded SIPProviderBinding for " + Owner + " and " + ProviderName + " and binding " + BindingURI.ToString() + ".");
}
catch (Exception excp)
{
logger.Error("Exception SIPProviderBinding Load. " + excp.Message);
throw excp;
}
}