private async Task<long> InsertCustomerRecord(CreateCustomerModel model)
{
Int64 phoneNumber = 0;
var isParsed = Int64.TryParse(model.PhoneNumber, out phoneNumber);
if (!isParsed)
phoneNumber = 0;
var USPSAddressValidatedId = (int)model.USPSAddressValidated;
try
{
IDataParameter[] parameters = new IDataParameter[]
{
new SqlParameter("@FirstName", model.FirstName.ToUpper()),
new SqlParameter("@LastName", model.LastName.ToUpper()),
//new SqlParameter("@MiddleInitial", model.MiddleInitial),
new SqlParameter("@AddressLine1",model.AddressLine1.ToUpper() ?? ""),
new SqlParameter("@AddressLine2",model.AddressLine2.ToUpper() ?? ""),
new SqlParameter("@City",model.City.ToUpper()),
new SqlParameter("@State",model.State.ToUpper()),
new SqlParameter("@CountyCode",model.CountyCode.ToUpper()),
new SqlParameter("@ZipCode",model.ZipCode),
new SqlParameter("@DateOfBirth",model.DateOfBirth.ToShortDateString()),
new SqlParameter("@Phone",phoneNumber),
new SqlParameter("@Email",model.EmailAddress.ToUpper()??""),
new SqlParameter("@PersonalRepresentative",model.CustomerClass.ToUpper()),
new SqlParameter("@ExpiryDate", model.ExpirationDate),
new SqlParameter("@CustomerClass", model.Customer_Class),
new SqlParameter("@USPSAddressValidated",USPSAddressValidatedId ),
new SqlParameter("@ImportFromLegacySystem", model.ImportFromLegacySystem)
};
return await InsertUpdateProcedure("RF_InsertCustomerCard", parameters);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return 0;
}
}
The exception thrown is
{"Object reference not set to an instance of an object."}
Data: {System.Collections.ListDictionaryInternal}
If you have something that you suspect might be null:
You need to use the null propagating operator on it:
This means if it is
null, then evaluation of the chain of operations will cease at the point that.EmailAddressreturnsnull, and the sub-expression (model.EmailAddress?.ToUpper()) will resolve tonull. It will then be picked up by the null coalescing operator??and turned into whatever you've put on the right hand side of the operator. If it's a constant, like""then the whole expression is guaranteed to not be nullYou can use these operators multiple times, on property and method return values:
There is also a null tolerant indexer if collections might be null: