示例#1
0
 private void CreateAndStoreProductPriceWithSameDateAndSameSource(Guid productId)
 {
     using (var storeSession = documentStore.OpenSession())
     {
         var moody                = "Moody";
         var pricingDate          = new DateTime(2011, 4, 1, 8, 0, 0);
         var productPriceDocument = new PriceDocument
         {
             AskPrice    = 1m,
             BidPrice    = 1m,
             Id          = productId + "/1",
             PricingDate = pricingDate,
             PriceId     = productId,
             Source      = moody,
             Version     = 1
         };
         var productPriceDocument1 = new PriceDocument
         {
             AskPrice    = 1m,
             BidPrice    = 1m,
             Id          = productId + "/2",
             PricingDate = new DateTime(2011, 4, 1, 9, 0, 0),
             PriceId     = productId,
             Source      = moody,
             Version     = 2
         };
         storeSession.Store(productPriceDocument);
         storeSession.Store(productPriceDocument1);
         storeSession.SaveChanges();
     }
 }
示例#2
0
        private void CreateAndStorePriceWithWithDatesAndSources(Guid productId)
        {
            using (var storeSession = documentStore.OpenSession())
            {
                var sourceBla             = "Bla";
                var sourceFoo             = "Foo";
                var pricingDate           = new DateTime(2011, 9, 1, 8, 0, 0);
                var productPriceDocument1 = new PriceDocument
                {
                    AskPrice    = 1m,
                    BidPrice    = 1m,
                    Id          = productId + "/1",
                    PricingDate = pricingDate,
                    PriceId     = productId,
                    Source      = sourceBla,
                    Version     = 1
                };
                var productPriceDocument2 = new PriceDocument
                {
                    AskPrice    = 1m,
                    BidPrice    = 1m,
                    Id          = productId + "/2",
                    PricingDate = pricingDate.AddHours(1),
                    PriceId     = productId,
                    Source      = sourceBla,
                    Version     = 2
                };
                storeSession.Store(productPriceDocument1);
                storeSession.Store(productPriceDocument2);
                var productPriceDocument3 = new PriceDocument
                {
                    AskPrice    = 1m,
                    BidPrice    = 1m,
                    Id          = productId + "/3",
                    PricingDate = pricingDate,
                    PriceId     = productId,
                    Source      = sourceFoo,
                    Version     = 3
                };
                var productPriceDocument4 = new PriceDocument
                {
                    AskPrice    = 1m,
                    BidPrice    = 1m,
                    Id          = productId + "/4",
                    PricingDate = pricingDate.AddDays(1),
                    PriceId     = productId,
                    Source      = sourceFoo,
                    Version     = 4
                };
                storeSession.Store(productPriceDocument3);
                storeSession.Store(productPriceDocument4);

                storeSession.SaveChanges();
            }
        }
示例#3
0
        private PriceDocument GetDocument(DataSets.Product.ProductsRow productRow, Token lastToken, NorthwindConfig config)
        {
            #region Declarations
            PriceDocument priceDoc;
            string        identity;
            #endregion

            identity = productRow.ProductID.ToString();

            // create Account Doc
            priceDoc    = new PriceDocument();
            priceDoc.Id = identity;

            if (lastToken.InitRequest)
            {
                priceDoc.LogState = LogState.Created;
            }

            else if (productRow.IsCreateIDNull() || productRow.IsModifyIDNull() ||
                     productRow.IsCreateUserNull() || productRow.IsModifyUserNull())
            {
                priceDoc.LogState = LogState.Created;
            }

            else if ((productRow.CreateID > lastToken.SequenceNumber) &&
                     (productRow.CreateUser != config.CrmUser))
            {
                priceDoc.LogState = LogState.Created;
            }

            else if ((productRow.CreateID == lastToken.SequenceNumber) &&
                     (productRow.CreateUser != config.CrmUser) &&
                     (identity.CompareTo(lastToken.Id.Id) > 0))
            {
                priceDoc.LogState = LogState.Created;
            }
            else if ((productRow.ModifyID >= lastToken.SequenceNumber) && (productRow.ModifyUser != config.CrmUser))
            {
                priceDoc.LogState = LogState.Updated;
            }

            priceDoc.active.Value = true;

            priceDoc.price_cid.Value = config.CurrencyCode;

            priceDoc.pricinglistid.Value = Constants.DefaultValues.PriceList.ID;

            priceDoc.productid.Value = identity;

            priceDoc.uomid.Value = identity;

            priceDoc.price.Value = productRow.IsUnitPriceNull() ? new Decimal(0) : productRow.UnitPrice;

            return(priceDoc);
        }
示例#4
0
        /* 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));
            }
        }
示例#5
0
        /* 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));
        }