//Wanneer er op een calendar item is geklikt, open een dialog met de gegevens van deze exam. private void ClnExams_CalendarItemClick(CalendarEvent calendarEvent, Point point) { if(calendarEvent.Event is CustomEvent) { ExamOverviewTeacherDetailDialog dialog = new ExamOverviewTeacherDetailDialog(this, (CustomEvent)calendarEvent.Event); dialog.Show(); } }
private void MenuItemPropertiesClick(object sender, EventArgs e) { if (_clickedEvent == null) return; var ed = new EventDetails { Event = _clickedEvent.Event }; if (ed.ShowDialog(this) == DialogResult.OK) { _events.Remove(_clickedEvent.Event); _events.Add(ed.NewEvent); Refresh(); } _clickedEvent = null; }
private void RenderMonthCalendar(PaintEventArgs e) { _calendarDays.Clear(); _calendarEvents.Clear(); var bmp = new Bitmap(ClientSize.Width, ClientSize.Height); Graphics g = Graphics.FromImage(bmp); e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; SizeF sunSize = g.MeasureString("Zondag", _dayOfWeekFont); SizeF monSize = g.MeasureString("Maandag", _dayOfWeekFont); SizeF tueSize = g.MeasureString("Dinsdag", _dayOfWeekFont); SizeF wedSize = g.MeasureString("Woensdag", _dayOfWeekFont); SizeF thuSize = g.MeasureString("Donderdag", _dayOfWeekFont); SizeF friSize = g.MeasureString("Vrijdag", _dayOfWeekFont); SizeF satSize = g.MeasureString("Zaterdag", _dayOfWeekFont); SizeF dateHeaderSize = g.MeasureString( _calendarDate.ToString("MMMM") + " " + _calendarDate.Year.ToString(CultureInfo.InvariantCulture), _dateHeaderFont); int headerSpacing = Max(sunSize.Height, monSize.Height, tueSize.Height, wedSize.Height, thuSize.Height, friSize.Height, satSize.Height) + 5; int controlsSpacing = ((!_showTodayButton) && (!_showDateInHeader) && (!_showArrowControls)) ? 0 : 30; int cellWidth = (ClientSize.Width - MarginSize * 2) / 7; int numWeeks = NumberOfWeeks(_calendarDate.Year, _calendarDate.Month); int cellHeight = (ClientSize.Height - MarginSize * 2 - headerSpacing - controlsSpacing) / numWeeks; int xStart = MarginSize; int yStart = MarginSize; DayOfWeek startWeekEnum = new DateTime(_calendarDate.Year, _calendarDate.Month, 1).DayOfWeek; int startWeek = ((int)startWeekEnum) + 1; int rogueDays = startWeek - 1; yStart += headerSpacing + controlsSpacing; int counter = 1; int counter2 = 1; bool first = false; bool first2 = false; _btnToday.Location = new Point(MarginSize, MarginSize); for (int y = 0; y < numWeeks; y++) { for (int x = 0; x < 7; x++) { if (rogueDays == 0 && counter <= DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month)) { if (!_calendarDays.ContainsKey(counter)) _calendarDays.Add(counter, new Point(xStart, (int)(yStart + 2f + g.MeasureString(counter.ToString(CultureInfo.InvariantCulture), _daysFont).Height))); if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month && counter == DateTime.Now.Day && _highlightCurrentDay) { g.FillRectangle(new SolidBrush(Color.FromArgb(234, 234, 234)), xStart, yStart, cellWidth, cellHeight); } if (first == false) { first = true; if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month && counter == DateTime.Now.Day) { g.DrawString( _calendarDate.ToString("MMM") + " " + counter.ToString(CultureInfo.InvariantCulture), _todayFont, Brushes.Black, xStart + 5, yStart + 2); } else { g.DrawString( _calendarDate.ToString("MMM") + " " + counter.ToString(CultureInfo.InvariantCulture), _daysFont, Brushes.Black, xStart + 5, yStart + 2); } } else { if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month && counter == DateTime.Now.Day) { g.DrawString(counter.ToString(CultureInfo.InvariantCulture), _todayFont, Brushes.Black, xStart + 5, yStart + 2); } else { g.DrawString(counter.ToString(CultureInfo.InvariantCulture), _daysFont, Brushes.Black, xStart + 5, yStart + 2); } } counter++; } else if (rogueDays > 0) { int dm = DateTime.DaysInMonth(_calendarDate.AddMonths(-1).Year, _calendarDate.AddMonths(-1).Month) - rogueDays + 1; g.DrawString(dm.ToString(CultureInfo.InvariantCulture), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2); rogueDays--; } g.DrawRectangle(Pens.DarkGray, xStart, yStart, cellWidth, cellHeight); if (rogueDays == 0 && counter > DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month)) { if (first2 == false) first2 = true; else { if (counter2 == 1) { g.DrawString(_calendarDate.AddMonths(1).ToString("MMM") + " " + counter2.ToString(CultureInfo.InvariantCulture), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2); } else { g.DrawString(counter2.ToString(CultureInfo.InvariantCulture), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2); } counter2++; } } xStart += cellWidth; } xStart = MarginSize; yStart += cellHeight; } xStart = MarginSize + ((cellWidth - (int)sunSize.Width) / 2); yStart = MarginSize + controlsSpacing; g.DrawString("Zondag", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)monSize.Width) / 2) + cellWidth; g.DrawString("Maandag", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)tueSize.Width) / 2) + cellWidth * 2; g.DrawString("Dinsdag", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)wedSize.Width) / 2) + cellWidth * 3; g.DrawString("Woensdag", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)thuSize.Width) / 2) + cellWidth * 4; g.DrawString("Donderdag", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)friSize.Width) / 2) + cellWidth * 5; g.DrawString("Vrijdag", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)satSize.Width) / 2) + cellWidth * 6; g.DrawString("Zaterdag", _dayOfWeekFont, Brushes.Black, xStart, yStart); if (_showDateInHeader) { g.DrawString( _calendarDate.ToString("MMMM") + " " + _calendarDate.Year.ToString(CultureInfo.InvariantCulture), _dateHeaderFont, Brushes.Black, ClientSize.Width - MarginSize - dateHeaderSize.Width, MarginSize); } _events.Sort(new EventComparer()); for (int i = 1; i <= DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month); i++) { int renderOffsetY = 0; foreach (IEvent v in _events) { var dt = new DateTime(_calendarDate.Year, _calendarDate.Month, i, 23, 59, _calendarDate.Second); if (NeedsRendering(v, dt)) { int alpha = 255; if (!v.Enabled && _dimDisabledEvents) alpha = 64; Color alphaColor = Color.FromArgb(alpha, v.EventColor.R, v.EventColor.G, v.EventColor.B); int offsetY = renderOffsetY; Region r = g.Clip; Point point = _calendarDays[i]; SizeF sz = g.MeasureString(v.EventText, v.EventFont); int yy = point.Y - 1; int xx = ((cellWidth - (int)sz.Width) / 2) + point.X; if (sz.Width > cellWidth) xx = point.X; if (renderOffsetY + sz.Height > cellHeight - 10) continue; g.Clip = new Region(new Rectangle(point.X + 1, point.Y + offsetY, cellWidth - 1, (int)sz.Height)); g.FillRectangle(new SolidBrush(alphaColor), point.X + 1, point.Y + offsetY, cellWidth - 1, sz.Height); if (!v.Enabled && _showDashedBorderOnDisabledEvents) { var p = new Pen(new SolidBrush(Color.FromArgb(255, 0, 0, 0))) { DashStyle = DashStyle.Dash }; g.DrawRectangle(p, point.X + 1, point.Y + offsetY, cellWidth - 2, sz.Height - 1); } g.DrawString(v.EventText, v.EventFont, new SolidBrush(v.EventTextColor), xx, yy + offsetY); g.Clip = r; var ev = new CalendarEvent { EventArea = new Rectangle(point.X + 1, point.Y + offsetY, cellWidth - 1, (int)sz.Height), Event = v, Date = dt }; _calendarEvents.Add(ev); renderOffsetY += (int)sz.Height + 1; } } } _rectangles.Clear(); g.Dispose(); e.Graphics.DrawImage(bmp, 0, 0, ClientSize.Width, ClientSize.Height); bmp.Dispose(); }
internal Bitmap RequestImage() { const int cellHourWidth = 60; const int cellHourHeight = 30; var bmp = new Bitmap(ClientSize.Width, cellHourWidth * 24); Graphics g = Graphics.FromImage(bmp); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; var dt = new DateTime(_calendarDate.Year, _calendarDate.Month, _calendarDate.Day, 0, 0, 0); int xStart = 0; int yStart = 0; g.DrawRectangle(Pens.Black, 0, 0, ClientSize.Width - MarginSize * 2 - 2, cellHourHeight * 24); for (int i = 0; i < 24; i++) { var textWidth = (int)g.MeasureString(dt.ToString("htt").ToLower(), _dayViewTimeFont).Width; g.DrawRectangle(Pens.Black, xStart, yStart, cellHourWidth, cellHourHeight); g.DrawLine(Pens.Black, xStart + cellHourWidth, yStart + cellHourHeight, ClientSize.Width - MarginSize * 2 - 3, yStart + cellHourHeight); g.DrawLine(Pens.DarkGray, xStart + cellHourWidth, yStart + cellHourHeight / 2, ClientSize.Width - MarginSize * 2 - 3, yStart + cellHourHeight / 2); g.DrawString(dt.ToString("htt").ToLower(), _dayViewTimeFont, Brushes.Black, xStart + cellHourWidth - textWidth, yStart); yStart += cellHourHeight; dt = dt.AddHours(1); } dt = new DateTime(_calendarDate.Year, _calendarDate.Month, _calendarDate.Day, 23, 59, 0); List<IEvent> evnts = _events.Where(evnt => NeedsRendering(evnt, dt)).ToList().OrderBy(d => d.Date).ToList(); xStart = cellHourWidth + 1; yStart = 0; g.Clip = new Region(new Rectangle(0, 0, ClientSize.Width - MarginSize * 2 - 2, cellHourHeight * 24)); _calendarEvents.Clear(); for (int i = 0; i < 24; i++) { dt = new DateTime(_calendarDate.Year, _calendarDate.Month, _calendarDate.Day, 0, 0, 0); dt = dt.AddHours(i); foreach (var evnt in evnts) { TimeSpan ts = TimeSpan.FromHours(evnt.EventLengthInHours); if (evnt.Date.Ticks >= dt.Ticks && evnt.Date.Ticks < dt.Add(ts).Ticks && evnt.EventLengthInHours > 0 && i >= evnt.Date.Hour) { int divisor = evnt.Date.Minute == 0 ? 1 : 60 / evnt.Date.Minute; Color clr = Color.FromArgb(175, evnt.EventColor.R, evnt.EventColor.G, evnt.EventColor.B); g.FillRectangle(new SolidBrush(GetFinalBackColor()), xStart, yStart + cellHourHeight / divisor + 1, ClientSize.Width - MarginSize * 2 - cellHourWidth - 3, cellHourHeight * ts.Hours - 1); g.FillRectangle(new SolidBrush(clr), xStart, yStart + cellHourHeight / divisor + 1, ClientSize.Width - MarginSize * 2 - cellHourWidth - 3, cellHourHeight * ts.Hours - 1); g.DrawString(evnt.EventText, evnt.EventFont, new SolidBrush(evnt.EventTextColor), xStart, yStart + cellHourHeight / divisor); var ce = new CalendarEvent { Event = evnt, Date = dt, EventArea = new Rectangle(xStart, yStart + cellHourHeight / divisor + 1, ClientSize.Width - MarginSize * 2 - cellHourWidth - 3, cellHourHeight * ts.Hours) }; _calendarEvents.Add(ce); } } yStart += cellHourHeight; } g.Dispose(); return bmp; }
/// <summary> /// Calendar Constructor /// </summary> public Calendar() { InitializeComponent(); _calendarDate = DateTime.Now; _dayOfWeekFont = new Font("Arial", 10, FontStyle.Regular); _daysFont = new Font("Arial", 10, FontStyle.Regular); _todayFont = new Font("Arial", 10, FontStyle.Bold); _dateHeaderFont = new Font("Arial", 12, FontStyle.Bold); _dayViewTimeFont = new Font("Arial", 10, FontStyle.Bold); _showArrowControls = true; _showDateInHeader = true; _showTodayButton = true; _showingToolTip = false; _clickedEvent = null; _showDisabledEvents = false; _showDashedBorderOnDisabledEvents = true; _dimDisabledEvents = true; AllowEditingEvents = true; _highlightCurrentDay = true; _calendarView = CalendarViews.Month; _scrollPanel = new ScrollPanel(); _scrollPanel.RightButtonClicked += ScrollPanelRightButtonClicked; _events = new List<IEvent>(); _rectangles = new List<Rectangle>(); _calendarDays = new Dictionary<int, Point>(); _calendarEvents = new List<CalendarEvent>(); _showEventTooltips = true; _eventTip = new EventToolTip { Visible = false }; Controls.Add(_eventTip); LoadPresetHolidays = true; _scrollPanel.Visible = false; Controls.Add(_scrollPanel); }
private void ScrollPanelRightButtonClicked(object sender, MouseEventArgs e) { if (AllowEditingEvents && _calendarView == CalendarViews.Day) { int num = _calendarEvents.Count; for (int i = 0; i < num; i++) { var z = _calendarEvents[i]; if (z.EventArea.Contains(e.X, e.Y + _scrollPanel.ScrollOffset) && !z.Event.ReadOnlyEvent) { _clickedEvent = z; _contextMenuStrip1.Show(_scrollPanel, new Point(e.X, e.Y)); _eventTip.Visible = false; _eventTip.ShouldRender = false; break; } } } }
private void CalendarMouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right && AllowEditingEvents) { if (_calendarView == CalendarViews.Month) { int num = _calendarEvents.Count; for (int i = 0; i < num; i++) { var z = _calendarEvents[i]; if (z.EventArea.Contains(e.X, e.Y) && !z.Event.ReadOnlyEvent) { _clickedEvent = z; _contextMenuStrip1.Show(this, e.Location); _eventTip.Visible = false; _eventTip.ShouldRender = false; break; } } } } }
private void CalendarMouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { if (_calendarView == CalendarViews.Month) { int num = _calendarEvents.Count; for (int i = 0; i < num; i++) { var z = _calendarEvents[i]; if (z.EventArea.Contains(e.X, e.Y) && !z.Event.ReadOnlyEvent) { _clickedEvent = z; _contextMenuStrip1.Show(this, e.Location); _eventTip.Visible = false; _eventTip.ShouldRender = false; break; } } } return; } if (e.Button == MouseButtons.Left) { if (_calendarView == CalendarViews.Month) { var newEvent = new CustomEvent(); int num = _calendarEvents.Count; int xBarrier = 189; int yBarrier = (int)(Math.Ceiling(547.0 / numWeeks)); Point editPoint = new Point(e.X-20, e.Y-75); bool run = true; bool run1 = true; bool run2 = true; int probableDay=-(int)(startWeekEnum)+1; for (int i=0; i<num; i++) { var z = _calendarEvents[i]; if (z.EventArea.Contains(e.X, e.Y) && !z.Event.ReadOnlyEvent) { _clickedEvent = z; _eventTip.Visible = false; _eventTip.ShouldRender = false; move = true; return; } } if (move) { move = false; while (run) { if (editPoint.X > xBarrier) { editPoint.X -= xBarrier; probableDay++; run1 = false; } if (editPoint.Y > yBarrier) { editPoint.Y -= yBarrier; probableDay += 7; run2 = false; } if (run1 && run2) { run = false; } run1 = true; run2 = true; } DateTime newDate = DateTime.Now; try { newDate = new DateTime(_calendarDate.Year, _calendarDate.Month, probableDay); } catch { if (probableDay>0) { try { newDate = new DateTime(_calendarDate.Year, _calendarDate.Month + 1, probableDay - DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month)); } catch { newDate = new DateTime(_calendarDate.Year + 1, 1, probableDay - DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month)); } } else { try { newDate = new DateTime(_calendarDate.Year, _calendarDate.Month - 1, DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month-1) + probableDay); } catch { newDate = new DateTime(_calendarDate.Year - 1, 12, 31 + probableDay); } } } foreach (CustomEvent evnt in NetGlobals.customEvents) { if (evnt == _clickedEvent.Event) { newEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = newDate, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; invisEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; storeColor = evnt.EventColor; } } DateTime oldReleaseDate; if (newEvent.Date.DayOfWeek == 0 || (int)newEvent.Date.DayOfWeek == 6) { invisEvent.Enabled = true; MessageBox.Show("Error: This date falls on a weekend"); return; } using (StreamReader sr = new StreamReader(@"TEMPDATA•" + (NetGlobals.docCounter) + ".txt")) { while (!sr.EndOfStream) { string line = sr.ReadLine(); if (line.StartsWith(_clickedEvent.Event.Name + "•")) { individualData = line.Split('•'); } } oldReleaseDate = new DateTime(int.Parse(individualData[individualData.Length-2].Split('/')[2]), int.Parse(individualData[individualData.Length-2].Split('/')[0]), int.Parse(individualData[individualData.Length - 2].Split('/')[1])); daysLost = -int.Parse(individualData[individualData.Length - 1]); } if (_clickedEvent.Event.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { DateTime dcDate = DateTime.Now; if (individualData[1] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } int store = int.Parse(individualData[3]); individualData[3] = (int.Parse(individualData[3]) + Comparison(_clickedEvent.Event.Date, newEvent.Date)).ToString(); if (int.Parse(individualData[3]) < 0) { invisEvent.Enabled = true; individualData[3] = store.ToString(); MessageBox.Show("This results in a negative duration (" + (int.Parse(individualData[3]) + Comparison(_clickedEvent.Event.Date, newEvent.Date)) + ") days long. Please try again."); return; } NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { dcDate = evnt.Date; } }); if (dcDate == newEvent.Date) { newEvent.Enabled = false; } else { newEvent.Enabled = true; } NetGlobals.customEvents.Add(newEvent); individualData[1] = newEvent.Date.ToString("d",CultureInfo.InvariantCulture); _events.Clear(); _events.AddRange(NetGlobals.customEvents); Refresh(); saveTemp(); } else if (_clickedEvent.Event.EventText == _clickedEvent.Event.Name + " Release Date") { DateTime newRelDate = newEvent.Date; DateTime relDate = _clickedEvent.Event.Date; if (individualData[individualData.Length - 4] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[individualData.Length - 4] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[individualData.Length - 2] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[individualData.Length - 1] = daysLost.ToString(); drawNewEvent = newEvent; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { DateTime newDevDate = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime devECDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust1Date = DateTime.Now; DateTime cust2Date = DateTime.Now; DateTime cust3Date = DateTime.Now; DateTime cust4Date = DateTime.Now; DateTime cust5Date = DateTime.Now; DateTime cust6Date = DateTime.Now; IEvent cust1Event = null; IEvent cust2Event = null; IEvent cust3Event = null; IEvent cust4Event = null; IEvent cust5Event = null; IEvent cust6Event = null; IEvent relEvent = null; IEvent devECEvent = null; bool enabled; if (individualData[2] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[2] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 0) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } newRelDate = AddBusinessDays(newDevDate, int.Parse(individualData[4])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[6] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[7] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(devECEvent); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 1) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Event = evnt; cust1Date = evnt.Date; originalCust1Event = evnt; drawOldCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } cust1Date = AddBusinessDays(newDevDate, int.Parse(individualData[4])); individualData[7] = cust1Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust1Date, int.Parse(individualData[9])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[11] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[12] = daysLost.ToString(); drawNewEvent = newEvent; drawCust1Event.Date = cust1Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust1Event); NetGlobals.customEvents.Remove(devECEvent); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newCust1Event = cust1Event; newCust1Event.Date = cust1Date; NetGlobals.customEvents.Add(newCust1Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 2) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Event = evnt; cust1Date = evnt.Date; originalCust1Event = evnt; drawOldCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } cust1Date = AddBusinessDays(newDevDate, int.Parse(individualData[4])); individualData[7] = cust1Date.ToString("d", CultureInfo.InvariantCulture); cust2Date = AddBusinessDays(cust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust2Date, int.Parse(individualData[14])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[16] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[17] = daysLost.ToString(); drawNewEvent = newEvent; drawCust1Event.Date = cust1Date; drawCust2Event.Date = cust2Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(devECEvent); NetGlobals.customEvents.Remove(cust1Event); NetGlobals.customEvents.Remove(cust2Event); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newCust1Event = cust1Event; newCust1Event.Date = cust1Date; NetGlobals.customEvents.Add(newCust1Event); IEvent newcust2Event = cust2Event; newcust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newcust2Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 3) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Event = evnt; cust1Date = evnt.Date; originalCust1Event = evnt; drawOldCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } cust1Date = AddBusinessDays(newDevDate, int.Parse(individualData[4])); individualData[7] = cust1Date.ToString("d", CultureInfo.InvariantCulture); cust2Date = AddBusinessDays(cust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust3Date, int.Parse(individualData[19])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[21] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[22] = daysLost.ToString(); drawNewEvent = newEvent; drawCust1Event.Date = cust1Date; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(devECEvent); NetGlobals.customEvents.Remove(cust1Event); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newCust1Event = cust1Event; newCust1Event.Date = cust1Date; NetGlobals.customEvents.Add(newCust1Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 4) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Event = evnt; cust1Date = evnt.Date; originalCust1Event = evnt; drawOldCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } cust1Date = AddBusinessDays(newDevDate, int.Parse(individualData[4])); individualData[7] = cust1Date.ToString("d", CultureInfo.InvariantCulture); cust2Date = AddBusinessDays(cust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust4Date, int.Parse(individualData[24])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[26] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[27] = daysLost.ToString(); drawNewEvent = newEvent; drawCust1Event.Date = cust1Date; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(devECEvent); NetGlobals.customEvents.Remove(cust1Event); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newCust1Event = cust1Event; newCust1Event.Date = cust1Date; NetGlobals.customEvents.Add(newCust1Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 5) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Event = evnt; cust1Date = evnt.Date; originalCust1Event = evnt; drawOldCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } cust1Date = AddBusinessDays(newDevDate, int.Parse(individualData[4])); individualData[7] = cust1Date.ToString("d", CultureInfo.InvariantCulture); cust2Date = AddBusinessDays(cust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust5Date, int.Parse(individualData[29])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[31] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[32] = daysLost.ToString(); drawNewEvent = newEvent; drawCust1Event.Date = cust1Date; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(devECEvent); NetGlobals.customEvents.Remove(cust1Event); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newCust1Event = cust1Event; newCust1Event.Date = cust1Date; NetGlobals.customEvents.Add(newCust1Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Dev Est Comp Date") { devECDate = evnt.Date; devECEvent = evnt; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Event = evnt; cust1Date = evnt.Date; originalCust1Event = evnt; drawOldCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust1Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 7) { cust6Event = evnt; cust6Date = evnt.Date; originalCust6Event = evnt; drawOldCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); if (newDevDate == devECDate) { enabled = false; } else { enabled = true; } cust1Date = AddBusinessDays(newDevDate, int.Parse(individualData[4])); individualData[7] = cust1Date.ToString("d", CultureInfo.InvariantCulture); cust2Date = AddBusinessDays(cust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); cust6Date = AddBusinessDays(cust5Date, int.Parse(individualData[29])); individualData[32] = cust6Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawCust1Event.Date = cust1Date; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; drawCust6Event.Date = cust6Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(devECEvent); NetGlobals.customEvents.Remove(cust1Event); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); NetGlobals.customEvents.Remove(cust6Event); IEvent newDevECEvent = devECEvent; newDevECEvent.Enabled = enabled; NetGlobals.customEvents.Add(newDevECEvent); IEvent newCust1Event = cust1Event; newCust1Event.Date = cust1Date; NetGlobals.customEvents.Add(newCust1Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newCust6Event = cust6Event; newCust6Event.Date = cust6Date; NetGlobals.customEvents.Add(newCust6Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } else if (_clickedEvent.Event.Order == 2) { DateTime newCust1Date = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust2Date = DateTime.Now; DateTime cust3Date = DateTime.Now; DateTime cust4Date = DateTime.Now; DateTime cust5Date = DateTime.Now; DateTime cust6Date = DateTime.Now; DateTime devCompDate = DateTime.Now; IEvent cust2Event = null; IEvent cust3Event = null; IEvent cust4Event = null; IEvent cust5Event = null; IEvent cust6Event = null; IEvent relEvent = null; string devName = ""; if (individualData[7] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[7] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 1) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { devCompDate = evnt.Date; devName = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } }); int storeInt = int.Parse(individualData[4]); individualData[4] = Comparison(newCust1Date, devCompDate).ToString(); if (int.Parse(individualData[4]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before "+ devName); individualData[4] = storeInt.ToString(); _clickedEvent = null; return; } newRelDate = AddBusinessDays(newCust1Date, int.Parse(individualData[9])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[11] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[12] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 2) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { devCompDate = evnt.Date; devName = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[4]); individualData[4] = Comparison(newCust1Date, devCompDate).ToString(); if (int.Parse(individualData[4]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + devName); individualData[4] = storeInt.ToString(); _clickedEvent = null; return; } cust2Date = AddBusinessDays(newCust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust2Date, int.Parse(individualData[14])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[16] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[17] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust2Event.Date = cust2Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust2Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 3) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { devCompDate = evnt.Date; devName = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[4]); individualData[4] = Comparison(newCust1Date, devCompDate).ToString(); if (int.Parse(individualData[4]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + devName); individualData[4] = storeInt.ToString(); _clickedEvent = null; return; } cust2Date = AddBusinessDays(newCust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust3Date, int.Parse(individualData[19])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[21] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[22] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 4) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { devCompDate = evnt.Date; devName = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[4]); individualData[4] = Comparison(newCust1Date, devCompDate).ToString(); if (int.Parse(individualData[4]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + devName); individualData[4] = storeInt.ToString(); _clickedEvent = null; return; } cust2Date = AddBusinessDays(newCust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust4Date, int.Parse(individualData[24])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[26] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[27] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 5) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { devCompDate = evnt.Date; devName = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[4]); individualData[4] = Comparison(newCust1Date, devCompDate).ToString(); if (int.Parse(individualData[4]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + devName); individualData[4] = storeInt.ToString(); _clickedEvent = null; return; } cust2Date = AddBusinessDays(newCust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust5Date, int.Parse(individualData[29])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[31] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[32] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.EventText == _clickedEvent.Event.Name + " Dev Comp Date") { devCompDate = evnt.Date; devName = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Event = evnt; cust2Date = evnt.Date; originalCust2Event = evnt; drawOldCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust2Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 7) { cust6Event = evnt; cust6Date = evnt.Date; originalCust6Event = evnt; drawOldCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[4]); individualData[4] = Comparison(newCust1Date, devCompDate).ToString(); if (int.Parse(individualData[4]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + devName); individualData[4] = storeInt.ToString(); _clickedEvent = null; return; } cust2Date = AddBusinessDays(newCust1Date, int.Parse(individualData[9])); individualData[12] = cust2Date.ToString("d", CultureInfo.InvariantCulture); cust3Date = AddBusinessDays(cust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); cust6Date = AddBusinessDays(cust5Date, int.Parse(individualData[29])); individualData[32] = cust6Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust2Event.Date = cust2Date; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; drawCust6Event.Date = cust6Date; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust2Event); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); NetGlobals.customEvents.Remove(cust6Event); IEvent newCust2Event = cust2Event; newCust2Event.Date = cust2Date; NetGlobals.customEvents.Add(newCust2Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newCust6Event = cust6Event; newCust6Event.Date = cust6Date; NetGlobals.customEvents.Add(newCust6Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } else if (_clickedEvent.Event.Order == 3) { DateTime newCust2Date = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust1Date = DateTime.Now; DateTime cust3Date = DateTime.Now; DateTime cust4Date = DateTime.Now; DateTime cust5Date = DateTime.Now; DateTime cust6Date = DateTime.Now; IEvent cust3Event = null; IEvent cust4Event = null; IEvent cust5Event = null; IEvent cust6Event = null; IEvent relEvent = null; string cust1Name = ""; if (individualData[12] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[12] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 2) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Date = evnt.Date; cust1Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } }); int storeInt = int.Parse(individualData[9]); individualData[9] = Comparison(newCust2Date, cust1Date).ToString(); if (int.Parse(individualData[9]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust1Name); individualData[9] = storeInt.ToString(); _clickedEvent = null; return; } newRelDate = AddBusinessDays(newCust2Date, int.Parse(individualData[14])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[16] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[17] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 3) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Date = evnt.Date; cust1Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[9]); individualData[9] = Comparison(newCust2Date, cust1Date).ToString(); if (int.Parse(individualData[9]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust1Name); individualData[9] = storeInt.ToString(); _clickedEvent = null; return; } cust3Date = AddBusinessDays(newCust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust3Date, int.Parse(individualData[19])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[21] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[22] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust3Event.Date = cust3Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust3Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 4) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Date = evnt.Date; cust1Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[9]); individualData[9] = Comparison(newCust2Date, cust1Date).ToString(); if (int.Parse(individualData[9]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust1Name); individualData[9] = storeInt.ToString(); _clickedEvent = null; return; } cust3Date = AddBusinessDays(newCust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust4Date, int.Parse(individualData[24])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[26] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[27] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 5) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Date = evnt.Date; cust1Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[9]); individualData[9] = Comparison(newCust2Date, cust1Date).ToString(); if (int.Parse(individualData[9]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust1Name); individualData[9] = storeInt.ToString(); _clickedEvent = null; return; } cust3Date = AddBusinessDays(newCust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust5Date, int.Parse(individualData[29])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[31] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[32] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 2) { cust1Date = evnt.Date; cust1Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Event = evnt; cust3Date = evnt.Date; originalCust3Event = evnt; drawOldCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust3Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 7) { cust6Event = evnt; cust6Date = evnt.Date; originalCust6Event = evnt; drawOldCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[9]); individualData[9] = Comparison(newCust2Date, cust1Date).ToString(); if (int.Parse(individualData[9]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust1Name); individualData[9] = storeInt.ToString(); _clickedEvent = null; return; } cust3Date = AddBusinessDays(newCust2Date, int.Parse(individualData[14])); individualData[17] = cust3Date.ToString("d", CultureInfo.InvariantCulture); cust4Date = AddBusinessDays(cust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); cust6Date = AddBusinessDays(cust5Date, int.Parse(individualData[29])); individualData[32] = cust6Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust3Event.Date = cust3Date; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; drawCust6Event.Date = cust6Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust3Event); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); NetGlobals.customEvents.Remove(cust6Event); IEvent newCust3Event = cust3Event; newCust3Event.Date = cust3Date; NetGlobals.customEvents.Add(newCust3Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newCust6Event = cust6Event; newCust6Event.Date = cust6Date; NetGlobals.customEvents.Add(newCust6Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } else if (_clickedEvent.Event.Order == 4) { DateTime newCust3Date = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust2Date = DateTime.Now; DateTime cust4Date = DateTime.Now; DateTime cust5Date = DateTime.Now; DateTime cust6Date = DateTime.Now; IEvent cust4Event = null; IEvent cust5Event = null; IEvent cust6Event = null; IEvent relEvent = null; string cust2Name = ""; if (individualData[17] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[17] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 3) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Date = evnt.Date; cust2Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } }); int storeInt = int.Parse(individualData[14]); individualData[14] = Comparison(newCust3Date, cust2Date).ToString(); if (int.Parse(individualData[14]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust2Name); individualData[14] = storeInt.ToString(); _clickedEvent = null; return; } newRelDate = AddBusinessDays(newCust3Date, int.Parse(individualData[19])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += Comparison(newRelDate, relDate); individualData[21] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[22] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 4) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Date = evnt.Date; cust2Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[14]); individualData[14] = Comparison(newCust3Date, cust2Date).ToString(); if (int.Parse(individualData[14]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust2Name); individualData[14] = storeInt.ToString(); _clickedEvent = null; return; } cust4Date = AddBusinessDays(newCust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust4Date, int.Parse(individualData[24])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[26] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[27] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust4Event.Date = cust4Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust4Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 5) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Date = evnt.Date; cust2Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[14]); individualData[14] = Comparison(newCust3Date, cust2Date).ToString(); if (int.Parse(individualData[14]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust2Name); individualData[14] = storeInt.ToString(); _clickedEvent = null; return; } cust4Date = AddBusinessDays(newCust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust5Date, int.Parse(individualData[29])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[31] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[32] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } else if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 3) { cust2Date = evnt.Date; cust2Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Event = evnt; cust4Date = evnt.Date; originalCust4Event = evnt; drawOldCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust4Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 7) { cust6Event = evnt; cust6Date = evnt.Date; originalCust6Event = evnt; drawOldCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[14]); individualData[14] = Comparison(newCust3Date, cust2Date).ToString(); if (int.Parse(individualData[14]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust2Name); individualData[14] = storeInt.ToString(); _clickedEvent = null; return; } cust4Date = AddBusinessDays(newCust3Date, int.Parse(individualData[19])); individualData[22] = cust4Date.ToString("d", CultureInfo.InvariantCulture); cust5Date = AddBusinessDays(cust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); cust6Date = AddBusinessDays(cust5Date, int.Parse(individualData[29])); individualData[32] = cust6Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust4Event.Date = cust4Date; drawCust5Event.Date = cust5Date; drawCust6Event.Date = cust6Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust4Event); NetGlobals.customEvents.Remove(cust5Event); NetGlobals.customEvents.Remove(cust6Event); IEvent newCust4Event = cust4Event; newCust4Event.Date = cust4Date; NetGlobals.customEvents.Add(newCust4Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newCust6Event = cust6Event; newCust6Event.Date = cust6Date; NetGlobals.customEvents.Add(newCust6Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } else if (_clickedEvent.Event.Order == 5) { DateTime newCust4Date = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust3Date = DateTime.Now; DateTime cust5Date = DateTime.Now; DateTime cust6Date = DateTime.Now; IEvent cust5Event = null; IEvent cust6Event = null; IEvent relEvent = null; string cust3Name = ""; if (individualData[22] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[22] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 4) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Date = evnt.Date; cust3Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } }); int storeInt = int.Parse(individualData[19]); individualData[19] = Comparison(newCust4Date, cust3Date).ToString(); if (int.Parse(individualData[19]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust3Name); individualData[19] = storeInt.ToString(); _clickedEvent = null; return; } newRelDate = AddBusinessDays(newCust4Date, int.Parse(individualData[24])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[26] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[27] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } if (_clickedEvent.Event.NumberOfEvents == 5) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Date = evnt.Date; cust3Name = evnt.Name; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[19]); individualData[19] = Comparison(newCust4Date, cust3Date).ToString(); if (int.Parse(individualData[19]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust3Name); individualData[19] = storeInt.ToString(); _clickedEvent = null; return; } cust5Date = AddBusinessDays(newCust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust5Date, int.Parse(individualData[29])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[31] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[32] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust5Event.Date = cust5Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust5Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 4) { cust3Date = evnt.Date; cust3Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Event = evnt; cust5Date = evnt.Date; originalCust5Event = evnt; drawOldCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust5Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 7) { cust6Event = evnt; cust6Date = evnt.Date; originalCust6Event = evnt; drawOldCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[19]); individualData[19] = Comparison(newCust4Date, cust3Date).ToString(); if (int.Parse(individualData[19]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust3Name); individualData[19] = storeInt.ToString(); _clickedEvent = null; return; } cust5Date = AddBusinessDays(newCust4Date, int.Parse(individualData[24])); individualData[27] = cust5Date.ToString("d", CultureInfo.InvariantCulture); cust6Date = AddBusinessDays(cust5Date, int.Parse(individualData[29])); individualData[32] = cust6Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust5Event.Date = cust5Date; drawCust6Event.Date = cust6Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust5Event); NetGlobals.customEvents.Remove(cust6Event); IEvent newCust5Event = cust5Event; newCust5Event.Date = cust5Date; NetGlobals.customEvents.Add(newCust5Event); IEvent newCust6Event = cust6Event; newCust6Event.Date = cust6Date; NetGlobals.customEvents.Add(newCust6Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } else if (_clickedEvent.Event.Order == 6) { DateTime newCust5Date = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust4Date = DateTime.Now; DateTime cust6Date = DateTime.Now; IEvent cust6Event = null; IEvent relEvent = null; string cust4Name = ""; if (individualData[27] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[27] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 5) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Date = evnt.Date; cust4Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } }); int storeInt = int.Parse(individualData[24]); individualData[24] = Comparison(newCust5Date, cust4Date).ToString(); if (int.Parse(individualData[24]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust4Name); individualData[24] = storeInt.ToString(); _clickedEvent = null; return; } newRelDate = AddBusinessDays(newCust5Date, int.Parse(individualData[29])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[31] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[32] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 5) { cust4Date = evnt.Date; cust4Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } else if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 7) { cust6Event = evnt; cust6Date = evnt.Date; originalCust6Event = evnt; drawOldCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; drawCust6Event = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents }; } }); int storeInt = int.Parse(individualData[24]); individualData[24] = Comparison(newCust5Date, cust4Date).ToString(); if (int.Parse(individualData[24]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust4Name); individualData[24] = storeInt.ToString(); _clickedEvent = null; return; } cust6Date = AddBusinessDays(newCust5Date, int.Parse(individualData[29])); individualData[32] = cust6Date.ToString("d", CultureInfo.InvariantCulture); newRelDate = AddBusinessDays(cust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; drawCust6Event.Date = cust6Date; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); NetGlobals.customEvents.Remove(cust6Event); IEvent newCust6Event = cust6Event; newCust6Event.Date = cust6Date; NetGlobals.customEvents.Add(newCust6Event); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } else if (_clickedEvent.Event.Order == 7) { DateTime newCust6Date = newEvent.Date; DateTime newRelDate = DateTime.Now; DateTime relDate = DateTime.Now; DateTime cust5Date = DateTime.Now; IEvent relEvent = null; string cust5Name = ""; if (individualData[32] == newEvent.Date.ToString("d", CultureInfo.InvariantCulture)) { invisEvent.Enabled = true; MessageBox.Show("Nothing has changed"); _clickedEvent = null; return; } individualData[32] = newEvent.Date.ToString("d", CultureInfo.InvariantCulture); if (_clickedEvent.Event.NumberOfEvents == 6) { NetGlobals.customEvents.ForEach(delegate(IEvent evnt) { if (evnt.Name == _clickedEvent.Event.Name && evnt.Order == 6) { cust5Date = evnt.Date; cust5Name = evnt.Name; } else if (evnt.EventText == _clickedEvent.Event.Name + " Release Date") { relEvent = evnt; relDate = evnt.Date; originalRel = evnt; drawOldRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = Color.Black, Enabled = false, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; drawRelEvent = new CustomEvent { Name = evnt.Name, EventText = evnt.EventText, IgnoreTimeComponent = true, Date = evnt.Date, EventColor = evnt.EventColor, Order = evnt.Order, NumberOfEvents = evnt.NumberOfEvents, }; } }); int storeInt = int.Parse(individualData[29]); individualData[29] = Comparison(newCust6Date, cust5Date).ToString(); if (int.Parse(individualData[29]) < 0) { invisEvent.Enabled = true; MessageBox.Show("This event cannot be before " + cust5Name); individualData[29] = storeInt.ToString(); _clickedEvent = null; return; } newRelDate = AddBusinessDays(newCust6Date, int.Parse(individualData[34])); while (newRelDate.DayOfWeek != DayOfWeek.Tuesday && newRelDate.DayOfWeek != DayOfWeek.Wednesday && newRelDate.DayOfWeek != DayOfWeek.Thursday) { newRelDate = AddBusinessDays(newRelDate, 1); } currentDaysLost = Comparison(newRelDate, relDate); daysLost += currentDaysLost; individualData[36] = newRelDate.ToString("d", CultureInfo.InvariantCulture); individualData[37] = daysLost.ToString(); drawNewEvent = newEvent; drawRelEvent.Date = newRelDate; if (Checker(oldReleaseDate, Comparison(newRelDate, relDate), _clickedEvent.Event)) { commit = true; NetGlobals.customEvents.Add(newEvent); NetGlobals.customEvents.Remove(_clickedEvent.Event); NetGlobals.customEvents.Remove(relEvent); IEvent newRelEvent = relEvent; newRelEvent.Date = newRelDate; NetGlobals.customEvents.Add(newRelEvent); NetGlobals.tempEvents.Clear(); NetGlobals.tempEvents.AddRange(NetGlobals.customEvents); saveTemp(); Refresh(); } } } } } } }
private void RenderMonthCalendar(PaintEventArgs e) { _calendarDays.Clear(); _calendarEvents.Clear(); var bmp = new Bitmap(ClientSize.Width, ClientSize.Height); Graphics g = Graphics.FromImage(bmp); e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; SizeF sunSize = g.MeasureString("Вс", _dayOfWeekFont); SizeF monSize = g.MeasureString("Пн", _dayOfWeekFont); SizeF tueSize = g.MeasureString("Вт", _dayOfWeekFont); SizeF wedSize = g.MeasureString("Ср", _dayOfWeekFont); SizeF thuSize = g.MeasureString("Чт", _dayOfWeekFont); SizeF friSize = g.MeasureString("Пт", _dayOfWeekFont); SizeF satSize = g.MeasureString("Сб", _dayOfWeekFont); SizeF dateHeaderSize = g.MeasureString( _calendarDate.ToString("MMMM") + " " + _calendarDate.Year.ToString(CultureInfo.InvariantCulture), _dateHeaderFont); int headerSpacing = Max(sunSize.Height, monSize.Height, tueSize.Height, wedSize.Height, thuSize.Height, friSize.Height, satSize.Height) + 5; int controlsSpacing = ((!_showTodayButton) && (!_showDateInHeader) && (!_showArrowControls)) ? 0 : 30; int cellWidth = (ClientSize.Width - MarginSize * 2) / 7; int numWeeks = NumberOfWeeks(_calendarDate.Year, _calendarDate.Month); int cellHeight = (ClientSize.Height - MarginSize * 2 - headerSpacing - controlsSpacing) / numWeeks; int xStart = MarginSize; int yStart = MarginSize; DayOfWeek startWeekEnum = new DateTime(_calendarDate.Year, _calendarDate.Month, 1).DayOfWeek; int startWeek = ((int)startWeekEnum) + 1; int rogueDays = startWeek - 1; yStart += headerSpacing + controlsSpacing; int counter = 1; int counter2 = 1; bool first = false; bool first2 = false; _btnToday.Location = new Point(MarginSize, MarginSize); for (int y = 0; y < numWeeks; y++) { for (int x = 0; x < 7; x++) { if (rogueDays == 0 && counter <= DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month)) { if (!_calendarDays.ContainsKey(counter)) { _calendarDays.Add(counter, new Point(xStart, (int)(yStart + 2f + g.MeasureString(counter.ToString(CultureInfo.InvariantCulture), _daysFont).Height))); } if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month && counter == DateTime.Now.Day && _highlightCurrentDay) { g.FillRectangle(new SolidBrush(Color.FromArgb(234, 234, 234)), xStart, yStart, cellWidth, cellHeight); } if (first == false) { first = true; if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month && counter == DateTime.Now.Day) { g.DrawString( _calendarDate.ToString("MMM") + " " + counter.ToString(CultureInfo.InvariantCulture), _todayFont, Brushes.Black, xStart + 5, yStart + 2); } else { g.DrawString( _calendarDate.ToString("MMM") + " " + counter.ToString(CultureInfo.InvariantCulture), _daysFont, Brushes.Black, xStart + 5, yStart + 2); } } else { if (_calendarDate.Year == DateTime.Now.Year && _calendarDate.Month == DateTime.Now.Month && counter == DateTime.Now.Day) { g.DrawString(counter.ToString(CultureInfo.InvariantCulture), _todayFont, Brushes.Black, xStart + 5, yStart + 2); } else { g.DrawString(counter.ToString(CultureInfo.InvariantCulture), _daysFont, Brushes.Black, xStart + 5, yStart + 2); } } counter++; } else if (rogueDays > 0) { int dm = DateTime.DaysInMonth(_calendarDate.AddMonths(-1).Year, _calendarDate.AddMonths(-1).Month) - rogueDays + 1; g.DrawString(dm.ToString(CultureInfo.InvariantCulture), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2); rogueDays--; } g.DrawRectangle(Pens.DarkGray, xStart, yStart, cellWidth, cellHeight); if (rogueDays == 0 && counter > DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month)) { if (first2 == false) { first2 = true; } else { if (counter2 == 1) { g.DrawString(_calendarDate.AddMonths(1).ToString("MMM") + " " + counter2.ToString(CultureInfo.InvariantCulture), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2); } else { g.DrawString(counter2.ToString(CultureInfo.InvariantCulture), _daysFont, new SolidBrush(Color.FromArgb(170, 170, 170)), xStart + 5, yStart + 2); } counter2++; } } xStart += cellWidth; } xStart = MarginSize; yStart += cellHeight; } xStart = MarginSize + ((cellWidth - (int)sunSize.Width) / 2); yStart = MarginSize + controlsSpacing; g.DrawString("Вс", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)monSize.Width) / 2) + cellWidth; g.DrawString("Пн", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)tueSize.Width) / 2) + cellWidth * 2; g.DrawString("Вт", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)wedSize.Width) / 2) + cellWidth * 3; g.DrawString("Ср", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)thuSize.Width) / 2) + cellWidth * 4; g.DrawString("Чт", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)friSize.Width) / 2) + cellWidth * 5; g.DrawString("Пт", _dayOfWeekFont, Brushes.Black, xStart, yStart); xStart = MarginSize + ((cellWidth - (int)satSize.Width) / 2) + cellWidth * 6; g.DrawString("Сб", _dayOfWeekFont, Brushes.Black, xStart, yStart); if (_showDateInHeader) { g.DrawString( _calendarDate.ToString("MMMM") + " " + _calendarDate.Year.ToString(CultureInfo.InvariantCulture), _dateHeaderFont, Brushes.Black, ClientSize.Width - MarginSize - dateHeaderSize.Width, MarginSize); } _events.Sort(new EventComparer()); for (int i = 1; i <= DateTime.DaysInMonth(_calendarDate.Year, _calendarDate.Month); i++) { int renderOffsetY = 0; foreach (IEvent v in _events) { var dt = new DateTime(_calendarDate.Year, _calendarDate.Month, i, 23, 59, _calendarDate.Second); if (NeedsRendering(v, dt)) { int alpha = 255; if (!v.Enabled && _dimDisabledEvents) { alpha = 64; } Color alphaColor = Color.FromArgb(alpha, v.EventColor.R, v.EventColor.G, v.EventColor.B); int offsetY = renderOffsetY; Region r = g.Clip; Point point = _calendarDays[i]; SizeF sz = g.MeasureString(v.EventText, v.EventFont); int yy = point.Y - 1; int xx = ((cellWidth - (int)sz.Width) / 2) + point.X; if (sz.Width > cellWidth) { xx = point.X; } if (renderOffsetY + sz.Height > cellHeight - 10) { continue; } g.Clip = new Region(new Rectangle(point.X + 1, point.Y + offsetY, cellWidth - 1, (int)sz.Height)); g.FillRectangle(new SolidBrush(alphaColor), point.X + 1, point.Y + offsetY, cellWidth - 1, sz.Height); if (!v.Enabled && _showDashedBorderOnDisabledEvents) { var p = new Pen(new SolidBrush(Color.FromArgb(255, 0, 0, 0))) { DashStyle = DashStyle.Dash }; g.DrawRectangle(p, point.X + 1, point.Y + offsetY, cellWidth - 2, sz.Height - 1); } g.DrawString(v.EventText, v.EventFont, new SolidBrush(v.EventTextColor), xx, yy + offsetY); g.Clip = r; var ev = new CalendarEvent { EventArea = new Rectangle(point.X + 1, point.Y + offsetY, cellWidth - 1, (int)sz.Height), Event = v, Date = dt }; _calendarEvents.Add(ev); renderOffsetY += (int)sz.Height + 1; } } } _rectangles.Clear(); g.Dispose(); e.Graphics.DrawImage(bmp, 0, 0, ClientSize.Width, ClientSize.Height); bmp.Dispose(); }
internal Bitmap RequestImage() { const int cellHourWidth = 60; const int cellHourHeight = 30; var bmp = new Bitmap(ClientSize.Width, cellHourWidth * 24); Graphics g = Graphics.FromImage(bmp); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; var dt = new DateTime(_calendarDate.Year, _calendarDate.Month, _calendarDate.Day, 0, 0, 0); int xStart = 0; int yStart = 0; g.DrawRectangle(Pens.Black, 0, 0, ClientSize.Width - MarginSize * 2 - 2, cellHourHeight * 24); for (int i = 0; i < 24; i++) { var textWidth = (int)g.MeasureString(dt.ToString("htt").ToLower(), _dayViewTimeFont).Width; g.DrawRectangle(Pens.Black, xStart, yStart, cellHourWidth, cellHourHeight); g.DrawLine(Pens.Black, xStart + cellHourWidth, yStart + cellHourHeight, ClientSize.Width - MarginSize * 2 - 3, yStart + cellHourHeight); g.DrawLine(Pens.DarkGray, xStart + cellHourWidth, yStart + cellHourHeight / 2, ClientSize.Width - MarginSize * 2 - 3, yStart + cellHourHeight / 2); g.DrawString(dt.ToString("htt").ToLower(), _dayViewTimeFont, Brushes.Black, xStart + cellHourWidth - textWidth, yStart); yStart += cellHourHeight; dt = dt.AddHours(1); } dt = new DateTime(_calendarDate.Year, _calendarDate.Month, _calendarDate.Day, 23, 59, 0); List <IEvent> evnts = _events.Where(evnt => NeedsRendering(evnt, dt)).ToList().OrderBy(d => d.Date).ToList(); xStart = cellHourWidth + 1; yStart = 0; g.Clip = new Region(new Rectangle(0, 0, ClientSize.Width - MarginSize * 2 - 2, cellHourHeight * 24)); _calendarEvents.Clear(); for (int i = 0; i < 24; i++) { dt = new DateTime(_calendarDate.Year, _calendarDate.Month, _calendarDate.Day, 0, 0, 0); dt = dt.AddHours(i); foreach (var evnt in evnts) { TimeSpan ts = TimeSpan.FromHours(evnt.EventLengthInHours); if (evnt.Date.Ticks >= dt.Ticks && evnt.Date.Ticks < dt.Add(ts).Ticks&& evnt.EventLengthInHours > 0 && i >= evnt.Date.Hour) { int divisor = evnt.Date.Minute == 0 ? 1 : 60 / evnt.Date.Minute; Color clr = Color.FromArgb(175, evnt.EventColor.R, evnt.EventColor.G, evnt.EventColor.B); g.FillRectangle(new SolidBrush(GetFinalBackColor()), xStart, yStart + cellHourHeight / divisor + 1, ClientSize.Width - MarginSize * 2 - cellHourWidth - 3, cellHourHeight * ts.Hours - 1); g.FillRectangle(new SolidBrush(clr), xStart, yStart + cellHourHeight / divisor + 1, ClientSize.Width - MarginSize * 2 - cellHourWidth - 3, cellHourHeight * ts.Hours - 1); g.DrawString(evnt.EventText, evnt.EventFont, new SolidBrush(evnt.EventTextColor), xStart, yStart + cellHourHeight / divisor); var ce = new CalendarEvent { Event = evnt, Date = dt, EventArea = new Rectangle(xStart, yStart + cellHourHeight / divisor + 1, ClientSize.Width - MarginSize * 2 - cellHourWidth - 3, cellHourHeight * ts.Hours) }; _calendarEvents.Add(ce); } } yStart += cellHourHeight; } g.Dispose(); return(bmp); }