Beispiel #1
0
        /// <summary>
        /// 取卡密期限
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="softId">软件ID</param>
        /// <param name="startDate">开始时间</param>
        /// <param name="endDate">结束时间</param>
        public static void getCardTimeLimit
        (
            string username,
            string password,
            string softId,
            out string startDate,
            out string endDate
        )
        {
            Dictionary <string, string> data = new Dictionary <string, string>();

            data.Add("username", username);
            data.Add("password", password);
            data.Add("softId", softId);

            string api = VerifyApiLaunch.site + "/card/getCardTimeLimit";

            string response = OrangeRequest.Post(api).AddData(data).LaunchToString();

            JObject resultJson = (JObject)JsonConvert.DeserializeObject(response);

            int code = (int)resultJson["code"];

            if (code == 9)
            {
                startDate = DateOperation.GetDateTime((long)resultJson["data"]["startDate"]);
                endDate   = DateOperation.GetDateTime((long)resultJson["data"]["endDate"]);
            }
            else
            {
                throw (new Exception((string)resultJson["msg"]));
            }
        }
Beispiel #2
0
 public OutputEntity(string timestamp, DateTime date, string timeParams, DateOperation operation, string result)
 {
     this.Timestamp  = timestamp;
     this.Date       = date;
     this.TimeParams = timeParams;
     this.Operation  = operation;
     this.Result     = result;
 }
Beispiel #3
0
 public InputModel(DateTime date, int paramDays, int paramWeeks, int paramMonths, int paramYears, DateOperation operation)
 {
     this.Date        = date;
     this.ParamDays   = paramDays;
     this.ParamWeeks  = paramWeeks;
     this.ParamMonths = paramMonths;
     this.ParamYears  = paramYears;
     this.Operation   = operation;
 }
Beispiel #4
0
        /// <summary>
        ///		Obtiene los valores de un incremento para una fecha
        /// </summary>
        private (int increment, DateOperation type) GetDateIncrement(string value)
        {
            DateOperation type = DateOperation.Day;

            // Obtiene el tipo de incremento
            value = value.ToUpper();
            if (value.EndsWith("W"))
            {
                type = DateOperation.Week;
            }
            else if (value.EndsWith("M"))
            {
                type = DateOperation.Month;
            }
            else if (value.EndsWith("Y"))
            {
                type = DateOperation.Year;
            }
            else if (value.EndsWith("H"))
            {
                type = DateOperation.Hour;
            }
            else if (value.EndsWith("N"))
            {
                type = DateOperation.Minutes;
            }
            else if (value.EndsWith("S"))
            {
                type = DateOperation.Seconds;
            }
            // Quita el tipo de incremento
            if (value.EndsWith("D") || value.EndsWith("W") || value.EndsWith("M") || value.EndsWith("Y") || value.EndsWith("H") ||
                value.EndsWith("N") || value.EndsWith("S"))
            {
                if (value.Length > 1)
                {
                    value = value.Substring(0, value.Length - 1);
                }
                else
                {
                    value = "1";
                }
            }
            // Obtiene el incremento
            if (value.GetInt() == null)
            {
                throw new NotImplementedException("The increment has no value");
            }
            else
            {
                return(value.GetInt(0), type);
            }
        }
        public InputEntity ReadSingleInput()
        {
            System.Console.WriteLine("Enter Date in format " + _DatePattern);
            string   dateStr = Console.ReadLine();
            DateTime date    = DateTime.ParseExact(dateStr, _DatePattern, CultureInfo.InvariantCulture);

            System.Console.WriteLine("Choose Operation : ");
            System.Console.WriteLine("1. Add \n2. Subtract\n3. Determine day of week\n4. Determine week number");
            int    ch;
            string param = "0 0 0 0";

            if (Int32.TryParse(Console.ReadLine(), out ch))
            {
                DateOperation operation = ch == 1 ? DateOperation.ADD : DateOperation.SUBTRACT;
                switch (ch)
                {
                case 1:
                //fall through to subtract
                case 2:
                    System.Console.WriteLine("Enter days, weeks, months, years to " + (ch == 1 ? "Add" : "Subtract")
                                             + " in the Format : (days weeks months year)");
                    param = Console.ReadLine();
                    break;

                case 3:
                    operation = DateOperation.DAY_OF_WEEK;
                    break;

                case 4:
                    operation = DateOperation.WEEK_OF_YEAR;
                    break;

                default:
                    System.Console.WriteLine("Invalid choice. Exiting from Input Reader");
                    return(null);
                }
                return(new InputEntity(date, param, operation));
            }
            else
            {
                System.Console.WriteLine("Invalid choice. Exiting from Input Reader");
                return(null);
            }
        }
Beispiel #6
0
        /// <summary>
        ///		Calcula una operación sobre una fecha
        /// </summary>
        private DateTime ComputeDate(DateTime date, bool sum, int interval, DateOperation operation)
        {
            DateTime result = date;

            // Cambia el signo de la operación
            if (!sum)
            {
                interval = -1 * interval;
            }
            // Añade el intervalo a la fecha
            switch (operation)
            {
            case DateOperation.Day:
                result = result.AddDays(interval);
                break;

            case DateOperation.Week:
                result = result.AddDays(7 * interval);
                break;

            case DateOperation.Month:
                result = result.AddMonths(interval);
                break;

            case DateOperation.Year:
                result = result.AddYears(interval);
                break;

            case DateOperation.Hour:
                result = result.AddHours(interval);
                break;

            case DateOperation.Minutes:
                result = result.AddMinutes(interval);
                break;

            case DateOperation.Seconds:
                result = result.AddSeconds(interval);
                break;
            }
            // Devuelve la fecha final
            return(result);
        }
Beispiel #7
0
 public InputEntity(DateTime date, string timeParams, DateOperation operation)
 {
     this.Date       = date;
     this.TimeParams = timeParams;
     this.Operation  = operation;
 }
Beispiel #8
0
        /// <summary>
        /// Gets the design time HTML code.
        /// </summary>
        /// <returns>A string containing the HTML to render.</returns>
        public override string GetDesignTimeHtml()
        {
            Calendar calendar = (Calendar)base.Component;

            StringWriter   stringWriter = new StringWriter();
            HtmlTextWriter output       = new HtmlTextWriter(stringWriter);

            if (calendar.UseSelectors == false)
            {
                int index, index2, day = 1, dayMax = calendar.GetDays(calendar.VisibleDate.Year, calendar.VisibleDate.Month),
                    dayNext = 1, dayWeek = (int)(new DateTime(calendar.VisibleDate.Year, calendar.VisibleDate.Month, 1).DayOfWeek), showMonth = 1, showDay = 1, showYear = 1;
                string showColor       = string.Empty;
                string pickupDateValue = string.Empty;

                string      left       = string.Empty;
                string      top        = string.Empty;
                string      position   = string.Empty;
                IEnumerator enumerator = calendar.Style.Keys.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    if ((string)enumerator.Current.ToString().ToUpper() == "LEFT")
                    {
                        left = calendar.Style[(string)enumerator.Current];
                    }
                    else if ((string)enumerator.Current.ToString().ToUpper() == "TOP")
                    {
                        top = calendar.Style[(string)enumerator.Current];
                    }
                    else if ((string)enumerator.Current.ToString().ToUpper() == "POSITION")
                    {
                        position = calendar.Style[(string)enumerator.Current];
                    }
                }
                string positionDiv = string.Empty;
                if (calendar.UseDatePicker)
                {
                    positionDiv = "position: relative;";
                }
                else if (position != string.Empty)
                {
                    positionDiv = "position: absolute;";
                }

                output.Write(string.Format("<div style=\"left: {0};top: {1};{2}\">", left, top, positionDiv));

                if (calendar.UseDatePicker)
                {
                    // render pickup if necessary
                    output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                    output.RenderBeginTag(HtmlTextWriterTag.Table);                  // TABLE
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);                     // TR
                    output.RenderBeginTag(HtmlTextWriterTag.Td);                     // TD
                    if (calendar.ShowDateOnStart)
                    {
                        if (calendar.SelectedDate != DateTime.MinValue)
                        {
                            if (calendar.UseCustomDateFormat)
                            {
                                pickupDateValue = DateOperation.FormatCustomDate(calendar.SelectedDate, calendar.CustomDateFormat, calendar.Days, calendar.Months);
                            }
                            else
                            {
                                pickupDateValue = DateOperation.FormatedDate(calendar.SelectedDate, calendar.DateFormatLocale);
                            }
                        }
                    }
                    output.AddAttribute(HtmlTextWriterAttribute.Value, pickupDateValue);
                    calendar.PickerTextBoxStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                    output.RenderBeginTag(HtmlTextWriterTag.Input);
                    output.RenderEndTag();
                    output.RenderEndTag();                       // TD

                    output.RenderBeginTag(HtmlTextWriterTag.Td); // TD
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "absmiddle");
                    output.AddAttribute(HtmlTextWriterAttribute.Src, Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.IconPath, "picker.gif", calendar.Page, this.GetType()));
                    output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                    output.RenderBeginTag(HtmlTextWriterTag.Img); // open img
                    output.RenderEndTag();                        // close img
                    output.RenderEndTag();                        // TD
                    output.RenderEndTag();                        // TR
                    output.RenderEndTag();                        // TABLE
                    output.Write("</div>");

                    output.Write("<div style=\"visibility: visible; position: relative;\" id=\"{0}\">");
                }

                // Render the calendar
                output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, calendar.CellPadding.ToString());
                output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, calendar.CellSpacing.ToString());
                output.AddStyleAttribute(HtmlTextWriterStyle.BorderColor, Utils.Color2Hex(calendar.BorderColor));
                output.AddStyleAttribute(HtmlTextWriterStyle.BorderStyle, calendar.BorderStyle.ToString());
                output.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, calendar.BorderWidth.ToString());
                output.RenderBeginTag(HtmlTextWriterTag.Table);

                // Render the header
                if (!calendar.ShowHeaderNavigation)
                {
                    output.AddStyleAttribute("visibility", "hidden");
                }
                output.RenderBeginTag(HtmlTextWriterTag.Tr);
                output.AddAttribute(HtmlTextWriterAttribute.Colspan, string.Format("{0}", calendar.ShowWeekNumber ? 8 : 7));
                output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                calendar.TitleStyle.AddAttributesToRender(output, calendar.ImagesDirectory);
                output.RenderBeginTag(HtmlTextWriterTag.Td);
                output.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
                output.RenderBeginTag(HtmlTextWriterTag.Table);
                output.RenderBeginTag(HtmlTextWriterTag.Tr);
                if (calendar.ShowNextPrevMonth)
                {
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "left");
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.RenderBeginTag(HtmlTextWriterTag.A);

                    if (calendar.PrevMonthImage.Trim() == string.Empty)
                    {
                        output.Write(calendar.PrevMonthText);
                    }
                    else
                    {
                        output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                        output.AddAttribute(HtmlTextWriterAttribute.Src, Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.PrevMonthImage));
                        output.RenderBeginTag(HtmlTextWriterTag.Img);
                        output.RenderEndTag();
                    }

                    output.RenderEndTag();
                    output.Write("&nbsp;");
                    output.RenderEndTag();
                }
                if (calendar.ShowNextPrevYear)
                {
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "left");
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.RenderBeginTag(HtmlTextWriterTag.A);

                    if (calendar.PrevYearImage.Trim() == string.Empty)
                    {
                        output.Write(calendar.PrevYearText);
                    }
                    else
                    {
                        output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                        output.AddAttribute(HtmlTextWriterAttribute.Src, Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.PrevYearImage));
                        output.RenderBeginTag(HtmlTextWriterTag.Img);
                        output.RenderEndTag();
                    }

                    output.RenderEndTag();
                    output.Write("&nbsp;");
                    output.RenderEndTag();
                }
                output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                output.AddAttribute(HtmlTextWriterAttribute.Nowrap, null);
                output.RenderBeginTag(HtmlTextWriterTag.Td);
                if (!calendar.ShowMonth && !calendar.ShowYear)
                {
                    if (calendar.UseDatePicker)
                    {
                        WriteSelector(output, "_month_selector", 1, 12, 2, calendar.VisibleDate.Month, calendar.SelectorStyle, calendar.Months, calendar.ShowMonth, true);
                        WriteSelector(output, "_year_selector", (calendar.SelectedDate.Year < calendar.MinDate.Year || calendar.VisibleDate.Year < calendar.MinDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year < calendar.MinDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MinDate.Year, (calendar.SelectedDate.Year > calendar.MaxDate.Year || calendar.VisibleDate.Year > calendar.MaxDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year > calendar.MaxDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MaxDate.Year, 4, calendar.VisibleDate.Year, calendar.SelectorStyle, calendar.Months, calendar.ShowYear, true);
                    }

                    else
                    {
                        WriteSelector(output, "_month_selector", 1, 12, 2, calendar.VisibleDate.Month, calendar.SelectorStyle, calendar.Months, calendar.ShowMonth);
                        WriteSelector(output, "_year_selector", (calendar.SelectedDate.Year < calendar.MinDate.Year || calendar.VisibleDate.Year < calendar.MinDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year < calendar.MinDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MinDate.Year, (calendar.SelectedDate.Year > calendar.MaxDate.Year || calendar.VisibleDate.Year > calendar.MaxDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year > calendar.MaxDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MaxDate.Year, 4, calendar.VisibleDate.Year, calendar.SelectorStyle, calendar.Months, calendar.ShowYear, true);
                    }
                }
                else
                {
                    if (calendar.UseDatePicker)
                    {
                        WriteSelector(output, "_month_selector", 1, 12, 2, calendar.VisibleDate.Month, calendar.SelectorStyle, calendar.Months, calendar.ShowMonth, true);
                        WriteSelector(output, "_year_selector", (calendar.SelectedDate.Year < calendar.MinDate.Year || calendar.VisibleDate.Year < calendar.MinDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year < calendar.MinDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MinDate.Year, (calendar.SelectedDate.Year > calendar.MaxDate.Year || calendar.VisibleDate.Year > calendar.MaxDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year > calendar.MaxDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MaxDate.Year, 4, calendar.VisibleDate.Year, calendar.SelectorStyle, calendar.Months, calendar.ShowYear, true);
                    }

                    else
                    {
                        WriteSelector(output, "_month_selector", 1, 12, 2, calendar.VisibleDate.Month, calendar.SelectorStyle, calendar.Months, calendar.ShowMonth, false);
                        WriteSelector(output, "_year_selector", (calendar.SelectedDate.Year < calendar.MinDate.Year || calendar.VisibleDate.Year < calendar.MinDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year < calendar.MinDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MinDate.Year, (calendar.SelectedDate.Year > calendar.MaxDate.Year || calendar.VisibleDate.Year > calendar.MaxDate.Year) && calendar.AutoAdjust ? (calendar.SelectedDate.Year > calendar.MaxDate.Year ? calendar.SelectedDate.Year : calendar.VisibleDate.Year) : calendar.MaxDate.Year, 4, calendar.VisibleDate.Year, calendar.SelectorStyle, calendar.Months, calendar.ShowYear, false);
                    }
                }

                output.RenderEndTag();
                if (calendar.ShowNextPrevYear)
                {
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "right");
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    output.Write("&nbsp;");
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.RenderBeginTag(HtmlTextWriterTag.A);

                    if (calendar.NextYearImage.Trim() == string.Empty)
                    {
                        output.Write(calendar.NextYearText);
                    }
                    else
                    {
                        output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                        output.AddAttribute(HtmlTextWriterAttribute.Src, Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.NextYearImage));
                        output.RenderBeginTag(HtmlTextWriterTag.Img);
                        output.RenderEndTag();
                    }

                    output.RenderEndTag();
                    output.RenderEndTag();
                }
                if (calendar.ShowNextPrevMonth)
                {
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "left");
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    output.Write("&nbsp;");
                    calendar.NextPrevStyle.AddAttributesToRender(output);
                    output.RenderBeginTag(HtmlTextWriterTag.A);
                    if (calendar.NextMonthImage.Trim() == string.Empty)
                    {
                        output.Write(calendar.NextMonthText);
                    }
                    else
                    {
                        output.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                        output.AddAttribute(HtmlTextWriterAttribute.Src, Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.NextMonthImage));
                        output.RenderBeginTag(HtmlTextWriterTag.Img);
                        output.RenderEndTag();
                    }
                    output.RenderEndTag();
                    output.RenderEndTag();
                }
                // tr
                output.RenderEndTag();
                // table
                output.RenderEndTag();
                // td
                output.RenderEndTag();

                // End of the header render
                output.RenderEndTag();

                // Render the days names
                if (calendar.ShowDayHeader)
                {
                    int firstDay = calendar.FirstDayOfWeek == System.Web.UI.WebControls.FirstDayOfWeek.Default ? 0 : (int)calendar.FirstDayOfWeek;
                    calendar.DayHeaderStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);

                    if (calendar.ShowWeekNumber)
                    {
                        calendar.DayHeaderStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                        output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                        output.AddAttribute(HtmlTextWriterAttribute.Width, string.Format("{0}%", 100 / 8));
                        output.RenderBeginTag(HtmlTextWriterTag.Td);
                        output.Write(calendar.WeekNumberText);
                        output.RenderEndTag();
                    }

                    for (index = 0; index < 7; index++)
                    {
                        calendar.DayHeaderStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                        output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                        output.AddAttribute(HtmlTextWriterAttribute.Width, string.Format("{0}%", calendar.ShowWeekNumber ? 100 / 8 : 100 / 7));
                        output.RenderBeginTag(HtmlTextWriterTag.Td);

                        string dayFormat = calendar.Days[index + firstDay < 7 ? index + firstDay : index + firstDay - 7];

                        switch (calendar.DayNameFormat)
                        {
                        case System.Web.UI.WebControls.DayNameFormat.Full:
                        {
                        } break;

                        case System.Web.UI.WebControls.DayNameFormat.FirstLetter:
                        {
                            dayFormat = dayFormat.Substring(0, 1);
                        } break;

                        case System.Web.UI.WebControls.DayNameFormat.FirstTwoLetters:
                        {
                            dayFormat = dayFormat.Substring(0, 2);
                        } break;

                        case System.Web.UI.WebControls.DayNameFormat.Short:
                        {
                            dayFormat = dayFormat.Substring(0, 3);
                        } break;

                        default: break;
                        }

                        output.Write(dayFormat);

                        output.RenderEndTag();
                    }
                    output.RenderEndTag();
                }

                // Render the days
                for (index = 0; index < 6; index++)
                {
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);

                    if (calendar.ShowWeekNumber)
                    {
                        int weekNumber         = 1;
                        int dayForWeekNumber   = 1;
                        int monthForWeekNumber = 1;
                        int yearForWeekNumber  = calendar.VisibleDate.Year;

                        // The day is in the previous month
                        if (index == 0)
                        {
                            dayForWeekNumber   = 7 - dayWeek;
                            monthForWeekNumber = calendar.VisibleDate.Month;
                        }

                        else if (showDay + 7 <= dayMax && calendar.VisibleDate.Month == showMonth)
                        {
                            dayForWeekNumber   = showDay + 7;
                            monthForWeekNumber = calendar.VisibleDate.Month;
                            yearForWeekNumber  = calendar.VisibleDate.Year;
                        }

                        else if (showDay + 7 > dayMax && calendar.VisibleDate.Month == showMonth)
                        {
                            dayForWeekNumber   = (showDay + 7) - dayMax;
                            monthForWeekNumber = calendar.VisibleDate.Month == 12 ? 1 : (calendar.VisibleDate.Month + 1);
                            yearForWeekNumber  = calendar.VisibleDate.Year;
                        }

                        else
                        {
                            dayForWeekNumber   = showDay + 7;
                            monthForWeekNumber = calendar.VisibleDate.Month == 12 ? 1 : monthForWeekNumber + 1;
                            yearForWeekNumber  = calendar.VisibleDate.Month == 12 ? yearForWeekNumber + 1 : yearForWeekNumber;
                        }

                        weekNumber = DateOperation.GetWeekNumber(new DateTime(yearForWeekNumber, monthForWeekNumber, dayForWeekNumber));

                        calendar.WeekNumberStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                        output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                        output.RenderBeginTag(HtmlTextWriterTag.Td);
                        output.Write(string.Format("{0}", weekNumber.ToString()));
                        output.RenderEndTag();
                    }


                    for (index2 = 0; index2 < 7; index2++)
                    {
                        // The day is in the Selected month
                        if (day <= dayMax && !(index == 0 && index2 < dayWeek))
                        {
                            if (index2 == DateOperation.GetDayPos(System.Web.UI.WebControls.FirstDayOfWeek.Saturday, calendar.FirstDayOfWeek) || index2 == DateOperation.GetDayPos(System.Web.UI.WebControls.FirstDayOfWeek.Sunday, calendar.FirstDayOfWeek))
                            {
                                calendar.WeekEndDayStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                                showColor = Utils.Color2Hex(calendar.WeekEndDayStyle.ForeColor);
                            }
                            else
                            {
                                calendar.DayStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                            }
                            showColor = Utils.Color2Hex(calendar.DayStyle.ForeColor);
                            showDay   = day;
                            showMonth = calendar.VisibleDate.Month;
                            showYear  = calendar.VisibleDate.Year;
                            day++;
                        }
                        // The day is in the previous month
                        else if (index == 0)
                        {
                            calendar.OtherMonthDayStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                            showColor = Utils.Color2Hex(calendar.OtherMonthDayStyle.ForeColor);
                            showDay   = (calendar.GetDays(calendar.VisibleDate.Month == 1 ? calendar.VisibleDate.Year - 1 : calendar.VisibleDate.Year, calendar.VisibleDate.Month == 1 ? 12 : calendar.VisibleDate.Month - 1) - (dayWeek - index2 - 1));
                            showMonth = calendar.VisibleDate.Month == 1 ? 12 : calendar.VisibleDate.Month - 1;
                            showYear  = calendar.VisibleDate.Month == 1 ? calendar.VisibleDate.Year - 1 : calendar.VisibleDate.Year;
                        }
                        // The day is in the next month
                        else if (index != 0)
                        {
                            calendar.OtherMonthDayStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                            showColor = Utils.Color2Hex(calendar.OtherMonthDayStyle.ForeColor);
                            showDay   = dayNext;
                            showMonth = calendar.VisibleDate.Month == 12 ? 1 : (calendar.VisibleDate.Month - 1 + 2);
                            dayNext++;
                            showYear = calendar.VisibleDate.Month == 12 ? calendar.VisibleDate.Year + 1 : calendar.VisibleDate.Year;
                        }

                        DateTime dateToRender = new DateTime(showYear, showMonth, showDay);

                        if (dateToRender >= calendar.MinDate && dateToRender <= calendar.MaxDate)
                        {
                            // check if this is a particular style
                            bool dateIsParticularStyle        = false;
                            DateStyleCollectionItem dateStyle = null;
                            foreach (DateStyleCollectionItem dateItem in calendar.StyleDates)
                            {
                                if (dateItem.Date == dateToRender)
                                {
                                    dateIsParticularStyle = true;
                                    dateStyle             = dateItem;
                                    break;
                                }
                            }

                            if (dateIsParticularStyle == true)
                            {
                                output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Utils.Color2Hex(dateStyle.BackColor));
                                if (dateStyle.BackgroundImage != string.Empty)
                                {
                                    output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundImage, "url(" + Utils.ConvertToImageDir(calendar.ImagesDirectory, dateStyle.BackgroundImage) + ")");
                                }
                                showColor = Utils.Color2Hex(dateStyle.ForeColor);
                            }

                            else
                            {
                                // check if this is a blocked date

                                bool dateIsBlocked = false;
                                foreach (DateCollectionItem dateItem in calendar.BlockedDates)
                                {
                                    if (dateItem.Date == dateToRender)
                                    {
                                        dateIsBlocked = true;
                                        break;
                                    }
                                }
                                if (dateIsBlocked == true)
                                {
                                    output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Utils.Color2Hex(calendar.BlockedDayStyle.BackColor));
                                    showColor = Utils.Color2Hex(calendar.BlockedDayStyle.ForeColor);
                                }

                                else
                                {
                                    bool dateIsSelected = false;
                                    if (calendar.MultiSelection == true)
                                    {
                                        foreach (DateCollectionItem dateItem in calendar.SelectedDates)
                                        {
                                            if (dateItem.Date == dateToRender)
                                            {
                                                dateIsSelected = true;
                                                output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Utils.Color2Hex(calendar.SelectedDayStyle.BackColor));
                                                if (calendar.SelectedDayStyle.BackgroundImage != string.Empty)
                                                {
                                                    output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundImage, "url(" + Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.SelectedDayStyle.BackgroundImage) + ")");
                                                }
                                                showColor = Utils.Color2Hex(calendar.SelectedDayStyle.ForeColor);
                                                break;
                                            }
                                        }
                                    }

                                    if (dateIsSelected == false)
                                    {
                                        // Check if this is the selected day or not
                                        if (calendar.SelectedDate.Day == showDay && showMonth == calendar.SelectedDate.Month)
                                        {
                                            output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Utils.Color2Hex(calendar.SelectedDayStyle.BackColor));
                                            if (calendar.SelectedDayStyle.BackgroundImage != string.Empty)
                                            {
                                                output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundImage, "url(" + Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.SelectedDayStyle.BackgroundImage) + ")");
                                            }
                                            showColor = Utils.Color2Hex(calendar.SelectedDayStyle.ForeColor);
                                        }

                                        // check if this is the today date or not
                                        else if (showMonth == calendar.VisibleDate.Month && showDay == DateTime.Now.Day && calendar.VisibleDate.Month == DateTime.Now.Month && calendar.VisibleDate.Year == DateTime.Now.Year)
                                        {
                                            output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Utils.Color2Hex(calendar.TodayDayStyle.BackColor));
                                            if (calendar.TodayDayStyle.BackgroundImage != string.Empty)
                                            {
                                                output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundImage, "url(" + Utils.ConvertToImageDir(calendar.ImagesDirectory, calendar.TodayDayStyle.BackgroundImage) + ")");
                                            }
                                            showColor = Utils.Color2Hex(calendar.TodayDayStyle.ForeColor);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            output.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, Utils.Color2Hex(calendar.BlockedDayStyle.BackColor));
                            showColor = Utils.Color2Hex(calendar.BlockedDayStyle.ForeColor);
                        }

                        output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                        output.RenderBeginTag(HtmlTextWriterTag.Td);
                        output.Write("<font color='" + showColor + "'>" + showDay.ToString() + "</font>");
                        output.RenderEndTag();
                    }

                    output.RenderEndTag();
                }

                if (calendar.UseTime)
                {
                    calendar.TimeStyle.AddAttributesToRender(output, calendar.ImagesDirectory);
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                    output.AddAttribute(HtmlTextWriterAttribute.Colspan, string.Format("{0}%", calendar.ShowWeekNumber ? 100 / 8 : 100 / 7));
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    WriteSelector(output, "_hour", 0, 23, 2, calendar.SelectedDate.Hour, calendar.SelectorStyle, calendar.Months, true);
                    WriteSelector(output, "_minute", 0, 59, 2, calendar.SelectedDate.Minute, calendar.SelectorStyle, calendar.Months, true);
                    output.RenderEndTag();
                    output.RenderEndTag();
                }

                if (calendar.ShowTodayFooter)
                {
                    output.AddStyleAttribute("cursor", "hand");
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                    output.AddAttribute(HtmlTextWriterAttribute.Colspan, string.Format("{0}%", calendar.ShowWeekNumber ? 100 / 8 : 100 / 7));
                    calendar.TodayFooterStyle.AddAttributesToRender(output, null, calendar.ImagesDirectory);
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    string todayFooterText = "";
                    if (calendar.PrefixTodayFooter.Trim() != string.Empty)
                    {
                        todayFooterText += calendar.PrefixTodayFooter;
                    }
                    if (calendar.UseCustomDateFormat == false)
                    {
                        todayFooterText += DateOperation.FormatedDate(DateTime.Now, calendar.DateFormatLocale);
                    }
                    else
                    {
                        todayFooterText += DateOperation.FormatCustomDate(DateTime.Now, calendar.CustomDateFormat, calendar.Days, calendar.Months);
                    }
                    output.Write(todayFooterText);
                    output.RenderEndTag();
                    output.RenderEndTag();
                }

                // End of the calendar render
                output.RenderEndTag();
                output.Write("</div>");
            }
            else
            {
                // Check each element separated by semicolon char in the Format string.
                // If the element is the string representation of a specific date part,
                // the code render the selector. If not, the element is rendered as
                // text to the HtmlTextWriter.
                foreach (string element in calendar.Format.Split(';'))
                {
                    switch (element.ToUpper())
                    {
                    case "DAY":
                        WriteSelector(output, "_day", 1, 31, 2, calendar.SelectedDate.Day, calendar.SelectorStyle, calendar.Months, true);
                        break;

                    case "MONTH":
                        WriteSelector(output, "_month", 1, 12, 2, calendar.SelectedDate.Month, calendar.SelectorStyle, calendar.Months, calendar.ShowMonth);
                        break;

                    case "YEAR":
                        WriteSelector(output, "_year", calendar.SelectedDate.Year <calendar.MinDate.Year && calendar.AutoAdjust?calendar.SelectedDate.Year : calendar.MinDate.Year, calendar.SelectedDate.Year> calendar.MaxDate.Year && calendar.AutoAdjust ? calendar.SelectedDate.Year : calendar.MaxDate.Year, 4, calendar.SelectedDate.Year, calendar.SelectorStyle, calendar.Months, calendar.ShowYear);
                        break;

                    case "HOUR":
                        WriteSelector(output, "_hour", 0, 23, 2, calendar.SelectedDate.Hour, calendar.SelectorStyle, calendar.Months, true);
                        break;

                    case "MINUTE":
                        WriteSelector(output, "_minute", 0, 59, 2, calendar.SelectedDate.Minute, calendar.SelectorStyle, calendar.Months, true);
                        break;

                    case "SECOND":
                        WriteSelector(output, "_second", 0, 59, 2, calendar.SelectedDate.Second, calendar.SelectorStyle, calendar.Months, true);
                        break;

                    case "MILLISECOND":
                        WriteSelector(output, "_millisecond", 0, 999, 3, calendar.SelectedDate.Millisecond, calendar.SelectorStyle, calendar.Months, true);
                        break;

                    case "MERIDIEM":
                        WriteSelector(output, "_meridiem", 0, 1, 2, (calendar.SelectedDate.Hour >= 12 ? 1 : 0), calendar.SelectorStyle, calendar.Months, true);
                        break;

                    default:
                        output.Write(element);
                        break;
                    }
                }
            }

            //calendar.RenderControl(output);

            return(stringWriter.ToString());
        }
 public void SetUp()
 {
     _dateOperation = new DateOperation();
     _privateObjcet = new MSTest::PrivateObject(_dateOperation);
 }
Beispiel #10
0
 public PersistenceModel(string timestamp, DateTime date, int paramDays, int paramWeeks, int paramMonths, int paramYears, DateOperation operation)
 {
     this.Timestamp   = timestamp;
     this.Date        = date;
     this.ParamDays   = paramDays;
     this.ParamWeeks  = paramWeeks;
     this.ParamMonths = paramMonths;
     this.ParamYears  = paramYears;
     this.Operation   = operation;
 }
Beispiel #11
0
 public OutputModel(string timestamp, DateTime date, int paramDays, int paramWeeks, int paramMonths, int paramYears, DateOperation operation, string result)
 {
     this.Timestamp   = timestamp;
     this.Date        = date;
     this.ParamDays   = paramDays;
     this.ParamWeeks  = paramWeeks;
     this.ParamMonths = paramMonths;
     this.ParamYears  = paramYears;
     this.Operation   = operation;
     this.Result      = result;
 }