Пример #1
0
        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);
        }
Пример #2
0
        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()));
        }