private Document GetDocument(Category.CategoriesRow row, Token lastToken, NorthwindConfig config) { #region Declarations ProductFamilyDocument doc; string id; #endregion id = row.CategoryID.ToString(); doc = new ProductFamilyDocument(); doc.Id = id; if (lastToken.InitRequest) { doc.LogState = LogState.Created; } else if (row.IsCreateIDNull() || row.IsModifyIDNull() || row.IsCreateUserNull() || row.IsModifyUserNull()) { doc.LogState = LogState.Created; } else if ((row.CreateID > lastToken.SequenceNumber) && (row.CreateUser != config.CrmUser)) { doc.LogState = LogState.Created; } else if ((row.CreateID == lastToken.SequenceNumber) && (row.CreateUser != config.CrmUser) && (id.CompareTo(lastToken.Id.Id) > 0)) { doc.LogState = LogState.Created; } else if ((row.ModifyID >= lastToken.SequenceNumber) && (row.ModifyUser != config.CrmUser)) { doc.LogState = LogState.Updated; } doc.active.Value = Constants.DefaultValues.Active; doc.name.Value = row.IsCategoryNameNull() ? null : row.CategoryName; doc.description.Value = row.IsDescriptionNull() ? null : row.Description; return(doc); }
public override void Update(Document doc, NorthwindConfig config, ref List <TransactionResult> result) { List <TransactionResult> transactionResult = new List <TransactionResult>(); ProductFamilyDocument productFamilyDoc = doc as ProductFamilyDocument; #region check input values if (productFamilyDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } // check id #endregion DataSets.CategoryTableAdapters.CategoriesTableAdapter tableAdapter; DataSets.Category category = new DataSets.Category(); DataSets.Category.CategoriesRow row; tableAdapter = new DataSets.CategoryTableAdapters.CategoriesTableAdapter(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter.Connection = connection; int recordCount = tableAdapter.FillBy(category.Categories, Convert.ToInt32(productFamilyDoc.Id)); if (recordCount == 0) { doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, "Category does not exists"); return; } row = (Category.CategoriesRow)category.Categories.Rows[0]; try { if (!productFamilyDoc.name.NotSet) { if (productFamilyDoc.name.IsNull) { row.SetCategoryNameNull(); } else { row.CategoryName = (string)productFamilyDoc.name.Value; } } if (!productFamilyDoc.description.NotSet) { if (productFamilyDoc.description.IsNull) { row.SetDescriptionNull(); } else { row.Description = (string)productFamilyDoc.description.Value; } } row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { productFamilyDoc.Id = ""; #warning Check error message result.Add(productFamilyDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } tableAdapter = new DataSets.CategoryTableAdapters.CategoriesTableAdapter(); tableAdapter.Connection = connection; tableAdapter.Update(category.Categories); result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); } }
public override void Add(Document doc, NorthwindConfig config, ref List <TransactionResult> result) { List <TransactionResult> transactionResult = new List <TransactionResult>(); ProductFamilyDocument productFamilyDoc = doc as ProductFamilyDocument; #region check input values if (productFamilyDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } #endregion DataSets.CategoryTableAdapters.CategoriesTableAdapter tableAdapter; DataSets.Category category = new DataSets.Category(); DataSets.Category.CategoriesRow row = category.Categories.NewCategoriesRow(); #region fill dataset from document try { if (productFamilyDoc.name.IsNull) { row.SetCategoryNameNull(); } else { row.CategoryName = (string)productFamilyDoc.name.Value; } if (productFamilyDoc.description.IsNull) { row.SetDescriptionNull(); } else { row.Description = (string)productFamilyDoc.description.Value; } row.CreateID = config.SequenceNumber; row.CreateUser = config.CrmUser; row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { productFamilyDoc.Id = ""; #warning Check error message result.Add(productFamilyDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } #endregion using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter = new DataSets.CategoryTableAdapters.CategoriesTableAdapter(); tableAdapter.Connection = connection; category.Categories.AddCategoriesRow(row); tableAdapter.Update(category.Categories); OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection); object lastid = Cmd.ExecuteScalar(); productFamilyDoc.Id = ((int)lastid).ToString(); } result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); }