/* Get */ public override List <Identity> GetAll(NorthwindConfig config, string whereExpression, OleDbParameter[] oleDbParameters) { List <Identity> result = new List <Identity>(); int recordCount = 0; DataSets.Product productsDataset = new DataSets.Product(); // get the first 11 rows of the changelog using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; if (string.IsNullOrEmpty(whereExpression)) { recordCount = tableAdapter.Fill(productsDataset.Products); } else { recordCount = tableAdapter.FillByWhereClause(productsDataset.Products, whereExpression, oleDbParameters); } } foreach (DataSets.Product.ProductsRow row in productsDataset.Products.Rows) { // use where expression !! result.Add(new Identity(this.EntityName, row.ProductID.ToString())); } return(result); }
public override Document GetDocument(Identity identity, Token lastToken, NorthwindConfig config) { int recordCount; DataSets.Product product = new DataSets.Product(); int priceID; priceID = Identity.GetId(identity); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.FillBy(product.Products, priceID); } if (recordCount == 0) { return(GetDeletedDocument(identity)); } return(GetDocument((DataSets.Product.ProductsRow)product.Products[0], lastToken, config)); }
public override Document GetDocument(Identity identity, Token lastToken, NorthwindConfig config) { int recordCount; DataSets.Product product = new DataSets.Product(); int uomId; uomId = Identity.GetId(identity); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { Sage.Integration.Northwind.Application.Entities.Product.DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new Sage.Integration.Northwind.Application.Entities.Product.DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.FillBy(product.Products, uomId); } if (recordCount == 0) { return(GetDeletedDocument(identity)); } return(GetUOMDocument((DataSets.Product.ProductsRow)product.Products[0], lastToken, config)); }
public override Document GetDocument(Identity identity, Token lastToken, NorthwindConfig config) { int recordCount; DataSets.Product product = new DataSets.Product(); int uomFamilyId; uomFamilyId = Identity.GetId(identity); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { Sage.Integration.Northwind.Application.Entities.Product.DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new Sage.Integration.Northwind.Application.Entities.Product.DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.FillBy(product.Products, uomFamilyId); } if (recordCount == 0) return GetDeletedDocument(identity); return GetUOMFamilyDocument((DataSets.Product.ProductsRow)product.Products[0], lastToken, config); }
/* Get */ public override List<Identity> GetAll(NorthwindConfig config, string whereExpression, OleDbParameter[] oleDbParameters) { List<Identity> result = new List<Identity>(); int recordCount = 0; DataSets.Product productsDataset = new DataSets.Product(); // get the first 11 rows of the changelog using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; if (string.IsNullOrEmpty(whereExpression)) recordCount = tableAdapter.Fill(productsDataset.Products); else recordCount = tableAdapter.FillByWhereClause(productsDataset.Products, whereExpression, oleDbParameters); } foreach (DataSets.Product.ProductsRow row in productsDataset.Products.Rows) { // use where expression !! result.Add(new Identity(this.EntityName, row.ProductID.ToString())); } return result; }
/* Update */ public override void Update(Document doc, NorthwindConfig config, ref List <TransactionResult> result) { List <TransactionResult> transactionResult = new List <TransactionResult>(); UnitOfMeasureDocument uomDoc = doc as UnitOfMeasureDocument; #region check input values if (uomDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } // check id #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter.Connection = connection; int recordCount = tableAdapter.FillBy(productDataset.Products, Convert.ToInt32(uomDoc.Id)); if (recordCount == 0) { doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, "Product does not exists"); return; } row = (DataSets.Product.ProductsRow)productDataset.Products.Rows[0]; try { // active??? if (uomDoc.name.IsNull) { row.SetQuantityPerUnitNull(); } else { row.QuantityPerUnit = (string)uomDoc.name.Value; } // units ??? // defaultvalue ??? // familyId ??? // ModifyID row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { uomDoc.Id = ""; #warning Check error message result.Add(uomDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; tableAdapter.Update(productDataset.Products); result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); } }
/* Add */ public override void Add(Document doc, NorthwindConfig config, ref List <TransactionResult> result) { List <TransactionResult> transactionResult = new List <TransactionResult>(); UnitOfMeasureDocument uomDoc = doc as UnitOfMeasureDocument; #region check input values if (uomDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row = productDataset.Products.NewProductsRow(); #region fill dataset from document try { // active??? if (uomDoc.name.IsNull) { row.SetQuantityPerUnitNull(); } else { row.QuantityPerUnit = (string)uomDoc.name.Value; } // units ??? // defaultvalue ??? // familyId ??? /* CreateID and ModifyID */ row.CreateID = config.SequenceNumber; row.CreateUser = config.CrmUser; row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { uomDoc.Id = ""; #warning Check error message result.Add(uomDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } #endregion using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; productDataset.Products.AddProductsRow(row); tableAdapter.Update(productDataset.Products); OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection); object lastid = Cmd.ExecuteScalar(); uomDoc.Id = ((int)lastid).ToString(); } result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); }
public PricingDetail GetPricingDetails(OrderDetailInformation OrderDetails, NorthwindConfig config) { PricingDetail result = new PricingDetail(); string customerID; int productId; List<int> productIds = new List<int>(); int recordCount; if (!OrderDetails.Currency.Equals(config.CurrencyCode, StringComparison.InvariantCultureIgnoreCase)) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_CurrencyNotSupported; return result; } if (!OrderDetails.PricingListId.Equals(Constants.DefaultValues.PriceList.ID, StringComparison.InvariantCultureIgnoreCase)) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_PriceListNotSupported; return result; } if (OrderDetails.AccountId == null) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_AccountNotFound; return result; } customerID = OrderDetails.AccountId; if (!(customerID.StartsWith(Constants.CustomerIdPrefix, StringComparison.InvariantCultureIgnoreCase))) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_OnlyCustomersSupported; return result; } customerID = customerID.Substring(Constants.CustomerIdPrefix.Length); DataSet dataSet = new DataSet(); OleDbDataAdapter dataAdapter; string sqlQuery = "Select * from Customers where CustomerID = '" + customerID + "'"; using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { dataAdapter = new OleDbDataAdapter(sqlQuery, connection); if (dataAdapter.Fill(dataSet, "Customers") == 0) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_AccountNotFound; return result; } } result.Result = true; result.ErrorMessage = ""; result.PricingListId = Constants.DefaultValues.PriceList.ID; DataSets.Product product = new DataSets.Product(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.Fill(product.Products); } result.PricingDetailLineItems = new PricingDetailLineItem[OrderDetails.LineItemDetails.Length]; DataSets.Product.ProductsRow row; decimal totalPrice = 0; decimal totalLineItemDiscount = 0; result.ErrorMessage = ""; for (int index = 0; index < OrderDetails.LineItemDetails.Length; index++) { result.PricingDetailLineItems[index] = new PricingDetailLineItem(); result.PricingDetailLineItems[index].Description = OrderDetails.LineItemDetails[index].Description; result.PricingDetailLineItems[index].LineItemId = OrderDetails.LineItemDetails[index].LineItemId; result.PricingDetailLineItems[index].LineType = OrderDetails.LineItemDetails[index].LineType; result.PricingDetailLineItems[index].SynchMessage = ""; try { productId = Convert.ToInt32(OrderDetails.LineItemDetails[index].ProductId); } catch (Exception) { result.PricingDetailLineItems[index].SynchMessage = String.Format(Resources.ErrorMessages_ProductIdWrongFormat, OrderDetails.LineItemDetails[index].ProductId.ToString()); result.ErrorMessage += result.PricingDetailLineItems[index].SynchMessage + "\r\n"; result.Result = false; continue; } if (productIds.Contains(productId)) { result.PricingDetailLineItems[index].SynchMessage = String.Format(Resources.ErrorMessages_OrderWithProductTwice, productId); //result.ErrorMessage += result.PricingDetailLineItems[index].SynchMessage + "\r\n"; //result.Result = false; //continue; } productIds.Add(productId); row = product.Products.FindByProductID(productId); if (row == null) { result.PricingDetailLineItems[index].SynchMessage = String.Format(Resources.ErrorMessages_ProductIdNotFound, productId); result.ErrorMessage += result.PricingDetailLineItems[index].SynchMessage + "\r\n"; result.Result = false; continue; } //result.PricingDetailLineItems[index].RepricingStatus = ??; //result.PricingDetailLineItems[index].StockQuantity = row.IsUnitsInStockNull() ? 0 : (int)row.UnitsInStock; result.PricingDetailLineItems[index].ListPrice = row.IsUnitPriceNull() ? (decimal)0 : row.UnitPrice; result.PricingDetailLineItems[index].Tax = 0; //result.PricingDetailLineItems[index].TaxRate = "no Tax"; result.PricingDetailLineItems[index].TaxRate = "0"; result.PricingDetailLineItems[index].DiscountRate = 0; result.PricingDetailLineItems[index].Discount = 0; if (OrderDetails.LineItemDetails[index].Quantity >= 10) { result.PricingDetailLineItems[index].DiscountRate = 10; result.PricingDetailLineItems[index].Discount = 10; } result.PricingDetailLineItems[index].DiscountSum = ((result.PricingDetailLineItems[index].DiscountRate / 100)) * result.PricingDetailLineItems[index].ListPrice; result.PricingDetailLineItems[index].QuotedPrice = result.PricingDetailLineItems[index].ListPrice * (1 - (result.PricingDetailLineItems[index].DiscountRate / 100)); result.PricingDetailLineItems[index].QuotedPriceTotal = OrderDetails.LineItemDetails[index].Quantity * result.PricingDetailLineItems[index].QuotedPrice; totalPrice += result.PricingDetailLineItems[index].QuotedPriceTotal; totalLineItemDiscount += OrderDetails.LineItemDetails[index].Quantity * result.PricingDetailLineItems[index].DiscountSum; } result.DiscountAmt = 0; result.DiscountPC = 0; result.DiscountType = ""; result.GrossAmt = totalPrice; result.LineItemDisc = totalLineItemDiscount; result.NetAmt = totalPrice; //result.NoDiscAmt = 0; //???? result.PricingListId = OrderDetails.PricingListId; result.OrderQuoteId = OrderDetails.OrderQuoteId; //result.Reference = ""; result.Tax = 0; return result; }
public PricingDetail GetPricingDetails(OrderDetailInformation OrderDetails, NorthwindConfig config) { PricingDetail result = new PricingDetail(); string customerID; int productId; List <int> productIds = new List <int>(); int recordCount; if (!OrderDetails.Currency.Equals(config.CurrencyCode, StringComparison.InvariantCultureIgnoreCase)) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_CurrencyNotSupported; return(result); } if (!OrderDetails.PricingListId.Equals(Constants.DefaultValues.PriceList.ID, StringComparison.InvariantCultureIgnoreCase)) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_PriceListNotSupported; return(result); } if (OrderDetails.AccountId == null) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_AccountNotFound; return(result); } customerID = OrderDetails.AccountId; if (!(customerID.StartsWith(Constants.CustomerIdPrefix, StringComparison.InvariantCultureIgnoreCase))) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_OnlyCustomersSupported; return(result); } customerID = customerID.Substring(Constants.CustomerIdPrefix.Length); DataSet dataSet = new DataSet(); OleDbDataAdapter dataAdapter; string sqlQuery = "Select * from Customers where CustomerID = '" + customerID + "'"; using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { dataAdapter = new OleDbDataAdapter(sqlQuery, connection); if (dataAdapter.Fill(dataSet, "Customers") == 0) { result.Result = false; result.ErrorMessage = Resources.ErrorMessages_AccountNotFound; return(result); } } result.Result = true; result.ErrorMessage = ""; result.PricingListId = Constants.DefaultValues.PriceList.ID; DataSets.Product product = new DataSets.Product(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.Fill(product.Products); } result.PricingDetailLineItems = new PricingDetailLineItem[OrderDetails.LineItemDetails.Length]; DataSets.Product.ProductsRow row; decimal totalPrice = 0; decimal totalLineItemDiscount = 0; result.ErrorMessage = ""; for (int index = 0; index < OrderDetails.LineItemDetails.Length; index++) { result.PricingDetailLineItems[index] = new PricingDetailLineItem(); result.PricingDetailLineItems[index].Description = OrderDetails.LineItemDetails[index].Description; result.PricingDetailLineItems[index].LineItemId = OrderDetails.LineItemDetails[index].LineItemId; result.PricingDetailLineItems[index].LineType = OrderDetails.LineItemDetails[index].LineType; result.PricingDetailLineItems[index].SynchMessage = ""; try { productId = Convert.ToInt32(OrderDetails.LineItemDetails[index].ProductId); } catch (Exception) { result.PricingDetailLineItems[index].SynchMessage = String.Format(Resources.ErrorMessages_ProductIdWrongFormat, OrderDetails.LineItemDetails[index].ProductId.ToString()); result.ErrorMessage += result.PricingDetailLineItems[index].SynchMessage + "\r\n"; result.Result = false; continue; } if (productIds.Contains(productId)) { result.PricingDetailLineItems[index].SynchMessage = String.Format(Resources.ErrorMessages_OrderWithProductTwice, productId); //result.ErrorMessage += result.PricingDetailLineItems[index].SynchMessage + "\r\n"; //result.Result = false; //continue; } productIds.Add(productId); row = product.Products.FindByProductID(productId); if (row == null) { result.PricingDetailLineItems[index].SynchMessage = String.Format(Resources.ErrorMessages_ProductIdNotFound, productId); result.ErrorMessage += result.PricingDetailLineItems[index].SynchMessage + "\r\n"; result.Result = false; continue; } //result.PricingDetailLineItems[index].RepricingStatus = ??; //result.PricingDetailLineItems[index].StockQuantity = row.IsUnitsInStockNull() ? 0 : (int)row.UnitsInStock; result.PricingDetailLineItems[index].ListPrice = row.IsUnitPriceNull() ? (decimal)0 : row.UnitPrice; result.PricingDetailLineItems[index].Tax = 0; //result.PricingDetailLineItems[index].TaxRate = "no Tax"; result.PricingDetailLineItems[index].TaxRate = "0"; result.PricingDetailLineItems[index].DiscountRate = 0; result.PricingDetailLineItems[index].Discount = 0; if (OrderDetails.LineItemDetails[index].Quantity >= 10) { result.PricingDetailLineItems[index].DiscountRate = 10; result.PricingDetailLineItems[index].Discount = 10; } result.PricingDetailLineItems[index].DiscountSum = ((result.PricingDetailLineItems[index].DiscountRate / 100)) * result.PricingDetailLineItems[index].ListPrice; result.PricingDetailLineItems[index].QuotedPrice = result.PricingDetailLineItems[index].ListPrice * (1 - (result.PricingDetailLineItems[index].DiscountRate / 100)); result.PricingDetailLineItems[index].QuotedPriceTotal = OrderDetails.LineItemDetails[index].Quantity * result.PricingDetailLineItems[index].QuotedPrice; totalPrice += result.PricingDetailLineItems[index].QuotedPriceTotal; totalLineItemDiscount += OrderDetails.LineItemDetails[index].Quantity * result.PricingDetailLineItems[index].DiscountSum; } result.DiscountAmt = 0; result.DiscountPC = 0; result.DiscountType = ""; result.GrossAmt = totalPrice; result.LineItemDisc = totalLineItemDiscount; result.NetAmt = totalPrice; //result.NoDiscAmt = 0; //???? result.PricingListId = OrderDetails.PricingListId; result.OrderQuoteId = OrderDetails.OrderQuoteId; //result.Reference = ""; result.Tax = 0; return(result); }
/* Update */ public override void Update(Document doc, NorthwindConfig config, ref List <TransactionResult> result) { List <TransactionResult> transactionResult = new List <TransactionResult>(); ProductDocument productDoc = doc as ProductDocument; #region check input values if (productDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } // check id #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter.Connection = connection; int recordCount = tableAdapter.FillBy(productDataset.Products, Convert.ToInt32(productDoc.Id)); if (recordCount == 0) { doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, "Product does not exists"); return; } row = (DataSets.Product.ProductsRow)productDataset.Products.Rows[0]; try { // active??? // code??? if (productDoc.name.IsNull) { row.SetProductNameNull(); } else { row.ProductName = Convert.ToString(productDoc.name.Value); } if (productDoc.productfamilyid.IsNull) { row.SetCategoryIDNull(); } else { row.CategoryID = Convert.ToInt32(productDoc.productfamilyid.Value); } // uom category ??? if (productDoc.instock.IsNull) { row.SetUnitsInStockNull(); } else { row.UnitsInStock = Convert.ToInt16(productDoc.instock.Value); } // ModifyID row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { productDoc.Id = ""; #warning Check error message result.Add(productDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; tableAdapter.Update(productDataset.Products); result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); } }
/* Add */ public override void Add(Document doc, NorthwindConfig config, ref List <TransactionResult> result) { List <TransactionResult> transactionResult = new List <TransactionResult>(); ProductDocument productDoc = doc as ProductDocument; #region check input values if (productDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row = productDataset.Products.NewProductsRow(); #region fill dataset from document try { // active??? // code??? if (productDoc.name.IsNull) { row.SetProductNameNull(); } else { row.ProductName = Convert.ToString(productDoc.name.Value); } if (productDoc.productfamilyid.IsNull) { row.SetCategoryIDNull(); } else { row.CategoryID = Convert.ToInt32(productDoc.productfamilyid.Value); } // uom category ??? if (productDoc.instock.IsNull) { row.SetUnitsInStockNull(); } else { row.UnitsInStock = Convert.ToInt16(productDoc.instock.Value); } /* CreateID and ModifyID */ row.CreateID = config.SequenceNumber; row.CreateUser = config.CrmUser; row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { productDoc.Id = ""; #warning Check error message result.Add(productDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } #endregion using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; productDataset.Products.AddProductsRow(row); tableAdapter.Update(productDataset.Products); OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection); object lastid = Cmd.ExecuteScalar(); productDoc.Id = ((int)lastid).ToString(); } result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); }
public Pricing CheckPrice(Pricing PricingInformation, NorthwindConfig config) { int productId = 0; int recordCount; //TODO: did we need to check if Account exists? try { productId = int.Parse(PricingInformation.ProductId); if (productId == 0) { throw new ArgumentException(); } } catch (Exception) { PricingInformation.SynchMessage = Resources.ErrorMessages_ProductNotFound; return(PricingInformation); } DataSets.Product product = new DataSets.Product(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.FillBy(product.Products, productId); } if (recordCount == 0) { PricingInformation.SynchMessage = Resources.ErrorMessages_ProductNotFound; return(PricingInformation); } DataSets.Product.ProductsRow row = product.Products[0]; decimal listprice = row.IsUnitPriceNull() ? (decimal)0 : row.UnitPrice; PricingInformation.ListPrice = XmlConvert.ToString(listprice); PricingInformation.DiscountRate = 0; PricingInformation.Discount = 0; PricingInformation.DiscountSum = 0; if (PricingInformation.Quantity >= 10) { PricingInformation.DiscountRate = new decimal(10); PricingInformation.Discount = new decimal(10); PricingInformation.DiscountSum = listprice * new decimal(0.1); } decimal quotedPrice = listprice - PricingInformation.DiscountSum; PricingInformation.QuotedPrice = XmlConvert.ToString(quotedPrice); PricingInformation.QuotedPriceTotal = XmlConvert.ToString(PricingInformation.Quantity * quotedPrice); PricingInformation.Tax = 0; PricingInformation.TaxRate = 0; return(PricingInformation); }
/* Add */ public override void Add(Document doc, NorthwindConfig config, ref List<TransactionResult> result) { List<TransactionResult> transactionResult = new List<TransactionResult>(); PriceDocument priceDoc = doc as PriceDocument; #region check input values if (priceDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row = productDataset.Products.NewProductsRow(); #region fill dataset from document try { // active??? // price_cid??? // pricinglistid ??? // productid ??? // uomid ??? if (priceDoc.price.IsNull) row.SetUnitPriceNull(); else row.UnitPrice = (decimal)priceDoc.price.Value; /* CreateID and ModifyID */ row.CreateID = config.SequenceNumber; row.CreateUser = config.CrmUser; row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { priceDoc.Id = ""; #warning Check error message result.Add(priceDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } #endregion using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; productDataset.Products.AddProductsRow(row); tableAdapter.Update(productDataset.Products); OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection); object lastid = Cmd.ExecuteScalar(); priceDoc.Id = ((int)lastid).ToString(); } result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); }
/* Update */ public override void Update(Document doc, NorthwindConfig config, ref List<TransactionResult> result) { List<TransactionResult> transactionResult = new List<TransactionResult>(); PriceDocument priceDoc = doc as PriceDocument; #region check input values if (priceDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } // check id #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter.Connection = connection; int recordCount = tableAdapter.FillBy(productDataset.Products, Convert.ToInt32(priceDoc.Id)); if (recordCount == 0) { doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, "Product does not exists"); return; } row = (DataSets.Product.ProductsRow)productDataset.Products.Rows[0]; try { // active??? // price_cid??? // pricinglistid ??? // productid ??? // uomid ??? if (priceDoc.price.IsNull) row.SetUnitPriceNull(); else row.UnitPrice = (decimal)priceDoc.price.Value; // ModifyID row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { priceDoc.Id = ""; #warning Check error message result.Add(priceDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; tableAdapter.Update(productDataset.Products); result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); } }
public override Document GetDocument(Identity identity, Token lastToken, NorthwindConfig config) { int recordCount; DataSets.Product product = new DataSets.Product(); int priceID; priceID = Identity.GetId(identity); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.FillBy(product.Products, priceID); } if (recordCount == 0) return GetDeletedDocument(identity); return GetDocument((DataSets.Product.ProductsRow)product.Products[0], lastToken, config); }
/* Update */ public override void Update(Document doc, NorthwindConfig config, ref List<TransactionResult> result) { List<TransactionResult> transactionResult = new List<TransactionResult>(); UnitOfMeasureFamilyDocument uomFamilyDoc = doc as UnitOfMeasureFamilyDocument; #region check input values if (uomFamilyDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } // check id #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter.Connection = connection; int recordCount = tableAdapter.FillBy(productDataset.Products, Convert.ToInt32(uomFamilyDoc.Id)); if (recordCount == 0) { doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, "Product does not exists"); return; } row = (DataSets.Product.ProductsRow)productDataset.Products.Rows[0]; try { // active ??? // defaultvalue ??? if(!uomFamilyDoc.name.NotSet) if (uomFamilyDoc.name.IsNull) row.SetQuantityPerUnitNull(); else row.QuantityPerUnit = (string)uomFamilyDoc.name.Value; if(!uomFamilyDoc.description.NotSet) if (uomFamilyDoc.description.IsNull) row.SetProductNameNull(); else row.ProductName = (string)uomFamilyDoc.description.Value; // ModifyID row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { uomFamilyDoc.Id = ""; #warning Check error message result.Add(uomFamilyDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; tableAdapter.Update(productDataset.Products); result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); } }
/* Add */ public override void Add(Document doc, NorthwindConfig config, ref List<TransactionResult> result) { List<TransactionResult> transactionResult = new List<TransactionResult>(); UnitOfMeasureFamilyDocument uomFamilyDoc = doc as UnitOfMeasureFamilyDocument; #region check input values if (uomFamilyDoc == null) { result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported)); return; } #endregion DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; DataSets.Product productDataset = new DataSets.Product(); DataSets.Product.ProductsRow row = productDataset.Products.NewProductsRow(); #region fill dataset from document try { // active ??? // defaultvalue ??? if (uomFamilyDoc.name.IsNull) row.SetQuantityPerUnitNull(); else row.QuantityPerUnit = (string)uomFamilyDoc.name.Value; if (uomFamilyDoc.description.IsNull) row.SetProductNameNull(); else row.ProductName = (string)uomFamilyDoc.description.Value; // CreateID and ModifyID row.CreateID = config.SequenceNumber; row.CreateUser = config.CrmUser; row.ModifyID = config.SequenceNumber; row.ModifyUser = config.CrmUser; } catch (Exception e) { uomFamilyDoc.Id = ""; #warning Check error message result.Add(uomFamilyDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString())); return; } #endregion using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { connection.Open(); tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; productDataset.Products.AddProductsRow(row); tableAdapter.Update(productDataset.Products); OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection); object lastid = Cmd.ExecuteScalar(); uomFamilyDoc.Id = ((int)lastid).ToString(); } result.Add(doc.SetTransactionStatus(TransactionStatus.Success)); }
public Pricing CheckPrice(Pricing PricingInformation, NorthwindConfig config) { int productId = 0; int recordCount; //TODO: did we need to check if Account exists? try { productId = int.Parse(PricingInformation.ProductId); if (productId == 0) throw new ArgumentException(); } catch (Exception) { PricingInformation.SynchMessage = Resources.ErrorMessages_ProductNotFound; return PricingInformation; } DataSets.Product product = new DataSets.Product(); using (OleDbConnection connection = new OleDbConnection(config.ConnectionString)) { DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter; tableAdapter = new DataSets.ProductTableAdapters.ProductsTableAdapter(); tableAdapter.Connection = connection; recordCount = tableAdapter.FillBy(product.Products, productId); } if (recordCount == 0) { PricingInformation.SynchMessage = Resources.ErrorMessages_ProductNotFound; return PricingInformation; } DataSets.Product.ProductsRow row = product.Products[0]; decimal listprice = row.IsUnitPriceNull() ? (decimal)0 : row.UnitPrice; PricingInformation.ListPrice = XmlConvert.ToString(listprice); PricingInformation.DiscountRate = 0; PricingInformation.Discount = 0; PricingInformation.DiscountSum = 0; if (PricingInformation.Quantity >= 10) { PricingInformation.DiscountRate = new decimal(10); PricingInformation.Discount = new decimal(10); PricingInformation.DiscountSum = listprice * new decimal(0.1); } decimal quotedPrice = listprice - PricingInformation.DiscountSum; PricingInformation.QuotedPrice = XmlConvert.ToString(quotedPrice); PricingInformation.QuotedPriceTotal = XmlConvert.ToString(PricingInformation.Quantity * quotedPrice); PricingInformation.Tax = 0; PricingInformation.TaxRate = 0; return PricingInformation; }