using System;
using System.Collections.Generic;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Diagnostics;
using System.Reflection;
using System.Web;
 
 
namespace DeiNiu.Utils
{
    public enum enumLabelPickType { pick = 0, seed, tran }
    public class Util
    {
        public static string Encrypt(string password)//加密函数
        {
            Byte[] clearBytes = new UnicodeEncoding().GetBytes(password);
            Byte[] hashedBytes = ((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(clearBytes);
            return BitConverter.ToString(hashedBytes);
        }
       
        /// 
        /// 组合in sql,return like " 1,2,3"
        /// 
        /// 
        /// 
        public static string buildWhereIntIn(ArrayList al)
        {
            string whereString = string.Empty;
            for (int i = 0; i < al.Count; i++)
            {
                whereString += "'"+ al[i] + "',";
            }
            if (whereString.EndsWith(","))
            {
                whereString = whereString.Substring(0, whereString.Length - 1);
            }
            return whereString;
        }
        public static DataSet Excel2DataSet(string filepath)
        {
            DataSet ds = new DataSet();
            ArrayList SheeNames = ExcelSheetName(filepath);
            for(int i=0;i= dv.Count)
               {
                   break;
              }
              dt.ImportRow(dv[i].Row);
           }
         return new DataView(dt, dv.RowFilter, dv.Sort,  dv.RowStateFilter);
      }
        /// 
        /// 读取配置文件某项的值
        /// 
        /// appSettings的key
        /// appSettings的Value
        //public static string GetConfig(string key)
        //{
            //string _value = string.Empty;
            //System.Configuration.ConfigurationManager  config =  System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            //if (config.AppSettings.Settings[key] != null)
            //{
            //    _value = config.AppSettings.Settings[key].Value;
            //}
            //return _value;
        //}
        //条形码转换
        public static string getCode128(string codeIn)
        {
            //string str ="";
            string result;
            int checksum = 104;
            for (int i = 0; i < codeIn.Length; i++)
            {
                if (codeIn[i] >= 32)
                {
                    checksum += (codeIn[i] - 32) * (i + 1);
                }
                else
                {
                    checksum += (codeIn[i] + 64) * (i + 1);
                }
            }
            checksum = checksum % 103;
            if (checksum < 95)
            {
                checksum += 32;
            }
            else
            {
                checksum += 100;
            }
            result = Convert.ToChar(204) + codeIn +
            Convert.ToChar(checksum) + Convert.ToChar(206);
            return result;
        }
        
        public static string getLightKey(int color,int labelId, int address)
        {
            return string.Format("{0}-{1}-{2}", color, labelId, address);
        }
        public static Dictionary convertEnumToDic(Type enumType){
            Dictionary dic = new Dictionary();
            foreach (int myCode in Enum.GetValues(enumType))
            {
                string strName = Enum.GetName(enumType, myCode);//获取名称
                string strVaule = myCode.ToString();//获取值
                dic[myCode] = strName;
               
            }
            return dic;
    }
        public static Dictionary WAVE_CURRENT_PICK_STATUS = new Dictionary();
        public static Dictionary WAVE_CURRENT_LIGHTS_STATUS = new Dictionary();
    }
}