예제 #1
0
파일: UserMgr.cs 프로젝트: radtek/MES
        public static EmployeeInfo LoadEmployeeInfo(string sUserName)
        {
            DataTable tbl = Common.DAL.GetUseInfo
                                (sUserName);

            if (tbl.Rows.Count > 0)
            {
                DataRow      dataRow = tbl.Rows[0];
                EmployeeInfo empInfo = new EmployeeInfo();
                empInfo._Employee    = Cvt.ToInt64(dataRow["_Employee"]);
                empInfo.Use_AD_Login = Cvt.ToBoolean(dataRow["Use_AD_Login"]);
                empInfo.Change_Pwd_When_Next_Login = Cvt.ToBoolean(dataRow["Change_Pwd_When_Next_Login"]);
                empInfo.AD_Account = Cvt.ToString(dataRow["AD_Account"]);

                empInfo._Status       = (Status)Enum.Parse(typeof(Status), Cvt.ToString(dataRow["_Status"]), true);
                empInfo.Name          = Cvt.ToString(dataRow["Name"]);
                empInfo.HashPassword  = Cvt.ToString(dataRow["Password"]);
                empInfo.Language      = Cvt.ToString(dataRow["Language"]);
                empInfo.Login_Attempt = Cvt.ToInt32(dataRow["Login_Attempt"]);

                empInfo.Update_Time = Cvt.ToDateTime(dataRow["Update_Time"]);

                //mysql数据库中此字段名为Gravatar,已更改
                empInfo._Attachment_Gravatar = Cvt.ToInt64(dataRow["_Attachment_Gravatar"]);

                empInfo.Fullname        = Cvt.ToString(dataRow["Fullname"]);
                empInfo.Description     = Cvt.ToString(dataRow["Description"]);
                empInfo.Email_Address   = Cvt.ToString(dataRow["Email_Address"]);
                empInfo.Telphone_Number = Cvt.ToString(dataRow["Telphone_Number"]);

                empInfo.Login_Time         = Cvt.ToDateTime(dataRow["Login_Time"]);
                empInfo.lastLoginFrom_IP   = Cvt.ToString(dataRow["From_IP"]);
                empInfo.lastLoginFrom_MAC  = Cvt.ToString(dataRow["From_MAC"]);
                empInfo.lastLoginFrom_Host = Cvt.ToString(dataRow["From_Host"]);
                empInfo.lastLoginResult    = (LoginResult)Enum.Parse(typeof(LoginResult), Cvt.ToNumString(dataRow["_Login_Result"], "1"), true);;

                return(empInfo);
            }
            return(null);
        }
예제 #2
0
        private void AddFieldValue(changeStatus nStatus, Field Fld, Dictionary <string, object> row, EmployeeInfo emp, string HistoryForeignKey, ref string sSql, ref string sValList)
        {
            //if (Fld.editor == Editor.none)
            //    return;

            string sVal = QuoteNull;
            object val  = null;

            if ((Fld.editor & Editor.order) != Editor.none)
            {
                val = row["__index"];
            }
            else if (row.ContainsKey(Fld) && row[Fld] != null)
            {
                val = row[Fld];
                if (Fld.type == FieldType.Int && Cvt.IsNumerical(val) == false)
                {
                    val = null;
                }
            }
            else if (nStatus == changeStatus.AddHistory)
            {
                if (sSql.Length > 0)
                {
                    sSql += ",";
                }
                sSql += QuoteField(Fld);

                if (sValList.Length > 0)
                {
                    sValList += ",";
                }

                if (Fld.name.Equals("Update_Time", StringComparison.OrdinalIgnoreCase) ||
                    Fld.name.Equals("Create_Time", StringComparison.OrdinalIgnoreCase))
                {
                    sValList += FuncCurrentTimestamp;
                }
                else
                {
                    sValList += QuoteField(Fld);
                }

                return;
            }
            else if (nStatus == changeStatus.Where)//条件语句不关心没有给值的字段
            {
                return;
            }

            if (val != null && val.GetType() == typeof(string))
            {
                if (Cvt.IsNumerical(val))
                {
                    sVal = val.ToString();
                }
                else
                {
                    sVal = QuoteValue(val.ToString());
                }
            }
            else if (Fld.name.Equals("_Employee_Update", StringComparison.OrdinalIgnoreCase))
            {
                if (nStatus == changeStatus.Where)
                {
                    return;
                }

                sVal = emp._Employee.ToString();
            }
            //else if (val == null && Fld.name.Equals("_Site", StringComparison.OrdinalIgnoreCase))
            //{
            //    sVal = emp._Site_Working.ToString();
            //}
            //else if (val == null && Fld.name.Equals("_Project", StringComparison.OrdinalIgnoreCase))
            //{
            //    sVal = emp._Project_Working.ToString();
            //}
            else if (Fld.name.Equals(HistoryForeignKey, StringComparison.OrdinalIgnoreCase) && nStatus == changeStatus.Add)
            {
                sVal = "@nLastPrimaryID";
            }
            else
            {
                try
                {
                    if (val != null)
                    {
                        sVal = Convert.ToInt64(val).ToString();
                    }
                    else if (nStatus != changeStatus.AddHistory)
                    {
                        return;
                    }
                }
                catch (Exception)
                {
                }
            }


            if (nStatus == changeStatus.Add)
            {
                if (Fld.name.Equals("Update_Time", StringComparison.OrdinalIgnoreCase) == false &&
                    Fld.name.Equals("Create_Time", StringComparison.OrdinalIgnoreCase) == false)
                {
                    if (sSql.Length > 0)
                    {
                        sSql += ",";
                    }
                    sSql += QuoteField(Fld);

                    if (sValList.Length > 0)
                    {
                        sValList += ",";
                    }
                    sValList += sVal;
                }
            }
            else if (nStatus == changeStatus.Update)
            {
                if (sSql.Length > 0)
                {
                    sSql += ",";
                }

                if (Fld.name.Equals("Update_Time", StringComparison.OrdinalIgnoreCase) ||
                    Fld.name.Equals("Create_Time", StringComparison.OrdinalIgnoreCase))
                {
                    sSql += QuoteField(Fld) + "=" + FuncCurrentTimestamp;
                }
                else
                {
                    sSql += QuoteField(Fld) + "=" + sVal;
                }
            }
            else if (nStatus == changeStatus.Where)
            {
                if (Fld.name.Equals("Update_Time", StringComparison.OrdinalIgnoreCase) ||
                    Fld.name.Equals("Create_Time", StringComparison.OrdinalIgnoreCase))
                {
                    return;//条件语句不关心创建时间或更新时间
                }
                else
                {
                    if (sSql.Length > 0)
                    {
                        sSql += " AND ";
                    }
                    sSql += QuoteField(Fld) + "=" + sVal;
                }
            }
            else if (nStatus == changeStatus.AddHistory)
            {
                if (sSql.Length > 0)
                {
                    sSql += ",";
                }
                sSql += QuoteField(Fld);

                if (sValList.Length > 0)
                {
                    sValList += ",";
                }

                if (Fld.name.Equals("Update_Time", StringComparison.OrdinalIgnoreCase) ||
                    Fld.name.Equals("Create_Time", StringComparison.OrdinalIgnoreCase))
                {
                    sValList += FuncCurrentTimestamp;
                }
                else
                {
                    sValList += sVal;
                }
            }
        }