Exemplo n.º 1
0
        /// <summary>
        /// 获取指定元素指定属性的值
        /// </summary>
        /// <param name="fileName">xml文件的完整路径</param>
        /// <param name="path">元素路径</param>
        /// <param name="propertyName">属性名称</param>
        /// <returns></returns>
        public static OperationReturn GetElementPropertyValue(string fileName, string path, string propertyName)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            try
            {
                if (!File.Exists(fileName))
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_FILE_NOT_EXIST;
                    optReturn.Message = string.Format("File not exist.\t{0}", fileName);
                    return(optReturn);
                }
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlNode    node    = xmlDoc.SelectSingleNode(path);
                XmlElement element = node as XmlElement;
                if (element == null)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_XML_ELE_NOT_EXIST;
                    optReturn.Message = string.Format("XmlElement not exist.\t{0}", path);
                    return(optReturn);
                }
                var value = element.GetAttribute(propertyName);
                optReturn.Data = value;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procedureName"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public OperationReturn ExecuteProcedure(string procedureName, List <DBCommandParameter> parameters)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            if (mDBParam == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("DatabaseParam is null");
                return(optReturn);
            }
            if (mObjConnection == null)
            {
                string strConn = GetConnectionString(mDBParam);
                lock (mObjConnectionLocker)
                {
                    optReturn = GetConnection(mDBParam.DBType, strConn);
                }
                if (!optReturn.Result)
                {
                    return(optReturn);
                }
                mObjConnection = optReturn.Data as IDbConnection;
            }
            if (mObjConnection == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("Connection is null");
                return(optReturn);
            }
            try
            {
                IDbDataParameter[] arrDataParameters = new IDbDataParameter[parameters.Count];
                for (int i = 0; i < parameters.Count; i++)
                {
                    IDbDataParameter parameter;
                    switch (parameters[i].DBType)
                    {
                    //case Defines.VCT_DBTYPE_MYSQL:
                    //    parameter = MySqlOperations.GetDataParameter(parameters[i]);
                    //    break;
                    case Defines.VCT_DBTYPE_MSSQL:
                        parameter = MsSqlOperations.GetDataParameter(parameters[i]);
                        break;

                    //case Defines.VCT_DBTYPE_ORACLE:
                    //    parameter = OracleOperations.GetDataParameter(parameters[i]);
                    //    break;
                    default:
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_NOT_IMPLIMENT;
                        optReturn.Message = string.Format("Database type not support.\t{0}", parameters[i].DBType);
                        return(optReturn);
                    }
                    if (parameter == null)
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_OBJECT_NULL;
                        optReturn.Message = string.Format("Parameter is null");
                        return(optReturn);
                    }
                    parameter.Value      = parameters[i].ParamValue;
                    parameter.Direction  = parameters[i].Direction;
                    arrDataParameters[i] = parameter;
                }
                IDbCommand objCmd = mObjConnection.CreateCommand();
                objCmd.CommandType = CommandType.StoredProcedure;
                objCmd.CommandText = procedureName;
                for (int i = 0; i < arrDataParameters.Length; i++)
                {
                    objCmd.Parameters.Add(arrDataParameters[i]);
                }
                if (mObjConnection.State != ConnectionState.Open)
                {
                    lock (mObjConnectionLocker)
                    {
                        mObjConnection.Open();
                    }
                }
                optReturn.IntValue = objCmd.ExecuteNonQuery();
                for (int i = 0; i < arrDataParameters.Length; i++)
                {
                    if (arrDataParameters[i].Direction == ParameterDirection.Output ||
                        arrDataParameters[i].Direction == ParameterDirection.InputOutput)
                    {
                        parameters[i].ParamValue = arrDataParameters[i].Value;
                    }
                }
                optReturn.Data = parameters;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取数据集
        /// </summary>
        /// <param name="strSql">Sql命令</param>
        /// <returns></returns>
        public OperationReturn GetDataSet(string strSql)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            if (mDBParam == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("DatabaseParam is null");
                return(optReturn);
            }
            if (mObjConnection == null)
            {
                string strConn = GetConnectionString(mDBParam);
                lock (mObjConnectionLocker)
                {
                    optReturn = GetConnection(mDBParam.DBType, strConn);
                }
                if (!optReturn.Result)
                {
                    return(optReturn);
                }
                mObjConnection = optReturn.Data as IDbConnection;
            }
            if (mObjConnection == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("Connection is null");
                return(optReturn);
            }
            optReturn = GetDataAdapter(mDBParam.DBType, mObjConnection, strSql);
            if (!optReturn.Result)
            {
                return(optReturn);
            }
            IDataAdapter objAdapter = optReturn.Data as IDataAdapter;

            if (objAdapter == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("DataAdapter is null");
                return(optReturn);
            }
            DataSet objDS = new DataSet();

            try
            {
                if (mObjConnection.State != ConnectionState.Open)
                {
                    lock (mObjConnectionLocker)
                    {
                        mObjConnection.Open();
                    }
                }
                objAdapter.Fill(objDS);
                optReturn.Data = objDS;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 静态方法,获取数据集
        /// </summary>
        /// <param name="strConn">数据库连接字符串</param>
        /// <param name="strSql">Sql 命令</param>
        /// <returns></returns>
        public static OperationReturn GetDataSet(string strConn, string strSql)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            int dbType = GetDBType(strConn);

            if (dbType == Defines.VCT_DBTYPE_UNKNOWN)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_NOT_EXIST;
                optReturn.Message = string.Format("Unkown database type\t{0}", dbType);
                return(optReturn);
            }
            optReturn = GetConnection(dbType, strConn);
            if (!optReturn.Result)
            {
                return(optReturn);
            }
            IDbConnection objConn = optReturn.Data as IDbConnection;

            if (objConn == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("Connection is null");
                return(optReturn);
            }
            optReturn = GetDataAdapter(dbType, objConn, strSql);
            if (!optReturn.Result)
            {
                return(optReturn);
            }
            IDataAdapter objAdapter = optReturn.Data as IDataAdapter;

            if (objAdapter == null)
            {
                optReturn.Result  = false;
                optReturn.Code    = Defines.RET_OBJECT_NULL;
                optReturn.Message = string.Format("DataAdapter is null");
                return(optReturn);
            }
            DataSet objDS = new DataSet();

            try
            {
                objConn.Open();
                objAdapter.Fill(objDS);
                optReturn.Data = objDS;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            finally
            {
                CloseConnection(objConn);
            }
            return(optReturn);
        }
Exemplo n.º 5
0
        /// <summary>
        /// FTP方式下载文件
        /// </summary>
        /// <param name="parameters">
        /// 下载参数
        /// 0:服务器地址
        /// 1:端口
        /// 2:登录名(如果为空,则匿名下载)
        /// 3:登录密码
        /// 4:源文件路径
        /// 5:存放路径
        /// 6: 如果目标文件已经存在,是否替换文件(可选)
        /// </param>
        /// <returns></returns>
        public static OperationReturn DownloadFileFTP(string[] parameters)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            try
            {
                if (parameters == null || parameters.Length < 6)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_PARAM_INVALID;
                    optReturn.Message = string.Format("Download parameter is null or length invalid.");
                    return(optReturn);
                }
                string strTargetFile = parameters[5];
                string strTargetDir  = strTargetFile.Substring(0, strTargetFile.LastIndexOf("\\"));
                if (!Directory.Exists(strTargetDir))
                {
                    Directory.CreateDirectory(strTargetFile);
                }
                if (File.Exists(strTargetFile))
                {
                    if (parameters.Length > 6 && parameters[6] == "1")
                    {
                        File.Delete(strTargetFile);
                    }
                    else
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_FILE_ALREADY_EXIST;
                        optReturn.Message = string.Format("Target file already exist.\t{0}", strTargetFile);
                        return(optReturn);
                    }
                }
                string        strRequest    = string.Format("ftp://{0}:{1}/{2}", parameters[0], parameters[1], parameters[4]);
                FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(strRequest);
                if (!string.IsNullOrEmpty(parameters[2]))
                {
                    ftpWebRequest.Credentials = new NetworkCredential(parameters[2], parameters[3]);
                    string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", parameters[2], parameters[3])));
                    ftpWebRequest.Headers.Add("Authorization", "Basic" + code);
                }
                WebResponse ftpWebResponse = ftpWebRequest.GetResponse();
                Stream      stream         = ftpWebResponse.GetResponseStream();
                if (stream == null)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_OBJECT_NULL;
                    optReturn.Message = string.Format("Response stream is null");
                    return(optReturn);
                }
                using (FileStream fileStream = new FileStream(strTargetFile, FileMode.Create, FileAccess.Write))
                {
                    byte[] buffer = new byte[1024];
                    int    readed = stream.Read(buffer, 0, 1024);
                    while (readed > 0)
                    {
                        fileStream.Write(buffer, 0, readed);
                        readed = stream.Read(buffer, 0, 1024);
                    }
                    fileStream.Close();
                    stream.Close();
                }
                optReturn.StringValue = strTargetFile;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 从远程服务器下载文件
        /// </summary>
        /// <param name="config">下载参数</param>
        /// <returns></returns>
        public static OperationReturn DownloadFile(DownloadConfig config)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = 0;
            try
            {
                if (config == null)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_PARAM_INVALID;
                    optReturn.Message = string.Format("DownloadConfig is null");
                    return(optReturn);
                }
                string strTargetPath = config.SavePath;
                string strTargetDir  = strTargetPath.Substring(0, strTargetPath.LastIndexOf("\\"));
                if (!Directory.Exists(strTargetDir))
                {
                    //如果目录不存在,创建目录
                    Directory.CreateDirectory(strTargetDir);
                }
                if (File.Exists(strTargetPath))
                {
                    if (config.IsReplace)
                    {
                        //如果文件存在,删除已经存在的文件
                        File.Delete(strTargetPath);
                    }
                    else
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_FILE_ALREADY_EXIST;
                        optReturn.Message = string.Format("Target file already exist.\t{0}", strTargetPath);
                        return(optReturn);
                    }
                }
                WebRequest webRequest;
                string     strRequest;
                switch (config.Method)
                {
                case 0:
                case 1:
                    strRequest = string.Format("http://{0}:{1}/{2}", config.Host, config.Port, config.RequestPath);
                    HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(strRequest);
                    if (!config.IsAnonymous)
                    {
                        //如果需要验证身份
                        httpRequest.Credentials = new NetworkCredential(config.LoginName, config.Password);
                        string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", config.LoginName, config.Password)));
                        httpRequest.Headers.Add("Authorization", "Basic" + code);
                    }
                    webRequest = httpRequest;
                    break;

                case 2:
                    strRequest = string.Format("https://{0}:{1}/{2}", config.Host, config.Port, config.RequestPath);
                    HttpWebRequest httpsRequest = (HttpWebRequest)WebRequest.Create(strRequest);
                    if (!config.IsAnonymous)
                    {
                        httpsRequest.Credentials = new NetworkCredential(config.LoginName, config.Password);
                        string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", config.LoginName, config.Password)));
                        httpsRequest.Headers.Add("Authorization", "Basic" + code);
                    }
                    webRequest = httpsRequest;
                    break;

                case 11:
                    strRequest = string.Format("ftp://{0}:{1}/{2}", config.Host, config.Port, config.RequestPath);
                    FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(strRequest);
                    if (!config.IsAnonymous)
                    {
                        ftpRequest.Credentials = new NetworkCredential(config.LoginName, config.Password);
                        string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", config.LoginName, config.Password)));
                        ftpRequest.Headers.Add("Authorization", "Basic" + code);
                    }
                    webRequest = ftpRequest;
                    break;

                default:
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_PARAM_INVALID;
                    optReturn.Message = string.Format("Method invalid\t{0}", config.Method);
                    return(optReturn);
                }
                WebResponse httpWebResponse = webRequest.GetResponse();
                Stream      stream          = httpWebResponse.GetResponseStream();
                if (stream == null)
                {
                    optReturn.Result  = false;
                    optReturn.Code    = Defines.RET_OBJECT_NULL;
                    optReturn.Message = string.Format("Response stream is null");
                    return(optReturn);
                }
                using (FileStream fileStream = new FileStream(strTargetPath, FileMode.Create, FileAccess.Write))
                {
                    byte[] buffer = new byte[1024];
                    int    readed = stream.Read(buffer, 0, 1024);
                    while (readed > 0)
                    {
                        fileStream.Write(buffer, 0, readed);
                        readed = stream.Read(buffer, 0, 1024);
                    }
                    fileStream.Close();
                    stream.Close();
                }
                optReturn.StringValue = strTargetPath;
            }
            catch (Exception ex)
            {
                optReturn.Result    = false;
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 写入日志
        /// </summary>
        /// <param name="mode">日志模式</param>
        /// <param name="category">分类</param>
        /// <param name="msg">消息内容</param>
        /// <returns></returns>
        public OperationReturn WriteLog(LogMode mode, string category, string msg)
        {
            OperationReturn optReturn = new OperationReturn();

            optReturn.Result = true;
            optReturn.Code   = Defines.RET_SUCCESS;
            try
            {
                if ((mode & mLogMode) == 0)
                {
                    return(optReturn);
                }
                DateTime now      = DateTime.Now;
                FileInfo fileInfo = new FileInfo(mLogFile);
                if (mLastDate.Date != now.Date ||
                    mLogWriter == null ||
                    (File.Exists(mLogFile) && fileInfo.Length > mLogFileSize * 1024))
                {
                    optReturn = Start();
                    if (!optReturn.Result)
                    {
                        return(optReturn);
                    }
                }
                int    index    = msg.IndexOf("\r\n", StringComparison.Ordinal);
                string strThis  = msg;
                string strOther = string.Empty;
                if (index > 0)
                {
                    strThis  = msg.Substring(0, index);
                    strOther = msg.Substring(index + 2);
                }
                string formatstr = string.Format("{0,-8} |{1,-15} |({2})| {3,-20} {4}"
                                                 , mode
                                                 , DateTime.Now.ToString("HH:mm:ss.fff")
                                                 , Thread.CurrentThread.ManagedThreadId.ToString("00000")
                                                 , category
                                                 , strThis);
                lock (mLogWriterLocker)
                {
                    if (mLogWriter != null)
                    {
                        mLogWriter.WriteLine(formatstr);
                        mLogWriter.Flush();
                    }
                    else
                    {
                        optReturn.Result  = false;
                        optReturn.Code    = Defines.RET_OBJECT_NULL;
                        optReturn.Message = "LogWriter is null";
                        return(optReturn);
                    }
                }
                if (!string.IsNullOrEmpty(strOther))
                {
                    WriteLog(mode, category, strOther);
                }
            }
            catch (Exception ex)
            {
                optReturn.Code      = Defines.RET_FAIL;
                optReturn.Message   = ex.Message;
                optReturn.Exception = ex;
            }
            return(optReturn);
        }