Esempio n. 1
0
        /// <summary>取得群組資料</summary>
        public static DataTable GetGroupList(string GroupID, string GroupName, Pages _page)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("GroupID", GroupID);
                param.Add("GroupName", "%" + GroupName + "%");
                db.SqlParams = param;

                //條件式
                string strWHERE = "";
                if (!string.IsNullOrEmpty(GroupID))
                {
                    strWHERE += " AND GroupID = @GroupID ";
                }
                if (!string.IsNullOrEmpty(GroupName))
                {
                    strWHERE += " AND GroupName LIKE @GroupName ";
                }

                //取回資料
                int iTotal;
                var sql = "SELECT * FROM [Group] WHERE 1=1" + strWHERE;
                var dt  = db.ExecuteDataTable(sql, "GroupID", _page.PageIndex, _page.PageSize, out iTotal);
                _page.TotalRows = iTotal;

                return(dt);
            }
        }
Esempio n. 2
0
        private void OnLoad()
        {
            database = new DataBase.DataBase();

            //database.connectDB();

            DateTime now = DateTime.Now;

            startDatePicker.Value = now.Date;
            startTimePicker.Value = now.ToUniversalTime();
            now = now.AddDays(1.0);
            stopDatePicker.Value = now.Date;
            stopTimePicker.Value = now.ToUniversalTime();

            schedulerComboBox.SelectedIndex = 0;

            List <string> objectiveFunctionnames = Forms.ObjectiveBuilderForm.getSavedObjectiveNames();

            for (int i = 0; i < objectiveFunctionnames.Count; i++)
            {
                objectiveComboBox.Items.Add(objectiveFunctionnames[i]);
            }
            if (objectiveComboBox.Items.Count > 0)
            {
                objectiveComboBox.SelectedIndex = 0;
            }
            comboScenarioBox.SelectedIndex = 0;

            database.displayAllSatellites(checkedSatellites);
            database.displayAllStations(checkedStations);

            validateRichTextBox();

            runList = new List <AutomatedRun>();
        }
Esempio n. 3
0
        /// <summary>取得使用者清單資料檔</summary>
        public static DataTable GetUserLoginLog(string _account, string _ip, Pages _page)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("Account", _account);
                param.Add("IP", _ip);
                db.SqlParams = param;

                //條件式
                string strWhere = "";
                if (!string.IsNullOrEmpty(_account))
                {
                    strWhere += " AND Account = @Account ";
                }
                if (!string.IsNullOrEmpty(_ip))
                {
                    strWhere += " AND IP = @IP ";
                }

                //取回資料
                int iTotal;
                var sql = "SELECT * FROM [UserLoginLog] WHERE 1=1 " + strWhere;
                var dt  = db.ExecuteDataTable(sql, "LoginDate DESC", _page.PageIndex, _page.PageSize, out iTotal);
                _page.TotalRows = iTotal;

                return(dt);
            }
        }
Esempio n. 4
0
        public static DataTable GetSpecialTruckFilteredDetails(string TRUCK_NO)
        {
            DataTable dt = null;

            string Io_no = System.Web.Configuration.WebConfigurationManager.AppSettings["IO_No"];

            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                var param = new DataBase.SqlParams();

                param.Add("TRUCK_NO", TRUCK_NO);

                param.Add("IO_NO", Io_no);

                db.SqlParams = param;

                string strWHERE = "";

                if (!string.IsNullOrEmpty(Io_no))
                {
                    strWHERE += " AND IO_NO = '" + Io_no + "' ";
                }

                db.StrSQL = "SELECT DISTINCT TRUCK_NO FROM WMS_RFID_TRUCK WHERE 1=1 AND  (DOCKED IS NULL OR DOCKED='')  AND TRUCK_NO = '" + TRUCK_NO + "'" + strWHERE;

                dt = db.ExecuteDataTable();

                return(dt);
            }
        }
        /// <summary>儲存DockDoor InnoapStatus 資料</summary>
        public static void SaveDockDoorInfo_InnoapStatus(string IP, string InnoapStatus)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("IP", IP);
                param.Add("InnoapStatus", InnoapStatus);

                db.SqlParams = param;

                //修改
                db.StrSQL =
                    @"DECLARE @Count int;
                          SET @Count = (SELECT COUNT(*) FROM [Innolux_DockDoor] WHERE IP = @IP);
                          IF (@Count = 1) BEGIN
                             UPDATE [Innolux_DockDoor] SET InnoapStatus=@InnoapStatus WHERE IP=@IP;
                          END ELSE BEGIN
                             THROW 51000, 'IP不存在', 1;
                          END";

                db.ExecuteSQL();
            }
        }
Esempio n. 6
0
        /// <summary>取得所有選單檔</summary>
        public static DataTable GetAllMenuList(bool?Enabled)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("Enabled", Enabled);
                db.SqlParams = param;

                //條件式
                string strWHERE = "";
                if (Enabled != null)
                {
                    strWHERE += " AND Enabled = @Enabled ";
                }

                //取回資料
                db.StrSQL = "SELECT * FROM Menu WHERE 1=1" + strWHERE + "ORDER BY OrderID";
                var dt    = db.ExecuteDataTable();
                var dtNew = dt.Clone();

                //依選單順序排列
                foreach (var r in dt.Select("LEN(MenuNo) = 2", "OrderID"))
                {
                    dtNew.Rows.Add(r.ItemArray);
                    foreach (var r1 in dt.Select("LEN(MenuNo) = 4 AND MenuNo LIKE '" + r["MenuNo"].ToString() + "%'"))
                    {
                        dtNew.Rows.Add(r1.ItemArray);
                    }
                }

                return(dtNew);
            }
        }
Esempio n. 7
0
        /// <summary>取得條件式最後的選單編號</summary>
        public static string GetMaxMenuNo(string ParentMenuNo, int?MenuNoLen)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("ParentMenuNo", ParentMenuNo + "%");
                param.Add("MenuNoLen", MenuNoLen);
                db.SqlParams = param;

                //條件式
                string strWhere = "";
                if (!string.IsNullOrEmpty(ParentMenuNo))
                {
                    strWhere += " AND MenuNo LIKE @ParentMenuNo ";
                }
                if (MenuNoLen != null)
                {
                    strWhere += " AND LEN(MenuNo) = @MenuNoLen ";
                }

                //取回資料
                db.StrSQL = "SELECT MAX(MenuNo) FROM Menu WHERE 1=1" + strWhere;

                //編號轉換,若回傳空值則從00編號開始
                string strMaxMenuNo = db.ExecuteScalar();
                if (string.IsNullOrEmpty(strMaxMenuNo))
                {
                    strMaxMenuNo = ParentMenuNo + "00";
                }

                return(strMaxMenuNo);
            }
        }
Esempio n. 8
0
        /// <summary>刪除指定的選單編號</summary>
        public static void DelMenu(string MenuNo)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("MenuNo", MenuNo + "%");
                db.SqlParams = param;

                //刪除相關資料表
                db.StrSQL =
                    @"DECLARE @Count int;
                      SET @Count = (SELECT COUNT(*) FROM [Menu] WHERE MenuNo LIKE @MenuNo);

                      IF (@Count = 1) BEGIN
                        DELETE FROM [Menu] WHERE MenuNo LIKE @MenuNo;
                        DELETE FROM [Auth] WHERE MenuNo LIKE @MenuNo;
                      END ELSE BEGIN
                        THROW 51000, '無法刪除子選單!', 1;
                      END";

                db.ExecuteSQL();
            }
        }
Esempio n. 9
0
        /// <summary>修改使用者密碼</summary>
        public static bool EditPassword(PasswordEditViewModel m)
        {
            //找出此使用者資訊
            DataTable dt = UserDataAccess.GetUserList(m.ID, null, null, null, null, new Pages());

            if (dt.Rows.Count > 0)
            {
                //驗証
                string strOldPwd  = dt.Rows[0]["Password"].ToString();
                string strOldPwd1 = Util.MD5(m.Password, 32);
                if (strOldPwd1 != strOldPwd)
                {
                    throw new Exception("原密碼不相符");
                }

                //開啟資料庫存取物件
                using (var db = new DataBase.DataBase(Definition.Conn))
                {
                    //資料庫參數
                    var param = new DataBase.SqlParams();
                    param.Add("ID", m.ID);
                    param.Add("NewPassword", Util.MD5(m.NewPassword, 32));
                    db.SqlParams = param;

                    //異動資料
                    db.StrSQL = "UPDATE [User] SET Password = @NewPassword WHERE ID = @ID";
                    int iResult = db.ExecuteSQL();
                    return(iResult > 0);
                }
            }
            else
            {
                throw new Exception("無此使用者相關資訊");
            }
        }
        /// <summary>取得系統參數資料</summary>
        public static DataTable GetSysParams(string ParaCode, string ParaDesc, Pages _page)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("ParaCode", ParaCode);
                param.Add("ParaDesc", "%" + ParaDesc + "%");
                db.SqlParams = param;

                //條件式
                string strWHERE = "";
                if (!string.IsNullOrEmpty(ParaCode))
                {
                    strWHERE += " AND ParaCode = @ParaCode ";
                }
                if (!string.IsNullOrEmpty(ParaDesc))
                {
                    strWHERE += " AND ParaDesc LIKE @ParaDesc ";
                }

                //取回資料
                int iTotal;
                var sql = "SELECT * FROM [SysParams] WHERE 1=1" + strWHERE;
                var dt  = db.ExecuteDataTable(sql, "ParaCode", _page.PageIndex, _page.PageSize, out iTotal);
                _page.TotalRows = iTotal;

                return(dt);
            }
        }
        /// <summary>儲存系統參數資料</summary>
        public static bool SaveSysParamsInfo(SysParamsDetailViewModel m)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("ParaCode", m.ParaCode);
                param.Add("ParaValue", m.ParaValue);
                param.Add("ParaDesc", m.ParaDesc);
                db.SqlParams = param;

                if (m.Action == "Add")
                {
                    //驗証系統代碼是否重覆
                    var dtParams = GetSysParams(m.ParaCode, null, new Pages());
                    if (dtParams.Rows.Count > 0)
                    {
                        throw new Exception("已有重覆的系統代碼");
                    }

                    //新增系統參數
                    db.StrSQL = "INSERT [SysParams](ParaCode, ParaValue, ParaDesc) VALUES(@ParaCode, @ParaValue, @ParaDesc);";
                }
                else
                {
                    //修改系統參數
                    db.StrSQL = "UPDATE [SysParams] SET ParaValue = @ParaValue, ParaDesc = @ParaDesc WHERE ParaCode = @ParaCode;";
                }

                int iResult = db.ExecuteSQL();
                return(iResult > 0);
            }
        }
Esempio n. 12
0
        /// <summary>取得使用者權限檔</summary>
        public static DataTable GetUserAuthority(string _account)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("Account", _account);
                param.Add("Enabled", true);
                db.SqlParams = param;

                //取回資料
                db.StrSQL = @"SELECT MenuNo,
	                            Convert(bit, MAX(Convert(int, [Add]))) [Add],
	                            Convert(bit, MAX(Convert(int, [Edit]))) [Edit],
	                            Convert(bit, MAX(Convert(int, [Del]))) [Del],	
	                            Convert(bit, MAX(Convert(int, [Query]))) [Query],	
	                            Convert(bit, MAX(Convert(int, [Audit]))) [Audit],
	                            Convert(bit, MAX(Convert(int, [Print]))) [Print],
	                            Convert(bit, MAX(Convert(int, [Export]))) [Export],
	                            Convert(bit, MAX(Convert(int, [Import]))) [Import],
	                            Convert(bit, MAX(Convert(int, [Admin]))) [Admin],
	                            Convert(bit, MAX(Convert(int, [Enabled]))) [Enabled]
                              FROM(
	                            SELECT a.* FROM [Auth] a WHERE a.Account = @Account AND a.Enabled = @Enabled
	                            UNION ALL
	                            SELECT a.* FROM [Auth] a, [GroupUser] g WHERE a.GroupID = g.GroupID AND a.Enabled = @Enabled AND g.Account = @Account
                              ) r
                              GROUP BY MenuNo";
                return(db.ExecuteDataTable());
            }
        }
Esempio n. 13
0
        /// <summary>取得使用者的選單權限</summary>
        public static DataTable GetUserMenuAuth(string Account)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("Account", Account);
                db.SqlParams = param;

                //取回資料
                db.StrSQL = @"SELECT m.MenuNo, m.MenuName, m.MenuIco, m.OrderID, a.* FROM Menu m
                              LEFT OUTER JOIN Auth a ON a.MenuNo = m.MenuNo AND a.Account = @Account
                              ORDER BY OrderID";

                var dt    = db.ExecuteDataTable();
                var dtNew = dt.Clone();

                //依選單順序排列
                foreach (var r in dt.Select("LEN(MenuNo) = 2", "OrderID"))
                {
                    dtNew.Rows.Add(r.ItemArray);
                    foreach (var r1 in dt.Select("LEN(MenuNo) = 4 AND MenuNo LIKE '" + r["MenuNo"].ToString() + "%'"))
                    {
                        dtNew.Rows.Add(r1.ItemArray);
                    }
                }

                return(dtNew);
            }
        }
Esempio n. 14
0
        /// <summary>更新使用者登入時間</summary>
        public static void SetUserLoginDate(LoginViewModel m)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn, true))
            {
                try
                {
                    //資料庫參數
                    var param = new DataBase.SqlParams();
                    param.Add("Account", m.Account);
                    param.Add("IP", m.IP);
                    param.Add("LastLoginDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
                    db.SqlParams = param;

                    //更新使用者最後登入時間,記錄使用者登錄Log
                    db.StrSQL = @"UPDATE [User] SET LastLoginDate = @LastLoginDate WHERE Account = @Account;
                                  INSERT [UserLoginLog](Account, IP, LoginDate) VALUES(@Account, @IP, @LastLoginDate);";
                    db.ExecuteSQL();

                    //確認執行交易
                    db.Commit();
                }
                catch (Exception e)
                {
                    //回復交易
                    db.Rollback();
                    throw e;
                }
            }
        }
Esempio n. 15
0
        /// <summary>取得TagLog資料</summary>
        public static DataTable GetTagLogList(string DockDoorID, string Status, Pages _page)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //判斷Status成功或失敗
                Status = (Status == "Y" ? "'Y','A'" : Status);
                Status = (Status == "N" ? "'N','0'" : Status);

                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("DockDoorID", DockDoorID);
                db.SqlParams = param;

                //條件式
                string strWHERE = "";
                if (!string.IsNullOrEmpty(DockDoorID))
                {
                    strWHERE += " AND DockDoorID = @DockDoorID ";
                }
                if (!string.IsNullOrEmpty(Status))
                {
                    strWHERE += " AND Status IN (" + Status + ") ";
                }

                //取回資料
                int iTotal;
                var sql = "SELECT * FROM Innolux_TagLog WHERE 1=1" + strWHERE;
                var dt  = db.ExecuteDataTable(sql, "ID DESC", _page.PageIndex, _page.PageSize, out iTotal);
                _page.TotalRows = iTotal;

                return(dt);
            }
        }
Esempio n. 16
0
        /// <summary>刪除群組</summary>
        public static void RemoveGroup(string GroupID)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn, true))
            {
                try
                {
                    //資料庫參數
                    var param = new DataBase.SqlParams();
                    param.Add("GroupID", GroupID);
                    db.SqlParams = param;

                    //刪除舊有群組選單權限與使用者清單
                    db.StrSQL += @"DELETE FROM [Auth] WHERE GroupID = @GroupID;
                                   DELETE FROM [GroupUser] WHERE GroupID = @GroupID;
                                   DELETE FROM [Group] WHERE GroupID = @GroupID;";
                    db.ExecuteSQL();

                    //確認執行交易
                    db.Commit();
                }
                catch (Exception e)
                {
                    //回復交易
                    db.Rollback();
                    throw e;
                }
            }
        }
Esempio n. 17
0
        protected void AddParametersFromCache(DbCommand command, DataBase.DataBase database)
        {
            IDataParameter[] cachedParameterSet = this.cache.GetCachedParameterSet(database.ConnectionString, command);

            foreach (IDataParameter parameter in cachedParameterSet)
            {
                command.Parameters.Add(parameter);
            }
        }
Esempio n. 18
0
        /// <summary>貨櫃離站函式</summary>
        public static PostResult DelContainer(Container m)
        {
            PostResult r = new PostResult();

            //取得此碼頭資料
            DataTable dtDockDoor         = DockDoorDataAccess.GetDockDoorList(null, m.ip, null, null, new Pages());
            DataRow   rowDoor            = dtDockDoor.Rows[0];
            string    strDockDoorID      = rowDoor["DockDoorID"].ToString();
            string    strContainerID     = rowDoor["ContainerID"].ToString();
            string    strContainerStatus = rowDoor["ContainerStatus"].ToString();
            string    strCaptionPanelIP  = rowDoor["CaptionPanelIP"].ToString();

            try
            {
                string[] StatusList = new string[] { "I", "O" };
                if (StatusList.Contains(strContainerStatus))
                {
                    //判斷裝卸載數量
                    string strNum, strTotal;
                    GetCountProcess(strDockDoorID, strContainerID, strContainerStatus, out strNum, out strTotal);
                    if (strNum == strTotal)
                    {
                        r.result = "Y";
                        r.msg    = string.Format("櫃號:{0}({1}/{2})已離廠", strContainerID, strNum, strTotal);
                    }
                    else
                    {
                        throw new Exception(string.Format("櫃號:{0}({1}/{2})尚未完成作業", strContainerID, strNum, strTotal));
                    }
                }
                else
                {
                    r.result = "Y";
                    r.msg    = string.Format("櫃號:{0}已離廠", strContainerID);
                }
            }
            catch (Exception ex)
            {
                r.result = "N";
                r.msg    = ex.Message;
            }
            finally
            {
                //清空碼頭目前停靠的貨櫃ID
                using (var db = new DataBase.DataBase(Definition.Conn))
                {
                    db.StrSQL = "UPDATE Innolux_DockDoor SET ContainerID = '', ContainerStatus = '', Alarm = '' WHERE IP = '" + m.ip + "'";
                    db.ExecuteSQL();
                }
            }

            ControlMachine(strCaptionPanelIP, r.msg, 3);
            return(r);
        }
Esempio n. 19
0
        /// <summary>取得條件式最後的群組編號</summary>
        public static string GetMaxGroupID()
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //取回資料
                db.StrSQL = "SELECT MAX(GroupID) FROM [Group]";
                string strID = db.ExecuteScalar();

                return(strID == "" ? "00" : strID);
            }
        }
Esempio n. 20
0
        //public static void SaveDockDoorInfo(string truckID, string Status,string dockdoorID)
        //{

        //        string O_Status = null;
        //        DataTable dt = null;
        //        DataTable dt1 = null;
        //        string IP = null;
        //        int Total = 0;
        //        int iNum = 0;
        //        Result r = new Result();
        //        string ASN = null;
        //        string DN = null;
        //    string CaptionPanelIP = null;
        //    try
        //    {



        //        //Save in ORACLE
        //        using (var db = new DataBase.DataBase(Definition.Conn))
        //        {

        //            db.StrSQL = "SELECT COUNT(PALLET_ID) Total, COUNT(RFID_OK_FLAG) iNum FROM WMS_RFID_CONTAINER_CHECK_V";

        //            DataTable dtable = db.ExecuteDataTable();
        //            DataRow dr = dtable.Rows[0];


        //            if (dtable.DefaultView.Count > 0)
        //            {
        //                Total = Convert.ToInt32(dr["Total"]);
        //                iNum = Convert.ToInt32(dr["iNum"]);
        //            }

        //            db.ExecuteSQL();

        //            if (Status == "I")
        //            {
        //                db.StrSQL = "SELECT ASN_NO FROM WMS_RFID_TRUCK WHERE TRUCK_NO='" + truckID + "'";

        //                dt = db.ExecuteDataTable();

        //                DataRow dr_ASN = dt.Rows[0];

        //                if (dt.DefaultView.Count > 0)
        //                {
        //                    ASN = dr_ASN["ASN_NO"].ToString();
        //                }

        //                if (ASN != null && ASN != "")
        //                {
        //                    db.StrSQL = "UPDATE  WMS_RFID_TRUCK SET STATUS='I',DOCKED='" + dockdoorID + "' WHERE TRUCK_NO='" + truckID + "'";

        //                }
        //                else
        //                {
        //                    db.StrSQL = "SELECT DN_NO FROM WMS_RFID_CONTAINER_CHECK WHERE CONTAINER_NO='" + truckID + "'";

        //                    dt1 = db.ExecuteDataTable();

        //                    if (dt1.DefaultView.Count > 0)
        //                    {
        //                        DataRow DN_dr = dt1.Rows[0];

        //                        DN = DN_dr["DN_NO"].ToString();


        //                        if (DN != null && DN != "")
        //                        {
        //                            db.StrSQL = "UPDATE  WMS_RFID_TRUCK SET STATUS='O',DOCKED='" + dockdoorID + "' WHERE TRUCK_NO='" + truckID + "'";

        //                        }

        //                    }
        //                    else
        //                    {
        //                        db.StrSQL = "UPDATE  WMS_RFID_TRUCK SET STATUS=' ',DOCKED='" + dockdoorID + "' WHERE TRUCK_NO='" + truckID + "'";

        //                    }
        //                }
        //                db.ExecuteSQL();
        //                db.Commit();

        //                db.StrSQL = "SELECT STATUS FROM WMS_RFID_TRUCK WHERE TRUCK_NO='" + truckID + "'";

        //                DataTable dt2 = db.ExecuteDataTable();

        //                DataRow row = dt2.Rows[0];

        //                if (dt2.DefaultView.Count > 0)
        //                {
        //                    O_Status = row["STATUS"].ToString();

        //                }

        //            }
        //            else
        //            {
        //                db.StrSQL = "UPDATE  WMS_RFID_TRUCK SET STATUS='" + null + "',DOCKED='" + null + "' WHERE TRUCK_NO='" + truckID + "'";

        //                db.ExecuteSQL();


        //            }

        //        }

        //        //開啟資料庫存取物件
        //        using (var db = new DataBase.DataBase(Definition.Conn))
        //        {
        //            var param = new DataBase.SqlParams();
        //            param.Add("ContainerID", truckID);
        //            param.Add("ContainerStatus", O_Status);
        //            param.Add("DockDoorID", dockdoorID);
        //            DateTime dtime = DateTime.Now;
        //            param.Add("UpdateTime", dtime);
        //            if (Status == "I")
        //            {
        //                param.Add("Flag", false);

        //            }
        //            else
        //            {
        //                param.Add("Flag", true);

        //            }

        //            db.SqlParams = param;

        //            //Get IP
        //            if (Status == "I")
        //            {
        //                DataTable dtable = null;
        //                db.StrSQL = "SELECT IP,CaptionPanelIP FROM Innolux_DockDoor WHERE DockDoorID='" + dockdoorID + "'";
        //                dtable = db.ExecuteDataTable();
        //                DataRow row = dtable.Rows[0];
        //                IP = row["IP"].ToString();
        //                CaptionPanelIP = row["CaptionPanelIP"].ToString();
        //            }
        //            else
        //            {
        //                DataTable dtable = null;
        //                db.StrSQL = "SELECT IP,CaptionPanelIP FROM Innolux_DockDoor WHERE DockDoorID='" + dockdoorID + "'";
        //                dtable = db.ExecuteDataTable();
        //                DataRow row = dtable.Rows[0];
        //                IP = row["IP"].ToString();
        //                CaptionPanelIP = row["CaptionPanelIP"].ToString();
        //            }

        //            if (Status == "I")
        //            {

        //                db.StrSQL = " UPDATE [Innolux_DockDoor] SET ContainerID=@ContainerID, ContainerStatus=@ContainerStatus,UpdateTime=@UpdateTime,Flag=@Flag WHERE DockDoorID=@DockDoorID";

        //                db.ExecuteSQL();

        //                var mes = "櫃號:" + truckID + "   已進站";

        //                ApiDataAccess.ControlMachine(CaptionPanelIP, mes, 0);

        //            }
        //            else
        //            {
        //                db.StrSQL = " UPDATE [Innolux_DockDoor] SET ContainerID='', ContainerStatus='',UpdateTime=@UpdateTime, Flag=@Flag WHERE ContainerID=@ContainerID";

        //                db.ExecuteSQL();
        //            }
        //            //Save in MySql
        //            if (Status == "I")
        //            {
        //                if (ASN != null && ASN != "")
        //                {
        //                    // ApiDataAccess.UpdateControlDB(IP, "INSERT checkin(car_in,car_out)VALUES('I','0')");
        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE checkin SET  car_in='I',car_out='0'");

        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE status  SET  status='I'");



        //                }
        //                else if (DN != null && DN != "")
        //                {
        //                    // ApiDataAccess.UpdateControlDB(IP, "INSERT checkin(car_in,car_out)VALUES('O','0')");
        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE checkin SET  car_in='O',car_out='0'");
        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE status  SET  status='O'");


        //                }
        //                else
        //                {
        //                    //  ApiDataAccess.UpdateControlDB(IP, "INSERT checkin(car_in,car_out)VALUES('_','0')");

        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE  checkin SET car_in=' ',car_out='0'");
        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE status  SET  status=' '");


        //                }


        //            }
        //            else
        //            {
        //                if (Total == iNum)
        //                {


        //                    var msg = string.Format("櫃號:{0}({1}/{2})已離廠", truckID, iNum, Total);

        //                    ApiDataAccess.ControlMachine(CaptionPanelIP, msg, 3);

        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE  checkin SET car_in='0',car_out='Y'");

        //                }
        //                else
        //                {
        //                    var msg = string.Format("櫃號:{0}({1}/{2})尚未完成作業", truckID, iNum, Total);

        //                    ApiDataAccess.ControlMachine(CaptionPanelIP, msg, 3);

        //                    ApiDataAccess.UpdateControlDB(IP, "UPDATE  checkin SET car_in='0',car_out='N'");



        //                    //  ApiDataAccess.UpdateControlDB(IP, "INSERT checkin(car_in,car_out)VALUES('0','N')");

        //                }
        //            }



        //        }
        //    }
        //    catch
        //    {

        //    }


        //}

        public static DataTable GetDockDoorListDetails()
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //判斷Status成功或失敗
                DataTable dt = null;
                db.StrSQL = "SELECT ContainerID,Flag FROM Innolux_DockDoor WHERE 1=1";
                dt        = db.ExecuteDataTable();
                return(dt);
            }
        }
        /// <summary>儲存DockDoor資料</summary>
        public static void SaveDockDoorInfo(DockDoorDetailViewModel m)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("ID", m.ID);
                param.Add("DockDoorID", m.DockDoorID);
                param.Add("Remark", m.Remark);
                param.Add("Locate", m.Locate);
                param.Add("IP", m.IP);
                param.Add("CaptionPanelIP", m.CaptionPanelIP);
                param.Add("FilterCode", m.FilterCode);
                param.Add("Mask", m.Mask);
                param.Add("MaskOut", m.MaskOut);
                param.Add("Alarm", "N");
                param.Add("ContainerID", "");
                param.Add("ContainerStatus", "");
                param.Add("Account", Definition.UserInfo.Account);
                db.SqlParams = param;

                if (m.ID == 0)
                {
                    //新增
                    db.StrSQL =
                        @"DECLARE @Count int;
                          SET @Count = (SELECT COUNT(*) FROM [Innolux_DockDoor] WHERE (DockDoorID = @DockDoorID) OR (IP = @IP));
                          IF (@Count = 0) BEGIN
                             INSERT [Innolux_DockDoor](DockDoorID, Remark, Locate, IP, CaptionPanelIP, FilterCode, Mask, MaskOut, Alarm, ContainerID, ContainerStatus, CreateTime, Creater, UpdateTime, Updater) VALUES(@DockDoorID, @Remark, @Locate, @IP, @CaptionPanelIP, @FilterCode, @Mask, @MaskOut, @Alarm, @ContainerID, @ContainerStatus, GetDate(), @Account, GetDate(), @Account);
                          END ELSE BEGIN
                             THROW 51000, '碼頭編號或IP已存在', 1;
                          END";
                }
                else
                {
                    //修改
                    db.StrSQL =
                        @"DECLARE @Count int;
                          SET @Count = (SELECT COUNT(*) FROM [Innolux_DockDoor] WHERE (ID <> @ID) AND (DockDoorID = @DockDoorID OR IP = @IP));
                          IF (@Count = 0) BEGIN
                             UPDATE [Innolux_DockDoor] SET DockDoorID=@DockDoorID, Remark=@Remark, Locate=@Locate, IP=@IP, CaptionPanelIP=@CaptionPanelIP, FilterCode=@FilterCode, Mask=@Mask, MaskOut=@MaskOut, UpdateTime=GetDate(), Updater=@Account WHERE ID=@ID;
                          END ELSE BEGIN
                             THROW 51000, '碼頭編號或IP已存在', 1;
                          END";
                }

                db.ExecuteSQL();
            }
        }
        /// <summary>更新貨櫃的作業狀態</summary>
        public static string UpdateTruckStatus(string IP, out string ContainerStatus)
        {
            string strContainerID = "", strMsg = "";

            //取得DockDoor資訊
            DataTable dtDoor = GetDockDoorList(null, IP, null, null, new Pages());
            DataRow   row    = dtDoor.Rows[0];

            //取得貨櫃狀態
            strContainerID  = row["ContainerID"].ToString();
            ContainerStatus = row["ContainerStatus"].ToString();
            if (strContainerID != "")
            {
                //取得並更新貨櫃狀態
                ContainerStatus = ApiDataAccess.GetContainerStatus(strContainerID);
                using (var db = new DataBase.DataBase(Definition.Conn))
                {
                    db.StrSQL = "UPDATE Innolux_DockDoor SET ContainerStatus = '" + ContainerStatus + "' WHERE IP = '" + IP + "'";
                    db.ExecuteSQL();
                }

                //更新控制器的貨櫃狀態
                ApiDataAccess.UpdateControlDB(IP, "UPDATE status SET status = '" + ContainerStatus + "'");

                //依狀態回傳結果
                if (ContainerStatus == "O")
                {
                    strMsg = string.Format("貨櫃號碼{0}的狀態為:{1}", strContainerID, "待裝櫃");
                }
                else if (ContainerStatus == "I")
                {
                    strMsg = string.Format("貨櫃號碼{0}的狀態為:{1}", strContainerID, "待卸櫃");
                }
                else
                {
                    throw new Exception("無" + strContainerID + "的貨櫃狀態");
                }
            }
            else if (ContainerStatus == "N")
            {
                throw new Exception("無貨櫃標籤");
            }
            else
            {
                throw new Exception("無貨櫃靠站資訊");
            }

            return(strMsg);
        }
        /// <summary>取得系統參數值</summary>
        public static string GetSysParamsValue(string ParaCode)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("ParaCode", ParaCode);
                db.SqlParams = param;

                //回傳資料
                db.StrSQL = "SELECT ParaValue FROM [SysParams] WHERE ParaCode = @ParaCode";
                return(db.ExecuteScalar());
            }
        }
Esempio n. 24
0
        /// <summary>儲存選單資料</summary>
        public static bool SaveMenuInfo(MenuDetailViewModel m)
        {
            string action = "";

            //有無選單編號,若無則視為新增
            if (string.IsNullOrEmpty(m.MenuNo))
            {
                action = "Add";

                //判斷是否為空值
                m.ParentMenuNo = string.IsNullOrWhiteSpace(m.ParentMenuNo) ? "" : m.ParentMenuNo;

                //設定新選單編號
                string strMaxMenuNo = MenuDataAccess.GetMaxMenuNo(m.ParentMenuNo, m.ParentMenuNo.Length + 2);
                m.MenuNo = Util.GetPadLeftString(strMaxMenuNo, 1);
            }

            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("MenuNo", m.MenuNo);
                param.Add("MenuName", m.MenuName);
                param.Add("MenuLink", m.MenuLink);
                param.Add("Type", m.Type);
                param.Add("MenuDesc", m.MenuDesc);
                param.Add("OrderID", m.OrderID);
                param.Add("Enabled", m.Enabled);
                param.Add("MenuIco", m.MenuIco);
                db.SqlParams = param;

                if (action == "Add")
                {
                    //新增資料
                    db.StrSQL = @"--設定排序值--
                    SET @OrderID = (SELECT MAX(OrderID) + 1 FROM Menu WHERE LEN(MenuNo) = LEN(@MenuNo));
                    INSERT Menu(MenuNo, MenuName, MenuLink, Type, MenuDesc, OrderID, Enabled, MenuIco) VALUES(@MenuNo, @MenuName, @MenuLink, @Type, @MenuDesc, @OrderID, @Enabled, @MenuIco)";
                }
                else
                {
                    db.StrSQL = "UPDATE Menu SET MenuName=@MenuName, MenuLink=@MenuLink, Type=@Type, MenuDesc=@MenuDesc, OrderID=@OrderID, Enabled=@Enabled, MenuIco=@MenuIco WHERE MenuNo=@MenuNo";
                }

                int iResult = db.ExecuteSQL();
                return(iResult > 0);
            }
        }
Esempio n. 25
0
        public string getOrderByParams(DataBase.DataBase nDataBase)
        {
            var OrderByParams = new StringBuilder("");

            foreach (var Item in this._Columns)
            {
                if (OrderByParams.Length > 0)
                {
                    OrderByParams.Append(", ");
                }

                OrderByParams.Append(nDataBase.FormatToDatabaseColumnName(Item.ColumnName) + " " + (Item.Ascendente ? nDataBase.Identifier_OrderBy_ASC : nDataBase.Identifier_OrderBy_DESC));
            }

            return(OrderByParams.ToString());
        }
Esempio n. 26
0
        private void addButton_Click(object sender, EventArgs e)
        {
            if (radioButton3.Checked)
            {
                //Manual Input
                DataBase.DataBase db      = new DataBase.DataBase();
                double            lat     = double.Parse(textLat.Text, CultureInfo.GetCultureInfo("en-US"));
                double            lon     = double.Parse(textLon.Text, CultureInfo.GetCultureInfo("en-US"));
                double            height  = double.Parse(textHeight.Text, CultureInfo.GetCultureInfo("en-US"));
                Ground.Station    station = new Ground.Station(textStationName.Text, lat, lon, height);

                db.writeStation(station);
                this.Close();
            }
            if (radioButton1.Checked)
            {
                using (var reader = new StreamReader(stationFilePath))
                {
                    DataBase.DataBase db = new DataBase.DataBase();
                    string            line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        string   _name;
                        double   _latitude;
                        double   _longitude;
                        double   _height;
                        string[] res = line.Split(' ');
                        if (res.Count() >= 3)
                        {
                            _name      = res[0];
                            _latitude  = Convert.ToDouble(res[1]);
                            _longitude = Convert.ToDouble(res[2]);
                            if (res.Count() == 4)
                            {
                                _height = Convert.ToDouble(res[3]);
                            }
                            else
                            {
                                _height = 0.0;
                            }
                            Ground.Station station = new Ground.Station(_name, _latitude, _longitude, _height);
                            db.writeStation(station);
                        }
                    }
                }
            }
        }
Esempio n. 27
0
        /// <summary>取得使用者清單資料檔</summary>
        public static DataTable GetUserList(int?_id, string _account, string _password, string _email, string _name, Pages _page)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("ID", _id);
                param.Add("Account", _account);
                param.Add("Password", _password);
                param.Add("Email", "%" + _email + "%");
                param.Add("Name", "%" + _name + "%");
                db.SqlParams = param;

                //條件式
                string strWhere = "";
                if (_id != null)
                {
                    strWhere += " AND ID = @ID ";
                }
                if (!string.IsNullOrEmpty(_account))
                {
                    strWhere += " AND Account = @Account ";
                }
                if (!string.IsNullOrEmpty(_password))
                {
                    strWhere += " AND Password = @Password ";
                }
                if (!string.IsNullOrEmpty(_email))
                {
                    strWhere += " AND Email LIKE @Email ";
                }
                if (!string.IsNullOrEmpty(_name))
                {
                    strWhere += " AND Name LIKE @Name ";
                }

                //取回資料
                int iTotal;
                var sql = "SELECT * FROM [User] WHERE 1=1 " + strWhere;
                var dt  = db.ExecuteDataTable(sql, "ID", _page.PageIndex, _page.PageSize, out iTotal);
                _page.TotalRows = iTotal;

                return(dt);
            }
        }
Esempio n. 28
0
        //! Draw Stations from Database onto image.

        /*!
         * \param DataGridViewRowCollections rows of stations to draw
         * \param DataBase database that holds all the information
         * \return Image bmp-Image
         */
        public static Image drawStation(DataGridViewRowCollection rows, DataBase.DataBase db)
        {
            Image imgStation = Properties.Resources.worldsmaller;

            Pen penRest = new Pen(Color.Orange, 2);

            using (var graphics = Graphics.FromImage(imgStation))
            {
                for (int i = 0; i < rows.Count; i++)
                {
                    Ground.Station item = db.getStationFromDB(rows[i].Cells[0].Value.ToString());
                    Point          p    = item.getGeoCoordinate().toPoint(imgStation.Width, imgStation.Height);
                    graphics.DrawRectangle(penRest, p.X - 10, p.Y - 10, 20, 20);
                }
            }

            return(imgStation);
        }
        /// <summary>取得DockDoor資料</summary>
        public static DataTable GetDockDoorList(string DockDoorID, string IP, string Alarm, string ContainerID, Pages _page)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("DockDoorID", DockDoorID);
                param.Add("IP", IP);
                param.Add("Alarm", Alarm);
                param.Add("ContainerID", ContainerID);
                db.SqlParams = param;

                //條件式
                string strWHERE = "";
                if (!string.IsNullOrEmpty(DockDoorID))
                {
                    strWHERE += " AND DockDoorID = @DockDoorID ";
                }
                if (!string.IsNullOrEmpty(IP))
                {
                    strWHERE += " AND IP = @IP ";
                }
                if (!string.IsNullOrEmpty(Alarm))
                {
                    strWHERE += " AND Alarm = @Alarm ";
                }
                if (!string.IsNullOrEmpty(ContainerID))
                {
                    strWHERE += " AND ContainerID = @ContainerID ";
                }

                //取回資料
                int iTotal;
                var sql = @"SELECT d.*, f.FilterName, f.FilterRules FROM Innolux_DockDoor d
                            INNER JOIN Innolux_Filter f ON f.FilterCode = d.FilterCode 
                            WHERE 1=1" + strWHERE;
                var dt  = db.ExecuteDataTable(sql, "DockDoorID", _page.PageIndex, _page.PageSize, out iTotal);
                _page.TotalRows = iTotal;

                return(dt);
            }
        }
Esempio n. 30
0
        /// <summary>取得群組底下的使用者清單</summary>
        public static DataTable GetGroupUser(string GroupID)
        {
            //開啟資料庫存取物件
            using (var db = new DataBase.DataBase(Definition.Conn))
            {
                //資料庫參數
                var param = new DataBase.SqlParams();
                param.Add("GroupID", GroupID);
                db.SqlParams = param;

                //取回資料
                db.StrSQL = @"SELECT u.* FROM GroupUser gu
                              INNER JOIN [User] u ON u.Account = gu.Account 
                              WHERE gu.GroupID = @GroupID";

                var dt = db.ExecuteDataTable();
                return(dt);
            }
        }
Esempio n. 31
0
 private void InitializeConnection(DataBase.DataBaseType nType, string nConnectionString)
 {
     this._DataBase = DataBaseFactory.CreateDatabase(nType, nConnectionString);
     this._IsRemoting = (DataBaseFactory.GetRemotingUrl(nConnectionString) != "");
     this._IsTrusted = DataBaseFactory.GetRemotingTrusted(nConnectionString);
 }