Пример #1
0
 private void Unlink_Click(object sender, EventArgs e)
 {
     MessageBox.Show("Выберите задачу, с которой необходимо разорвать связь", "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Information);
     status = MapStat.unlinking;
     Cursor = Cursors.Hand;
     ALink  = editnow;
 }
Пример #2
0
 /// <summary>
 /// Обработчик нажатия по панели для показа контекствного меню
 /// </summary>
 /// <param name="sender">Объект события</param>
 /// <param name="e">Аргумент события</param>
 private void Panel1_MouseClick(object sender, MouseEventArgs e)
 {
     if (status == MapStat.createnew && e.Button == MouseButtons.Left)
     {
         mouseloc = e.Location;
         Cursor   = Cursors.Arrow;
         status   = MapStat.none;
         AddTask form = new AddTask();
         form.FormClosing   += uxPlay;
         this.Enabled        = false;
         form.SavingChanges += GetNewPoint;
         form.Show();
         StartPaintTrace();
     }
     else if (e.Button == MouseButtons.Right)
     {
         foreach (ToolStripItem it in contextPainter.Items)
         {
             it.Enabled = false;
         }
         contextPainter.Items[0].Enabled = true;
         if (points.Count > 0)
         {
             contextPainter.Items[6].Enabled = true;
         }
         mouseloc = new Point(Cursor.Position.X - TasksPanel.Location.X - this.Location.X, Cursor.Position.Y - TasksPanel.Location.Y - this.Location.Y);
         contextPainter.Show(Cursor.Position);
         StartPaintTrace();
     }
 }
Пример #3
0
 /// <summary>
 /// Обработчик события нажатия "Связать с"
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Link_Click(object sender, EventArgs e)
 {
     MessageBox.Show("Выберите задачу для связывания", "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Information);
     this.Cursor = Cursors.Hand;
     status      = MapStat.linking;
     ALink       = editnow;
 }
Пример #4
0
 private void DeleteLinkStripMenuItem1_Click(object sender, EventArgs e)
 {
     Cursor = Cursors.Hand;
     status = MapStat.unlinking;
     MessageBox.Show("Укажите задачу от которого будет происходить отвязка на карте", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
     editnow = null;
     ALink   = null;
 }
Пример #5
0
        /// <summary>
        /// 获取工地地图信息
        /// </summary>
        /// <returns></returns>
        public IEnumerable <MapStat> Post()
        {
            _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"]));
            var type     = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"]));
            var mapstats = new List <MapStat>();
            var stats    = _dbContext.Stats.Where(obj => obj.ProType == type);

            if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request["district"]))
            {
                var district = int.Parse(HttpContext.Current.Request["district"]);
                stats = stats.Where(obj => obj.Country == district);
            }

            if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request["stat"]))
            {
                var stat = int.Parse(HttpContext.Current.Request["stat"]);
                stats = stats.Where(obj => obj.Country == stat);
            }

            foreach (var stat in stats)
            {
                var min = _dbContext.EsMin.OrderByDescending(obj => obj.UpdateTime)
                          .FirstOrDefault(item => item.StatId == stat.Id);
                var cordinate = Global.ConvertToGdCordinate((double)stat.Longitude, (double)stat.Latitude);
                var mapStat   = new MapStat
                {
                    id        = stat.Id,
                    name      = stat.StatName.Trim(),
                    latitude  = cordinate.Latitude,
                    longitude = cordinate.Longitude
                };
                if (min != null)
                {
                    if (min.UpdateTime != null)
                    {
                        mapStat.time = min.UpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
                    }
                    mapStat.tsp           = Math.Round(min.TP / 1000.0, 2);
                    mapStat.rate          = Global.GetRate(min.TP / 1000.0);
                    mapStat.windSpeed     = min.WindSpeed;
                    mapStat.windDirection = min.WindDirection;
                    mapStat.temperature   = min.Temperature;
                    mapStat.humidity      = min.Humidity;
                }
                mapstats.Add(mapStat);
            }
            return(mapstats);
        }
Пример #6
0
 /// <summary>
 /// Обработчик нажатия мышью по TaskUI
 /// </summary>
 /// <param name="sender">Объект события</param>
 /// <param name="e">Аргумент события</param>
 private void ClickPoint(object sender, MouseEventArgs e)
 {
     if (status == MapStat.none)
     {
         editnow         = (TaskUI)sender;
         mousecorrection = e.Location;
         drag            = true;
         if (e.Button == MouseButtons.Right)
         {
             foreach (ToolStripItem ts in contextPainter.Items)
             {
                 ts.Enabled = false;
             }
             contextPainter.Items[2].Enabled = true;
             contextPainter.Items[1].Enabled = true;
             contextPainter.Items[3].Enabled = true;
             if (editnow.Task.Connections.Count > 0)
             {
                 contextPainter.Items[5].Enabled = true;
             }
             if (points.Count > 1)
             {
                 contextPainter.Items[4].Enabled = true;
             }
             if (points.Count > 0)
             {
                 contextPainter.Items[6].Enabled = true;
             }
             contextPainter.Show(Cursor.Position);
         }
     }
     if (status == MapStat.delete)
     {
         editnow = (TaskUI)sender;
         Cursor  = Cursors.Arrow;
         status  = MapStat.none;
         List <NetPoint> np = Tasks;
         np.Remove(editnow.Task);
         Tasks = np;
         way   = null;
         TasksPanel.Controls.Remove(editnow);
         List <NetPoint> update = new List <NetPoint>();
         foreach (NetPoint nep in Tasks)
         {
             NetPoint updated = nep;
             if (updated.Connections.Contains(editnow.Task))
             {
                 updated.Connections.Remove(editnow.Task);
             }
             update.Add(updated);
         }
         Tasks = update;
         StartPaintTrace();
     }
     if (status == MapStat.edit)
     {
         Cursor = Cursors.Default;
         status = MapStat.none;
         TaskUI sen = (TaskUI)sender;
         editnow = sen;
         editnow.Task.PointType = sen.Task.PointType;
         NetPoint task = sen.Task;
         EditTask edit = new EditTask(task);
         edit.SavingChanges += EditPoint;
         edit.FormClosing   += uxPlay;
         this.Enabled        = false;
         edit.Show();
         StartPaintTrace();
     }
     if (status == MapStat.linking)
     {
         if (editnow == null && ALink == null)
         {
             ALink = (TaskUI)sender;
             MessageBox.Show("Выберите задачу, с которой необходимо образовать связь", "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         else if (editnow == null && ALink != null)
         {
             editnow = (TaskUI)sender;
         }
         way = null;
         NetPoint linked = ((TaskUI)sender).Task;
         if (((TaskUI)sender) != ALink)
         {
             ALink.Task.Connections.Add(linked);
         }
         else if (ALink.Task.Connections.Contains(linked))
         {
             ALink.Task.Connections.Remove(linked);
             ALink.Task.Connections.Add(linked);
             MessageBox.Show("С данной задачей уже установлена связь", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         Cursor = Cursors.Default;
         status = MapStat.none;
         UpdateTable();
         StartPaintTrace();
     }
     if (status == MapStat.unlinking)
     {
         if (ALink == null && editnow == null)
         {
             ALink = (TaskUI)sender;
             MessageBox.Show("Выберите задачу, с которой необходимо разорвать связь", "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         else if (ALink != null && editnow == null)
         {
             editnow = (TaskUI)sender;
         }
         way = null;
         NetPoint unlink = ((TaskUI)sender).Task;
         if (((TaskUI)sender) != ALink && ALink.Task.Connections.Contains(unlink))
         {
             ALink.Task.Connections.Remove(unlink);
             List <NetPoint> nplist = new List <NetPoint>();
             foreach (NetPoint np in points)
             {
                 nplist.Add(np);
                 if (np.ID == ALink.Task.ID)
                 {
                     nplist.Add(ALink.Task);
                     break;
                 }
             }
         }
         else
         {
             MessageBox.Show("С данным объектом не установлена связь", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         Cursor = Cursors.Default;
         status = MapStat.none;
         UpdateTable();
         StartPaintTrace();
     }
 }
Пример #7
0
 private void DeleteTaskMenuStripItem_Click(object sender, EventArgs e)
 {
     Cursor = Cursors.Hand;
     status = MapStat.delete;
     MessageBox.Show("Укажите задачу для удаления на карте", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
 }
Пример #8
0
 private void AddTaskStripMenuItem_Click(object sender, EventArgs e)
 {
     Cursor = Cursors.Cross;
     MessageBox.Show("Разместите задачу на карте", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
     status = MapStat.createnew;
 }
Пример #9
0
 private void EditTaskStripMenuItem1_Click(object sender, EventArgs e)
 {
     Cursor = Cursors.Hand;
     MessageBox.Show("Выберите задачу для редактирования на карте", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
     status = MapStat.edit;
 }