public async Task CompleteOrderAsync(Int32 orderId, Byte[] signature)
        {
            if (orderId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(orderId));
            }
            if (signature == null)
            {
                throw new ArgumentNullException(nameof(signature));
            }
            var task = Task
                       .Factory
                       .StartNew(() => {
                _cn.BeginTransaction();
                _cn.Execute("UPDATE [Order] SET Signature = ?, OrderStatus = ? WHERE Id = ?", signature, OrderStatus.Completed, orderId);

                var order = Get(orderId);

                var dh            = new DeliveryHistory();
                dh.Revenue        = order.TotalDelivered;
                dh.AverageSpeed   = _dataGenerator.GetInteger(35, 50);
                dh.CustomerId     = order.CustomerId;
                dh.DateDelivered  = DateTime.Now;
                dh.FuelEfficiency = _dataGenerator.GetInteger(25, 30);
                dh.MileDriven     = _dataGenerator.GetInteger(5, 12);
                dh.OrderId        = orderId;
                dh.ItemsDelivered = GetOrderItems(orderId).Where(x => x.OrderItemStatus == OrderItemStatus.Delivered).Sum(x => x.Quantity);
                _deliveryHistoryService.Insert(dh);
                _cn.Commit();
            });

            await task;
        }
Esempio n. 2
0
        public static string ChooseString(this IDataGenerator dataGenerator, IEnumerable <string> values, int nullOdds = 0)
        {
            if (dataGenerator.IsNull(nullOdds))
            {
                return(null);
            }

            return(values.ElementAt(dataGenerator.GetInteger(0, values.Count() - 1)));
        }
Esempio n. 3
0
        private static bool IsNull(this IDataGenerator dataGenerator, int nullOdds)
        {
            if (nullOdds <= 0)
            {
                return(false);
            }

            return(dataGenerator.GetInteger(1, nullOdds) == nullOdds);
        }
Esempio n. 4
0
 public static string ChooseString(this IDataGenerator dataGenerator, params string[] values)
 {
     return(values[dataGenerator.GetInteger(0, values.Length - 1)]);
 }
Esempio n. 5
0
 public static string GetStreetAddress(this IDataGenerator dataGenerator, int nullOdds = 0)
 {
     return($"{dataGenerator.GetInteger(1, 9999)} {dataGenerator.GetStreetName()}");
 }