protected override void OnMouseWheel(MouseWheelEventArgs e) { base.OnMouseWheel(e); var time = TimeEnd - TimeStart; if (e.Delta < 0) { if (time.Days > 182) { return; } TimeStart = TimeStart.AddDays(-1); TimeEnd = TimeEnd.AddDays(1); } else { if (time.Days < 7) { return; } TimeStart = TimeStart.AddDays(1); TimeEnd = TimeEnd.AddDays(-1); } isDirty = true; InvalidateVisual(); }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); var pos = e.GetPosition(this); var rHeader = new Rect(0, 0, ActualWidth, rowMonthAndDay); if (rHeader.Contains(pos)) { Cursor = Cursors.Hand; } else { Cursor = Cursors.Arrow; } if (isDown) { switch (mode) { #region Move case DragMode.Move: { if (mouseStartMoveX - pos.X > 20) { TimeStart = TimeStart.AddDays(1); TimeEnd = TimeEnd.AddDays(1); mouseStartMoveX = pos.X; isDirty = true; } else if (mouseStartMoveX - pos.X < -20) { TimeStart = TimeStart.AddDays(-1); TimeEnd = TimeEnd.AddDays(-1); mouseStartMoveX = pos.X; isDirty = true; } break; } #endregion } } InvalidateVisual(); }
public CondTimeRange(string name, int range) { Name = name; TimeEnd = DateTime.Now.Date; TimeStart = TimeEnd.AddDays(-range); }
private void FillElectronicNotificatorForm() { var list = ElectricNotificators.Split(new[] { '\r', '\n' }); string ECHZone = ""; int IndexOf; var tmp = ""; string TimeRange = DateTime.Today.ToString(); DateTime DateInaccssibility = DateTime.Today.AddDays(1); bool DateIsChange = false; DateTime TimeStart; DateTime TimeEnd; List <string> Stations = new List <string>(); foreach (string tmpstr in list) { if (tmpstr != "") { /// Удаляю пунктуацию в конце строки Regex regex = new Regex(@"\W"); tmp = tmpstr; for (int i = tmp.Length - 1; i >= 0; i--) { if (!(regex.Match(tmp[i].ToString()).Success)) { tmp = tmp.Substring(0, i + 1).ToString(); i = -1; } } /// Дата начала простоя regex = new Regex(@"\d\d\.\d\d\.\d\d"); if (regex.Match(tmp).Success) { DateInaccssibility = Convert.ToDateTime((tmp.Split(' ').AsEnumerable().Where(obj => regex.Match(obj).Success)).First()); DateIsChange = true; } if (tmpstr == list[list.Length - 1] && !DateIsChange) { MessageBox.Show("Отсутсвтует дата простоя: " + Environment.NewLine + "Будет -> " + DateInaccssibility.ToString("dd.MM.yy")); } DateTime DateInaccssibilityEnd = DateInaccssibility.AddDays(1); textBox_StartActive.Text = DateInaccssibility.ToString("dd'/'MM'/'yy HH:mm:ss"); textBox_EndActive.Text = DateInaccssibility.AddDays(1).ToString("dd'/'MM'/'yy HH:mm:ss"); /// ЭЧ зона if (tmp.Contains("ЭЧ-")) { IndexOf = tmp.IndexOf("ЭЧ-"); ECHZone = tmp.Substring(IndexOf, 4); } regex = new Regex(@"\A-"); if (regex.Match(tmp.Replace(" ", "").Replace("\t", "")).Success) { if (tmp.Contains("ё")) { tmp = tmp.Replace("ё", "е"); } regex = new Regex(@"\sдо\s"); if (regex.Match(tmp).Success) { IndexOf = tmp.IndexOf(" до "); tmp = tmp.Substring(0, IndexOf) + "-" + tmp.Substring(IndexOf + 4, tmp.Length - IndexOf - 4); } try { string line; StreamReader sr = new StreamReader(".\\Glossary.txt", Encoding.Default); while ((line = sr.ReadLine()) != null) { var Glossary = line.Replace("-", " "); if (tmp.Contains(Glossary)) { //MessageBox.Show(tmp); regex = new Regex(@"\d:\d\d-\d"); if (regex.Match(tmp).Success) { TimeRange = (tmp.Split(' ', '.', ',').AsEnumerable().Where(obj => regex.Match(obj).Success)).Last(); TimeStart = DateInaccssibility + TimeSpan.Parse(TimeRange.Split('-')[0]) + TimeSpan.Parse("04:00"); TimeEnd = DateInaccssibility + TimeSpan.Parse(TimeRange.Split('-')[TimeRange.Split('-').Length - 1]) + TimeSpan.Parse("04:00"); } else { TimeStart = DateInaccssibility + TimeSpan.Parse("08:00"); TimeEnd = DateInaccssibility + TimeSpan.Parse("17:00"); } if (TimeStart > TimeEnd) { TimeEnd = TimeEnd.AddDays(1); } if (Convert.ToDateTime(textBox_EndActive.Text) < TimeEnd) { textBox_EndActive.Text = TimeEnd.ToString("dd'/'MM'/'yy HH:mm:ss"); } dataGridView_Inaccessibility.Rows.Add(TimeStart.ToString("dd'/'MM'/'yy HH:mm:ss"), TimeEnd.ToString("dd'/'MM'/'yy HH:mm:ss"), "*" + Glossary.Replace(" ", "") + "*КРАСН"); Stations.Add(Glossary); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } textBox_Description.Text = "Плановые работы " + ECHZone + " cо снятием напряжения на " + DateInaccssibility.ToString("dd.MM.yy") + ":" + Environment.NewLine; if (Stations.Count > 0) { var result = from obj in Stations.AsEnumerable() group obj by obj into grp select new { FilterObject = grp.Key, MemberCount = grp.Count() }; foreach (var item in result) { textBox_Description.Text += item.FilterObject + ", "; } } }