コード例 #1
0
ファイル: DataManager.cs プロジェクト: LeoAnger/Flying-Airmen
        void controll()
        {
            while (!isReadedData)
            {
                //读取数据
                sourceDatas  = sourceDatasTemp;
                isReadedData = true;
                //是否叠包
                string[] strArr = sourceDatas.Split('☍');
                for (int i = 0; i < strArr.Length - 1; i++)
                {
                    try
                    {
                        deserializeObject = JsonConvert.DeserializeObject <SourceDataEntity>(strArr[i]);
                    }
                    catch (Exception e)
                    {
                        print("映射数据:" + strArr[i]);
                        print(e);
                        break;
                    }

                    /*
                     * 1.判断数据类型
                     * 2.获取Content进行反序列化
                     * 3.逻辑处理
                     */
                    if (RoomInfo.RoomInfo.RoomPermissions != RoomPermissions.Admin)
                    {
                        switch (deserializeObject.SourceDataType)
                        {
                        case SourceDataType.EnemyBulletByName:
                            EnemyManager.EnemyBulletQueue.Enqueue(deserializeObject.Content);
                            break;

                        case SourceDataType.EnemyByName:
                            EnemyManager.EnemyQueue.Enqueue(deserializeObject.Content);
                            break;

                        case SourceDataType.GameObj:
                            print("接收到服务器创建物体消息...");
                            while (NetGameObj.isReadedData)
                            {
                                NetGameObj.sourceDatasTemp = deserializeObject.Content;
                                NetGameObj.isReadedData    = false;
                            }
                            break;

                        case SourceDataType.Player1:
                            print("Player1消息来了。。。。。");
                            break;
                        }
                    }
                    switch (deserializeObject.SourceDataType)
                    {
                    case SourceDataType.Player2:
                        print("接收到Player2消息。。。");
                        //判断是否是自己
                        //2.通知Player2

                        // 通知DataManager
                        while (NetPlayer2.isReadedData)
                        {
                            NetPlayer2.sourceDatasTemp = deserializeObject.Content;
                            NetPlayer2.isReadedData    = false;
                        }
                        break;
                    }
                }
            }
        }
コード例 #2
0
        private void buttonControl2_Click(object sender, EventArgs e)
        {
            String start      = teStart.Text;
            String end        = teEnd.Text;
            String subsection = teSubsection.Text;
            String scene      = teScene.Text;
            String open       = teOpen.Text;
            String room       = teRoom.Text;
            String emergency  = "0";

            List <SourceDataEntity> sourceDataList = new List <SourceDataEntity>();

            if (start.Length == 0 && end.Length == 0 && subsection.Length == 0)
            {
                sourceDataList = gcSourceData.DataSource as List <SourceDataEntity>;
                foreach (SourceDataEntity sd in sourceDataList)
                {
                    sd.numSite   = scene;
                    sd.numOpen   = open;
                    sd.numClinic = room;
                    sd.numYj     = emergency;
                }
                gcSourceData.DataSource = sourceDataList;
                gcSourceData.RefreshDataSource();
                return;
            }

            String sdName = "";

            if (scheduled.period.Equals("0"))
            {
                sdName = "上午";
            }
            if (scheduled.period.Equals("1"))
            {
                sdName = "下午";
            }
            if (scheduled.period.Equals("2"))
            {
                sdName = "晚上";
            }
            if (scheduled.period.Equals("3"))
            {
                sdName = "全天";
            }

            //分段数量
            int rowNum = 0;

            #region 计算分段数量
            if (start.Trim().Length == 0 || end.Trim().Length == 0 ||
                subsection.Trim().Length == 0)
            {
                cmd.HideOpaqueLayer();
                MessageBoxUtils.Hint(sdName + "的设置不能为空", this);
                return;
            }
            String[] startArr = start.Split(new char[] { ':', ':' });
            String[] endArr   = end.Split(new char[] { ':', ':' });
            if (startArr.Length != 2)
            {
                cmd.HideOpaqueLayer();
                MessageBoxUtils.Hint(sdName + "的开始时间设置有误", this);
                return;
            }
            if (endArr.Length != 2)
            {
                cmd.HideOpaqueLayer();
                MessageBoxUtils.Hint(sdName + "的结束时间设置有误", this);
                return;
            }

            //计算早上的分段数量
            if (sdName.Equals("上午"))
            {
                DateTime d1     = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00);
                DateTime d2     = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00);
                TimeSpan d3     = d2.Subtract(d1);
                int      minute = d3.Hours * 60 + d3.Minutes;
                if (minute <= 0)
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("上午结束时间不能小于或等于开始时间", this);
                    return;
                }
                if (minute < int.Parse(subsection))
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("上午分段时间大于总时间", this);
                    return;
                }
                if (minute % int.Parse(subsection) == 0)
                {
                    rowNum = minute / int.Parse(subsection);
                }
                else
                {
                    rowNum = (minute / int.Parse(subsection)) + 1;
                }
            }

            //计算下午的分段数量
            if (sdName.Equals("下午"))
            {
                DateTime d1     = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00);
                DateTime d2     = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00);
                TimeSpan d3     = d2.Subtract(d1);
                int      minute = d3.Hours * 60 + d3.Minutes;
                if (minute <= 0)
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("下午结束时间不能小于或等于开始时间", this);
                    return;
                }
                if (minute < int.Parse(subsection))
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("下午分段时间大于总时间", this);
                    return;
                }
                if (minute % int.Parse(subsection) == 0)
                {
                    rowNum = minute / int.Parse(subsection);
                }
                else
                {
                    rowNum = (minute / int.Parse(subsection)) + 1;
                }
            }

            //计算晚上的分段数量
            if (sdName.Equals("晚上"))
            {
                DateTime d1 = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00);
                DateTime d2 = new DateTime();
                if (endArr[0].Equals("24"))
                {
                    d2 = new DateTime(2004, 1, 2, 00, int.Parse(endArr[1]), 00);
                }
                if (int.Parse(endArr[0]) < int.Parse(startArr[0]))
                {
                    d2 = new DateTime(2004, 1, 2, int.Parse(endArr[0]), int.Parse(endArr[1]), 00);
                }
                else
                {
                    d2 = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00);
                }
                TimeSpan d3     = d2.Subtract(d1);
                int      minute = d3.Hours * 60 + d3.Minutes;
                if (minute <= 0)
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("晚上结束时间不能小于或等于开始时间", this);
                    return;
                }
                if (minute < int.Parse(subsection))
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("晚上分段时间大于总时间", this);
                    return;
                }
                if (minute % int.Parse(subsection) == 0)
                {
                    rowNum = minute / int.Parse(subsection);
                }
                else
                {
                    rowNum = (minute / int.Parse(subsection)) + 1;
                }
            }

            //计算全天的分段数量
            if (sdName.Equals("全天"))
            {
                DateTime d1 = new DateTime(2004, 1, 1, int.Parse(startArr[0]), int.Parse(startArr[1]), 00);
                DateTime d2 = new DateTime();
                if (endArr[0].Equals("24"))
                {
                    d2 = new DateTime(2004, 1, 2, 00, int.Parse(endArr[1]), 00);
                }
                else
                {
                    d2 = new DateTime(2004, 1, 1, int.Parse(endArr[0]), int.Parse(endArr[1]), 00);
                }
                TimeSpan d3     = d2.Subtract(d1);
                int      minute = d3.Hours * 60 + d3.Minutes;
                if (minute <= 0)
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("全天结束时间不能小于或等于开始时间", this);
                    return;
                }
                if (minute < int.Parse(subsection))
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Hint("全天分段时间大于总时间", this);
                    return;
                }
                if (minute % int.Parse(subsection) == 0)
                {
                    rowNum = minute / int.Parse(subsection);
                }
                else
                {
                    rowNum = (minute / int.Parse(subsection)) + 1;
                }
            }
            #endregion



            DateTime dt1 = new DateTime(); //开始时间
            DateTime dt2 = new DateTime(); //结束时间

            dt1 = DateTime.Parse("2008-08-08 " + start + ":00");
            dt2 = dt1.AddMinutes(int.Parse(subsection));

            for (int i = 0; i < rowNum; i++)
            {
                SourceDataEntity sourceData = new SourceDataEntity();
                start = dt1.ToString("HH:mm");
                if (i == rowNum - 1)
                {
                    end = teEnd.Text;
                }
                else
                {
                    end = dt2.ToString("HH:mm");
                }
                dt1 = dt2;
                dt2 = dt1.AddMinutes(int.Parse(subsection));
                sourceData.beginTime = start;
                sourceData.endTime   = end;
                sourceData.numSite   = scene;
                sourceData.numOpen   = open;
                sourceData.numClinic = room;
                sourceData.numYj     = emergency;
                sourceDataList.Add(sourceData);
            }
            gcSourceData.DataSource = sourceDataList;
        }
コード例 #3
0
        private void AddRowNumberEdit_Load(object sender, EventArgs e)
        {
            cmd = new Xr.Common.Controls.OpaqueCommand(this);
            String sdName = "";

            if (scheduled.period.Equals("0"))
            {
                sdName = "上午";
            }
            if (scheduled.period.Equals("1"))
            {
                sdName = "下午";
            }
            if (scheduled.period.Equals("2"))
            {
                sdName = "晚上";
            }
            if (scheduled.period.Equals("3"))
            {
                sdName = "全天";
            }
            label1.Text = "科室:" + scheduled.deptName + "        医生:" + scheduled.doctorName + "        日期:" + scheduled.workDate + sdName;
            String param = "hospitalId=" + AppContext.Session.hospitalId + "&deptId=" + scheduled.deptId
                           + "&doctorId=" + scheduled.doctorId + "&workDate=" + scheduled.workDate
                           + "&period=" + scheduled.period;
            String url = AppContext.AppConfig.serverUrl + "sch/doctorScheduPlan/getLaveTime?" + param;

            cmd.ShowOpaqueLayer(0f);
            this.DoWorkAsync(0, (o) => //耗时逻辑处理(此处不能操作UI控件,因为是在异步中)
            {
                String data = HttpClass.httpPost(url);
                return(data);
            }, null, (data) => //显示结果(此处用于对上面结果的处理,比如显示到界面上)
            {
                JObject objT = JObject.Parse(data.ToString());
                if (string.Compare(objT["state"].ToString(), "true", true) == 0)
                {
                    JArray dyList = JArray.Parse(objT["result"].ToString());
                    List <SourceDataEntity> sdList = new List <SourceDataEntity>();
                    for (int i = 0; i < dyList.Count; i++)
                    {
                        JArray arr          = JArray.Parse(dyList[i].ToString());
                        SourceDataEntity sd = new SourceDataEntity();
                        sd.workDate         = arr[0].ToString();
                        sd.beginTime        = arr[1].ToString();
                        sd.endTime          = arr[2].ToString();
                        sd.mzType           = "1";
                        sd.numSite          = "0";
                        sd.numOpen          = "0";
                        sd.numClinic        = "0";
                        sd.numYj            = "0";
                        sdList.Add(sd);
                    }
                    gcSourceData.DataSource = sdList;
                    cmd.HideOpaqueLayer();
                }
                else
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Show(objT["message"].ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, this);
                    if (objT["message"].ToString().Equals("只能对当前时段进行增加排班号源"))
                    {
                        DialogResult = DialogResult.Cancel;
                    }
                    return;
                }
            });
        }