private SelectedZmanColumns GetSelectedColumns() { SelectedZmanColumns columns = new SelectedZmanColumns(); foreach (DataGridViewRow dgvr in this.dataGridView1.Rows) { if (!dgvr.IsNewRow) { int offset, alternateOffset; int.TryParse(Convert.ToString(dgvr.Cells[2].Value), out offset); int.TryParse(Convert.ToString(dgvr.Cells[3].Value), out alternateOffset); var sr = new SingleZmanColumn { ZmanIndex = Array.IndexOf(Program.ZmanTypesList, Convert.ToString(dgvr.Cells[0].Value)), DaysOfWeek = dgvr.Cells[1].Tag == null ? new int[] { 0, 1, 2, 3, 4, 5, 6, 7 } : (int[])dgvr.Cells[1].Tag, Offset = offset, AlternateOffset = alternateOffset, Header = Convert.ToString(dgvr.Cells[4].Value), Bold = Convert.ToBoolean(dgvr.Cells[5].Value) }; columns.Add(sr); } } return(columns); }
private string GetHtml() { Location location = (Location)this.cmbLocations.SelectedItem; int month = this.GetSelectedMonth(); int year = this.GetSelectedYear(); StringBuilder sbHeaderCells = new StringBuilder(); StringBuilder sbRows = new StringBuilder(); bool showMonth = this.choiceSwitcherDateType.ChoiceOneSelected; JewishDate jd = showMonth ? new JewishDate(year, month, 1) : this.jdpFrom.Value; DailyZmanim dz = new DailyZmanim(jd.GregorianDate, location); string startSMonth = dz.SecularDate.ToString("MM yyyy"); SelectedZmanColumns columns = this.GetSelectedColumns(); bool showSeconds = this.choiceSeconds.ChoiceOneSelected; //Once "Generate" is clicked, we save the columns selected. Properties.Settings.Default.SelectedZmanColumns = columns; Properties.Settings.Default.ArmyTime = this.choiceArmy.ChoiceOneSelected; Properties.Settings.Default.AmPm = this.choiceAmPm.ChoiceOneSelected; Properties.Settings.Default.Width100 = (bool)this.choiceWidth100.SelectedValue; Properties.Settings.Default.DirectionRight = (bool)this.choiceDirection.SelectedValue; Properties.Settings.Default.DateChooseMonth = this.choiceSwitcherDateType.ChoiceOneSelected; Properties.Settings.Default.ShowSeconds = this.choiceSeconds.ChoiceOneSelected; Properties.Settings.Default.ShowDayDetails = this.choiceDayDetails.ChoiceOneSelected; this.SaveDayOfWeek(); var columnsSorted = from c in columns orderby c.ZmanIndex, c.Offset select c; foreach (var zmanColumn in columnsSorted) { sbHeaderCells.AppendFormat("<th>{0}</th>", zmanColumn.Header); } while (true) { sbRows.AppendFormat("<tr{0}>", (jd.DayOfWeek == DayOfWeek.Saturday || SpecialDay.IsMajorYomTov(jd, location) ? " class='special'" : SpecialDay.IsMinorYomTovOrFast(jd, location) ? " class='special2'" : "")); if (Properties.Settings.Default.DOWFormat != DayOfWeekFormat.None) { sbRows.AppendFormat("<td class=\"dow {0}\">{1}</td>", this.rbDOWEnglish.Checked ? "left" : "right", this.GetDayOfWeekString(jd, location)); } sbRows.AppendFormat( "<td style=\"direction:rtl;\">{0}</td><td>{1}</td>", Utils.ToNumberHeb(jd.Day), dz.SecularDate.Day); foreach (var zmanColumn in columnsSorted) { string zmanTime = null; TimeOfDay zman = TimeOfDay.NoValue; if (zmanColumn.ZmanIndex == 17) { zmanTime = DafYomi.GetDafYomi(jd).ToStringHeb(); } else if (zmanColumn.DaysOfWeek == null /* All days */ || zmanColumn.DaysOfWeek.Contains(jd.DayInWeek) || zmanColumn.AlternateOffset != 0) { zman = zmanColumn.GetZman(dz); //For netz, if we are not showing seconds, we show the end of the minute if (!showSeconds && zmanColumn.ZmanIndex.In(2, 3) && zman.Seconds > 0) { zman += 1; } zmanTime = zman.ToString( Properties.Settings.Default.ArmyTime, Properties.Settings.Default.AmPm); } if (!string.IsNullOrEmpty(zmanTime)) { if (zmanColumn.Bold) { zmanTime = "<strong>" + zmanTime + "</strong>"; } if (zman != TimeOfDay.NoValue && Properties.Settings.Default.ShowSeconds) { zmanTime += "<sub>:" + (zman.Seconds < 10 ? "0" : "") + zman.Seconds.ToString() + "</sub>"; } } sbRows.AppendFormat("<td>{0}</td>", zmanTime); } jd = jd + 1; if (showMonth ? jd.Month == month : jd <= this.jdpTo.Value) { dz.SecularDate = jd.GregorianDate; } else { sbRows.Append("</tr>"); break; } } string endSMonth = dz.SecularDate.ToString("MM yyyy"); string monthHeader = showMonth ? Utils.JewishMonthNamesHebrew[month] + " " + Utils.ToNumberHeb(year % 1000) : this.getFromToHeaderText(); int inBuiltColsCount = Properties.Settings.Default.DOWFormat == DayOfWeekFormat.None ? 2 : 3; return(Properties.Resources.template .Replace("#--DIRECTION--#", (Properties.Settings.Default.DirectionRight ? "direction:rtl;" : "")) .Replace("#--TOTAL_CELLS--#", (columns.Count + inBuiltColsCount).ToString()) .Replace("#--LOCATION--#", location.NameHebrew) .Replace("#--TABLE_WIDTH--#", Properties.Settings.Default.Width100 ? "width: 100%;" : "") .Replace("#--MONTH--#", "<strong>" + monthHeader + "</strong> (" + startSMonth + (startSMonth != endSMonth ? " - " + endSMonth : "") + ")") .Replace("#--HEADER_CELLS--#", sbHeaderCells.ToString()) .Replace("#--LOCATION_COL_SPAN--#", inBuiltColsCount.ToString()) .Replace("#--VALUE_ROWS--#", sbRows.ToString())); }