public override void Add(Document doc, NorthwindConfig config, ref List<TransactionResult> result)
{
List<TransactionResult> transactionResult = new List<TransactionResult>();
// cast the given document to an email document
// return if fails
EmailDocument emailDocument = doc as EmailDocument;
if (emailDocument == null)
{
result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported));
return;
}
CustomerEmailsTableAdapter tableAdapter;
Emails emailsDataset = new Emails();
Emails.CustomerEmailsRow emailRow = emailsDataset.CustomerEmails.NewCustomerEmailsRow();
#region fill dataset from document
try
{
if (emailDocument.emailaddress.IsNull)
emailRow.SetEmailNull();
else
emailRow.Email = (string)emailDocument.emailaddress.Value;
emailRow.CreateID = config.SequenceNumber;
emailRow.CreateUser = config.CrmUser;
emailRow.ModifyID = config.SequenceNumber;
emailRow.ModifyUser = config.CrmUser;
}
catch (Exception e)
{
emailDocument.Id = "";
#warning Check error message
result.Add(emailDocument.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString()));
return;
}
#endregion
#region Get the ID of the new row and set it to the document
using (OleDbConnection connection = new OleDbConnection(config.ConnectionString))
{
connection.Open();
tableAdapter = new CustomerEmailsTableAdapter();
tableAdapter.Connection = connection;
emailsDataset.CustomerEmails.AddCustomerEmailsRow(emailRow);
tableAdapter.Update(emailsDataset.CustomerEmails);
OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection);
object lastid = Cmd.ExecuteScalar();
emailDocument.Id = ((int)lastid).ToString();
}
#endregion
}