コード例 #1
0
    void Import(string szFilePath, string szErrListRawFile, out uint nImported, out uint nFailed, out string szOutError)
    {
        szOutError = "";
        ErrorLines = new ArrayList();
        nImported  = 0;
        nFailed    = 0;
        string strline;

        StreamWriter tWrite = new StreamWriter(szErrListRawFile, false, Encoding.GetEncoding("gb2312"));

        System.IO.StreamReader mysr      = new StreamReader(Server.MapPath(szFilePath), Encoding.GetEncoding("gb2312"));
        REQUESTCODE            uResponse = REQUESTCODE.EXECUTE_FAIL;

        System.IO.StringWriter swCSV = new System.IO.StringWriter();
        bool bAllRight  = true;
        uint count      = 0;
        uint uCountFali = 0;

        UNITERM[] termNow  = GetTermNow();
        int       nContint = 0;

        szOutError = "<table>";
        while ((strline = mysr.ReadLine()) != null)
        {
            nContint = nContint + 1;
            if (nContint == 1)
            {
                continue;
            }

            string szError = "";

            string[] szList = strline.Split(',');
            if (szList.Length < 4)
            {
                continue;
            }
            count = count + 1;
            string   szRoomName      = szList[0];
            string[] szResvWeeksList = szList[1].Split(';');; //周次列表
            string[] szWeekList      = szList[2].Split(';');  //星期
            string[] szSecs          = szList[3].Split(';');  //节次

            UNIROOM setRoom;

            for (uint i = 0; i < szResvWeeksList.Length; i++)//周数组循环
            {
                string szResvWeekTemp = szResvWeeksList[i];
                if (szResvWeekTemp == "")
                {
                    continue;
                }
                string[] szStartEndWeekList = szResvWeekTemp.Split('-');//
                uint     uStrartWeeks       = 0;
                uint     uEndWeeks          = 0;
                if (szStartEndWeekList.Length == 1)
                {
                    uStrartWeeks = Parse(szStartEndWeekList[0]);
                    uEndWeeks    = Parse(szStartEndWeekList[0]);
                }
                else if (szStartEndWeekList.Length == 2)
                {
                    uStrartWeeks = Parse(szStartEndWeekList[0]);
                    uEndWeeks    = Parse(szStartEndWeekList[1]);
                }
                else
                {
                    szOutError += "<tr><td>" + szList[1] + "(" + szResvWeekTemp + ")" + "</td><td></td><td>格式不对</td></tr>";
                    uCountFali  = uCountFali + 1;
                    continue;
                }
                if (uEndWeeks < uStrartWeeks)
                {
                    szOutError += "<tr><td>" + szRoomName + "</td><td>" + szResvWeekTemp + "</td><td>开始周次大于结束周次</td></tr>";
                    uCountFali  = uCountFali + 1;
                    continue;
                }
                if (uStrartWeeks == 0 || uEndWeeks == 0)
                {
                    szOutError += "<tr><td>" + szRoomName + "</td><td>" + szResvWeekTemp + "</td><td>开始周次或者结束周次格式不对</td></tr>";
                    uCountFali  = uCountFali + 1;
                    continue;
                }
                for (uint k = uStrartWeeks; k <= uEndWeeks; k++)//周循环
                {
                    //k表示第几周
                    //  uint uWeeksReal = Parse(szWeekList[m - 1]);
                    for (uint m = 0; m < szWeekList.Length; m++)//m表示星期
                    {
                        uint uWeekReal = Parse(szWeekList[m]) - 1;
                        if (uWeekReal < 0 || uWeekReal > 7)
                        {
                            szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "内的第" + k + "周的星期(" + m + ")" + "</td><td>格式错误</td></tr>";
                            uCountFali  = uCountFali + 1;
                            continue;
                        }

                        int uResvDate = GetDateFromWeek((uint)termNow[0].dwYearTerm, k, (uWeekReal));//预约的日期
                        if (uResvDate.ToString().Length != 8)
                        {
                            szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "内的第" + k + "周的星期(" + m + ")" + "</td><td>格式错误</td></tr>";
                            uCountFali  = uCountFali + 1;
                            continue;
                        }
                        for (uint n = 0; n < szSecs.Length; n++)//节次
                        {
                            int      uBeginSec     = -1;
                            int      uEndSec       = -1;
                            string[] szSecTempList = szSecs[n].Split('-');
                            if (szSecTempList.Length == 1)
                            {
                                if (szSecTempList[0] == "")
                                {
                                    continue;
                                }
                                uBeginSec = uEndSec = IntParse(szSecTempList[0]);
                            }
                            else if (szSecTempList.Length == 2)
                            {
                                if (szSecTempList[0] == "" || szSecTempList[1] == "")
                                {
                                    continue;
                                }
                                uBeginSec = IntParse(szSecTempList[0]);
                                uEndSec   = IntParse(szSecTempList[1]);
                            }
                            else
                            {
                                szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "(" + szResvWeekTemp + ")" + szSecs[n] + "</td><td>格式不对</td></tr>";
                                uCountFali  = uCountFali + 1;
                                continue;
                            }
                            if (uBeginSec == -1 || uEndSec == -1)
                            {
                                szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "(" + szResvWeekTemp + ")" + szSecs[n] + "</td><td>节次小于1</td></tr>";
                                uCountFali  = uCountFali + 1;
                                continue;
                            }
                            if (uBeginSec < 1 || uEndSec < 1)
                            {
                                szOutError += "<tr><td>" + szRoomName + "</td><td>" + szList[1] + "(" + szResvWeekTemp + ")" + szSecs[n] + "</td><td>节次小于1</td></tr>";
                                uCountFali  = uCountFali + 1;
                                continue;
                            }
                            uint uBeginTime = (uint)(termNow[0].szCTS1[uBeginSec - 1].dwBeginTime);
                            uint uEndTime   = (uint)(termNow[0].szCTS1[uEndSec - 1].dwEndTime);
                            if (!GetRoomByName(szRoomName, out setRoom))
                            {
                                szOutError += "<tr><td>" + szRoomName + "</td><td></td><td>房间名称不存在</td></tr>";
                                uCountFali  = uCountFali + 1;
                                continue;
                            }

                            //预约代码
                            string   szResvDate      = uResvDate / 10000 + "-" + (uResvDate % 10000) / 100 + "-" + uResvDate % 100;
                            DateTime resvDate        = DateTime.Parse(szResvDate);
                            string   szBeginTimeTemp = resvDate.ToString("yyyy-MM-dd") + " " + (uBeginTime / 100).ToString() + ":" + (uBeginTime % 100).ToString();
                            uint     uResvBeginTime  = Get1970Seconds(szBeginTimeTemp);
                            string   szEndTimeTemp   = resvDate.ToString("yyyy-MM-dd") + " " + (uEndTime / 100).ToString() + ":" + (uEndTime % 100).ToString();
                            uint     uResvEndTime    = Get1970Seconds(szEndTimeTemp);

                            ALLUSERRESV setValue = new ALLUSERRESV();
                            setValue.dwBeginTime = uResvBeginTime;
                            setValue.dwEndTime   = uResvEndTime;
                            setValue.dwLabID     = setRoom.dwLabID;
                            setValue.szLabName   = setRoom.szLabName;
                            setValue.szTestName  = "全体人员预约";
                            setValue.dwPurpose   = (uint)UNIRESERVE.DWPURPOSE.USEFOR_TEACHING + (uint)UNIRESERVE.DWPURPOSE.USEFOR_ALLUSER;
                            UNIDEVICE[] devList;
                            devList = GetDevByRoomId(setRoom.dwRoomID);
                            RESVDEV[] resvDev = new RESVDEV[devList.Length];
                            for (int j = 0; j < devList.Length; j++)
                            {
                                resvDev[j].dwDevEnd   = devList[j].dwDevSN;
                                resvDev[j].dwDevKind  = devList[j].dwKindID;
                                resvDev[j].dwDevStart = devList[j].dwDevSN;
                                resvDev[j].dwDevNum   = 1;
                                resvDev[j].szRoomNo   = devList[j].szRoomNo;
                            }
                            setValue.ResvDev = resvDev;
                            if (m_Request.Reserve.AllUserResvSet(setValue, out setValue) != REQUESTCODE.EXECUTE_SUCCESS)
                            {
                                szOutError += "<tr><td>" + szRoomName + "</td><td>" + szBeginTimeTemp + "到" + szEndTimeTemp + "</td><td>" + m_Request.szErrMessage + "</td></tr>";
                                szError    += m_Request.szErrMessage + ",";
                                uCountFali  = uCountFali + 1;
                            }
                            else
                            {
                                nImported = nImported + 1;
                            }
                        }
                    }
                }
            }
        }
        szOutError += "</table>";
        if (!bAllRight)
        {
            DownloadFile(Response, swCSV.GetStringBuilder(), "resarchTestImport.csv");
        }
        // nImported = count;
        nFailed = uCountFali;
        tWrite.Close();
    }
コード例 #2
0
ファイル: AllResv.aspx.cs プロジェクト: NingMoe/UniICWeb
    protected void Page_Load(object sender, EventArgs e)
    {
        m_Title = "全体预约";
        if (!IsPostBack)
        {
            UNIROOM[] roomList = GetAllRoom();
            if (roomList != null && roomList.Length > 0)
            {
                for (int i = 0; i < roomList.Length; i++)
                {
                    string szCheck = "";
                    if (i == 0)
                    {
                        szCheck = " checked=\"true\"";
                    }
                    m_szRoom += "<input class=\"enum\"" + szCheck + " type=\"radio\" name=\"" + "roomID" + "\" id='" + roomList[i].dwRoomID.ToString() + "' /> <label for=\"" + roomList[i].dwRoomID.ToString() + "\">" + roomList[i].szRoomName + "</label>";
                }
                UNIDEVICE[] devList = GetDevByRoomId(roomList[0].dwRoomID);
                if (devList != null && devList.Length > 0)
                {
                    for (int i = 0; i < devList.Length; i++)
                    {
                        m_szDev += "<label><input class=\"enum\" type=\"checkbox\" name=\"" + "devID" + "\" value=\"" + devList[i].dwDevID.ToString() + "\" /> " + devList[i].szDevName + "</label>,";
                    }
                }
            }
        }
        else if (Request["op"] == "set")
        {
            string   szError     = "";
            string   szDevID     = Request["selectID"];
            string[] szDevIDList = szDevID.Split(',');
            if (szDevIDList.Length == 0)
            {
                return;
            }
            for (int i = 0; i < szDevIDList.Length; i++)
            {
                if (szDevIDList[i] == "")
                {
                    continue;
                }
                UNIDEVICE devCtrl    = new UNIDEVICE();
                uint      uBegInTime = Get1970Seconds(Request["dwBeginTime"]);
                uint      uEndTime   = Get1970Seconds(Request["dwEndTime"]);
                if (getDevByID(szDevIDList[i], out devCtrl))
                {
                    uint uDevID = Parse(szDevIDList[i]);

                    ALLUSERRESV setValue = new ALLUSERRESV();
                    setValue.dwBeginTime = uBegInTime;
                    setValue.dwEndTime   = uEndTime;
                    setValue.dwLabID     = devCtrl.dwLabID;
                    setValue.szLabName   = devCtrl.szLabName;
                    setValue.szTestName  = "全体人员预约";
                    setValue.dwPurpose   = (uint)UNIRESERVE.DWPURPOSE.USEFOR_TEACHING + (uint)UNIRESERVE.DWPURPOSE.USEFOR_ALLUSER + (uint)UNIRESERVE.DWPURPOSE.USEFOR_PC;
                    RESVDEV[] resvDev = new RESVDEV[1];
                    resvDev[0].dwDevEnd   = devCtrl.dwDevSN;
                    resvDev[0].dwDevKind  = devCtrl.dwKindID;
                    resvDev[0].dwDevStart = devCtrl.dwDevSN;
                    resvDev[0].dwDevNum   = 1;
                    resvDev[0].szRoomNo   = devCtrl.szRoomNo;
                    setValue.ResvDev      = resvDev;
                    if (m_Request.Reserve.AllUserResvSet(setValue, out setValue) != REQUESTCODE.EXECUTE_SUCCESS)
                    {
                        szError += m_Request.szErrMessage + ",";
                    }
                }
                if (szError != "")
                {
                    MessageBox(szError, "提示", MSGBOX.SUCCESS, MSGBOX_ACTION.CANCEL);
                }
                else
                {
                    MessageBox("设置成功", "提示", MSGBOX.SUCCESS, MSGBOX_ACTION.CANCEL);
                }
            }
        }
    }
コード例 #3
0
    void Import(string szFilePath, string szErrListRawFile, out uint nImported, out uint nFailed, out string szOutError)
    {
        szOutError = "";
        ErrorLines = new ArrayList();
        nImported  = 0;
        nFailed    = 0;
        string strline;

        StreamWriter tWrite = new StreamWriter(szErrListRawFile, false, Encoding.GetEncoding("gb2312"));

        System.IO.StreamReader mysr      = new StreamReader(Server.MapPath(szFilePath), Encoding.GetEncoding("gb2312"));
        REQUESTCODE            uResponse = REQUESTCODE.EXECUTE_FAIL;

        System.IO.StringWriter swCSV = new System.IO.StringWriter();
        bool bAllRight  = true;
        uint count      = 0;
        uint uCountFali = 0;

        int nContint = 0;

        while ((strline = mysr.ReadLine()) != null)
        {
            nContint = nContint + 1;
            if (nContint == 1)
            {
                continue;
            }

            string szError = "";

            string[] szList = strline.Split(',');
            if (szList.Length < 4)
            {
                continue;
            }
            count = count + 1;
            string szRoomName = szList[0];
            string szResvDate = szList[1];
            uint   uBeginTime = Parse(szList[2]);
            uint   uEndTime   = Parse(szList[3]);

            UNIROOM setRoom;

            if (uEndTime <= uBeginTime)
            {
                szOutError += "<tr><td>" + szRoomName + "</td><td></td><td>结束时间小于开始时间</td></tr>";
                uCountFali  = uCountFali + 1;
                continue;
            }
            if (!GetRoomByName(szRoomName, out setRoom))
            {
                szOutError += "<tr><td>" + szRoomName + "</td><td></td><td>房间名称不存在</td></tr>";
                uCountFali  = uCountFali + 1;
                continue;
            }
            DateTime resvDate        = DateTime.Parse(szResvDate);
            string   szBeginTimeTemp = resvDate.ToString("yyyy-MM-dd") + " " + (uBeginTime / 100).ToString() + ":" + (uBeginTime % 100).ToString();
            uint     uResvBeginTime  = Get1970Seconds(szBeginTimeTemp);
            string   szEndTimeTemp   = resvDate.ToString("yyyy-MM-dd") + " " + (uEndTime / 100).ToString() + ":" + (uEndTime % 100).ToString();
            uint     uResvEndTime    = Get1970Seconds(szEndTimeTemp);

            ALLUSERRESV setValue = new ALLUSERRESV();
            setValue.dwBeginTime = uResvBeginTime;
            setValue.dwEndTime   = uResvEndTime;
            setValue.dwLabID     = setRoom.dwLabID;
            setValue.szLabName   = setRoom.szLabName;
            setValue.szTestName  = "全体人员预约";
            setValue.dwPurpose   = (uint)UNIRESERVE.DWPURPOSE.USEFOR_TEACHING + (uint)UNIRESERVE.DWPURPOSE.USEFOR_ALLUSER;
            UNIDEVICE[] devList;
            devList = GetDevByRoomId(setRoom.dwRoomID);
            RESVDEV[] resvDev = new RESVDEV[devList.Length];
            for (int m = 0; m < devList.Length; m++)
            {
                resvDev[m].dwDevEnd   = devList[m].dwDevSN;
                resvDev[m].dwDevKind  = devList[m].dwKindID;
                resvDev[m].dwDevStart = devList[m].dwDevSN;
                resvDev[m].dwDevNum   = 1;
                resvDev[m].szRoomNo   = devList[m].szRoomNo;
            }
            setValue.ResvDev = resvDev;
            if (m_Request.Reserve.AllUserResvSet(setValue, out setValue) != REQUESTCODE.EXECUTE_SUCCESS)
            {
                szOutError += "<tr><td>" + szRoomName + "</td><td>" + szBeginTimeTemp + "到" + szEndTimeTemp + "</td><td>" + m_Request.szErrMessage + "</td></tr>";
                szError    += m_Request.szErrMessage + ",";
                uCountFali  = uCountFali + 1;
            }
            else
            {
                nImported = nImported + 1;
            }
        }
        if (!bAllRight)
        {
            DownloadFile(Response, swCSV.GetStringBuilder(), "resarchTestImport.csv");
        }
        // nImported = count;
        nFailed = uCountFali;
        tWrite.Close();
    }