Esempio n. 1
0
        /// <summary>
        /// Saves the order.
        /// </summary>
        /// <param name="order">The order.</param>
        /// <returns></returns>
        public Optional <int> SaveOrder(AmazonOrder order)
        {
            using (var connection = GetOpenedSqlConnection2()) {
                var cmd = new MultiInsertCommandGenerator <AmazonOrder>()
                          .WithOptionalConnection(connection.SqlConnection())
                          .WithTableName(Tables.AmazonOrder)
                          .WithModels(order.ToEnumerable())
                          .WithSkipColumns(o => o.Id)
                          .WithOutputColumns(o => o.Id)
                          .Verify().GenerateCommands().First();

                using (var sqlCommand = cmd) {
                    return(ExecuteScalarAndLog <int>(sqlCommand));
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Saves the order item payments.
        /// </summary>
        /// <param name="payments">The payments.</param>
        /// <returns></returns>
        public bool SaveOrderItemPayments(IEnumerable <AmazonOrderItemPayment> payments)
        {
            using (var connection = GetOpenedSqlConnection2()) {
                bool res = new MultiInsertCommandGenerator <AmazonOrderItemPayment>()
                           .WithOptionalConnection(connection.SqlConnection())
                           .WithTableName(Tables.AmazonOrderItemPayment)
                           .WithSkipColumns(o => o.Id)
                           .WithModels(payments)
                           .Verify()
                           .GenerateCommands()
                           .MapNonqueryExecuteToBool()
                           .All(o => o);


                return(res);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Saves the order details.
        /// </summary>
        /// <param name="details">The details.</param>
        /// <returns></returns>
        public IEnumerable <int> SaveOrderDetails(IEnumerable <AmazonOrderItemDetail> details)
        {
            List <int> ids = new List <int>(details.Count());

            using (var connection = GetOpenedSqlConnection2()) {
                var commands = new MultiInsertCommandGenerator <AmazonOrderItemDetail>()
                               .WithModels(details)
                               .WithOptionalConnection(connection.SqlConnection())
                               .WithSkipColumns(o => o.Id)
                               .WithOutputColumns(o => o.Id)
                               .WithTableName(Tables.AmazonOrderItemDetail)
                               .Verify()
                               .GenerateCommands();

                foreach (var command in commands)
                {
                    using (var sqlCommand = command) {
                        ids.AddRange(CreatePrimitivesCollection <int>(sqlCommand.ExecuteReader()));
                    }
                }
            }

            return(ids);
        }