using BLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;

namespace WebAPI.Controllers
{
    public class VehicleController : ApiController
    {
        // GET: Vehicle
        public Model.ResponeData getVehicleDataExchange(string projectId)
        {
            var responeData = new Model.ResponeData();
            try
            {
                responeData.data = from x in Funs.DB.HSSE_Vehicle
                                   join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                                    where x.ProjectId == projectId
                                   && !x.ExchangeTime.HasValue
                            
                                   select new
                                   {
                                       x.VehicleId,
                                       x.VehType,
                                       x.CarNo,
                                       x.OperatorName,
                                       x.Phone,
                                       y.UnitCode,
                                       y.UnitName,
                                       y.ShortUnitName,                                       
                                       x.UnitId,
                                       x.BeginTime,
                                       x.EndTime,
                                       x.Remark,
                                       x.ExchangeTime
                                   };
            }
            catch (Exception ex)
            {
                responeData.code = 0;
                responeData.message = ex.Message;
                ErrLogInfo.WriteLog(ex, "WX接口-获取人员下发门禁", "PersonController.getPersonDataExchange");
            }
            return responeData;
        }
        #region 更新车辆数据交换时间
        /// <summary>
        /// 更新车辆数据交换时间
        /// </summary>
        /// <param name="vehicleId">人员ID</param>
        /// <returns></returns>
        public Model.ResponeData getUpdateVehicleExchangeTime(string vehicleId)
        {
            var responeData = new Model.ResponeData();
            try
            {
                using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
                {
                    var vehicle = db.HSSE_Vehicle.FirstOrDefault(e => e.VehicleId == vehicleId);
                    if (vehicle != null)
                    {
                        vehicle.ExchangeTime = DateTime.Now;
                        db.SubmitChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                responeData.code = 0;
                responeData.message = ex.Message;
                ErrLogInfo.WriteLog(ex, "WX接口-更新车辆数据交换时间", "Vehicle.getUpdateVehicleExchangeTime");
            }
            return responeData;
        }
        #endregion


        public Model.ResponeData getVehicleInOut(string projectId, string vehicleId, int isIn, DateTime changeTime)
        {
            var responeData = new Model.ResponeData();
            try
            {
                

                using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
                {
                    Model.HSSE_VehicleInOut newInOut = new Model.HSSE_VehicleInOut
                    {
                        VehicleInOutId = Guid.NewGuid().ToString(),
                        ProjectId = projectId,
                        VehicleId = vehicleId,
                        IsIn = isIn == 1 ? true : false,
                        ChangeTime = changeTime,
                        InOutWay = Const.InOutWay_1,
                    };
                    db.HSSE_VehicleInOut.InsertOnSubmit(newInOut);
                    db.SubmitChanges();

                }
            }
            catch (Exception ex)
            {
                responeData.code = 0;
                responeData.message = ex.Message;
                ErrLogInfo.WriteLog(ex, "WX接口-插入车辆出入场记录", "PersonController.getPersonInOut");
            }
            return responeData;
        }
    }
}