public Delivery Update(int id, Delivery delivery)
        {
            if (id != delivery.Id) return null;
            var old = _deliveryRepository.GetById(id);
            if (old == null) return null;
            Delivery result = null;

            if (!String.IsNullOrEmpty(delivery.Printed) && !String.IsNullOrEmpty(delivery.Signature))
                result = _deliveryRepository.Complete(delivery);

            return delivery;
        }
 public Delivery Complete(Delivery delivery)
 {
     var query = new DapperQuery(ConnectionString)
     {
         Sql = @"UPDATE [Delivery]
                 SET [Signature] = @Signature,
                     [Printed] = @Printed,
                     [Completed] = @Completed
                 WHERE [Id] = @Id",
         Parameters = new
         {
             Id = delivery.Id,
             Signature = delivery.Signature,
             Printed = delivery.Printed,
             Completed = DateTime.UtcNow
         }
     };
     QueryExecutor.Execute(query);
     foreach (var item in delivery.Items)
     {
         SaveDeliveredQty(item);
     }
     return GetById(delivery.Id);
 }
 public Delivery Insert(Delivery delivery)
 {
     return _deliveryRepository.Insert(delivery);
 }
 public Delivery Insert(Delivery delivery)
 {
     lock (locker)
     {
         delivery.Id = id++;
     }
     _repo.Add(delivery);
     return delivery;
 }
        public Delivery Complete(Delivery delivery)
        {
            var old = _repo.Where(x => x.Id == delivery.Id).FirstOrDefault();
            if (old == null) return null;

            old.Signature = delivery.Signature;
            old.Printed = delivery.Printed;
            old.Completed = DateTime.Now;

            foreach (var item in delivery.Items)
            {
                old.Items.First(x => x.Id == item.Id).Delivered = item.Delivered;
            }

            return delivery;
        }
        public Delivery Insert(Delivery delivery)
        {
            using (var conn = new SqlConnection(ConnectionString))
            using (var cmd = conn.CreateCommand())
            {
                cmd.CommandText = @"INSERT INTO [Delivery]
                        ([Number],[SeqNum],[Company],[Salesman],[Addr1],[Addr2],[City],[State],[Zip],[Phone],[Contact],[PoNumber],[Truck])	Values
                        (@Number, @SeqNum, @Company, @Salesman, @Addr1, @Addr2, @City, @State, @Zip, @Phone, @Contact, @PoNumber, @Truck)
                        select SCOPE_IDENTITY()";
                cmd.Parameters.AddWithValue("@Number", delivery.Number);
                cmd.Parameters.AddWithValue("@SeqNum", delivery.SeqNum);
                cmd.Parameters.AddWithValue("@Company", delivery.Company);
                cmd.Parameters.AddWithValue("@Salesman", delivery.Salesman);
                cmd.Parameters.AddWithValue("@Addr1", delivery.Addr1);
                cmd.Parameters.AddWithValue("@Addr2", delivery.Addr2 ?? "");
                cmd.Parameters.AddWithValue("@City", delivery.City);
                cmd.Parameters.AddWithValue("@State", delivery.State);
                cmd.Parameters.AddWithValue("@Zip", delivery.Zip);
                cmd.Parameters.AddWithValue("@Phone", delivery.Phone);
                cmd.Parameters.AddWithValue("@Contact", delivery.Contact);
                cmd.Parameters.AddWithValue("@PoNumber", delivery.PoNumber);
                cmd.Parameters.AddWithValue("@Truck", delivery.Truck);

                conn.Open();
                delivery.Id = Convert.ToInt32(cmd.ExecuteScalar());
            }

            InsertItems(delivery.Items, delivery.Id);

            return delivery;
        }