public HttpResponseMessage SaveUnJointTruckStatus(UnJointTruck unJointTruck)
        {
            if (string.IsNullOrEmpty(unJointTruck.VoucherID))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Document number is empty!"));
            }
            try
            {
                gate.ExecuteNonQuery(@"UPDATE UnJointTruck
                                       SET [Status] = @Status
                                          ,[Stamp] = @Stamp
                                    WHERE VoucherID = @VoucherID",
                                     new object[]
                {
                    unJointTruck.Status,
                    DateTime.Now,
                    unJointTruck.VoucherID,
                });

                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
                return(response);
            }
            catch (Exception e)
            {
                Loger.Error(e);
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e.Message + e.StackTrace));
            }
        }
        /// <summary>
        /// 用于监测Context中的Entity是否存在,如果存在,将其Detach,防止出现问题。
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private Boolean RemoveHoldingEntityInContext(UnJointTruck entity)
        {
            var objContext = ((IObjectContextAdapter)_GateContext).ObjectContext;
            var objSet     = objContext.CreateObjectSet <UnJointTruck>();
            var entityKey  = objContext.CreateEntityKey(objSet.EntitySet.Name, entity);

            Object foundEntity;
            var    exists = objContext.TryGetObjectByKey(entityKey, out foundEntity);

            if (exists)
            {
                objContext.Detach(foundEntity);
            }

            return(exists);
        }
        /// <summary>
        /// 保存一条非系统协同车辆信息
        /// </summary>
        /// <param name="goods"></param>
        /// <returns></returns>
        public IHttpActionResult SaveUnJointTruck(UnJointTruck unJointTruck)
        {
            try
            {
                Console.WriteLine("SaveUnJointTruck:" + DateTime.Now.ToString());
                string voucherId = string.IsNullOrEmpty(unJointTruck.VoucherID) ? "" : unJointTruck.VoucherID;

                if (unJointTruck.VehicleType == "19" && CheckContainerisExist(unJointTruck.OrderNO, unJointTruck.StorageNO))
                {
                    return(BadRequest(string.Format("Container with {0} - {1} already exist, that can not add!", unJointTruck.OrderNO, unJointTruck.StorageNO)));
                }
                var    _UnJointTruck = _GateContext.UnJointTrucks.Find(voucherId);
                string result        = string.Empty;

                if (_UnJointTruck != null)
                {
                    unJointTruck.Stamp = DateTime.Now;
                    //
                    RemoveHoldingEntityInContext(unJointTruck);
                    //
                    _GateContext.Entry(unJointTruck).State = EntityState.Modified;
                }
                else
                {
                    if (string.IsNullOrEmpty(unJointTruck.Status))
                    {
                        unJointTruck.Status = "";
                    }
                    string vouIdNew = GetUnjointTruckVoucherIDFlow();

                    unJointTruck.VoucherID = vouIdNew;
                    unJointTruck.Stamp     = DateTime.Now;
                    _GateContext.UnJointTrucks.Add(unJointTruck);
                }

                _GateContext.SaveChanges();

                return(Ok(unJointTruck));
            }
            catch (Exception e)
            {
                Loger.Error(e);
                Console.WriteLine(e);
                return(BadRequest(e.Message + e.StackTrace));
            }
        }