Ejemplo n.º 1
0
        public void Deserialize(string content)
        {
            // make sure that the parameter starts with ATTACH
            if (!content.ToUpper().StartsWith(Markup))
            {
                throw new ArgumentException($"Invalid attachment detected! Component property needs to start with { Markup } keyword!");
            }

            // deserialize parameters
            Parameters =
                content.Substring(Markup.Length, content.IndexOf(':') - Markup.Length)
                .Split(';', StringSplitOptions.RemoveEmptyEntries)
                .Select(x => CalendarFactory.DeserializePropertyParameter(x))
                .ToList();

            // extract the value content
            string valueContent = content.Substring(content.IndexOf(':') + 1).Trim();

            // deserialize inline attachment
            if (Encoding != null)
            {
                // make sure that encoding and value type parameter are valid
                if (Encoding.Encoding != InlineEncodingType.Base64)
                {
                    throw new ArgumentException("Invalid parameter detected! Encoding needs to be set to base64!");
                }
                if (ValueType.ValueType != PropertyValueType.Binary)
                {
                    throw new ArgumentException("Invalid parameter detected! Value type needs to be set to binary!");
                }

                // deserialize binary content
                Content = new AttachmentValue(ObjectSerializer.Deserialize <BinaryValue>(valueContent));
            }
            // deserialize relative attachment
            else
            {
                Content = new AttachmentValue(ObjectSerializer.Deserialize <UriValue>(valueContent));
            }

            // make sure that the format type parameter only occurs once
            if (Parameters.Where(x => x.GetType() == typeof(FormatTypeParameter)).Count() > 1)
            {
                throw new ArgumentException("Invalid parameter detected! Format type parameter needs to be unique!");
            }
        }
Ejemplo n.º 2
0
        public void Should_calculate_correctly_with_different_increment_including_holiday(
            decimal incrementInWorkdays,
            DateTime startDate,
            DateTime expectedEnd)
        {
            // Arrange
            var sut = CalendarFactory.Create();

            sut.SetWorkdayStartAndStop(8, 0, 16, 0);

            sut.SetRecurringHoliday(5, 17);
            sut.SetHoliday(new DateTime(2004, 5, 27));

            // Act
            var end = sut.GetWorkdayIncrement(startDate, incrementInWorkdays);

            // Assert
            end.Should().BeCloseTo(expectedEnd, 60 * 1000);
        }
Ejemplo n.º 3
0
        public void Deserialize(string content)
        {
            // make sure that the parameter starts with PERCENT-COMPLETE
            if (!content.ToUpper().StartsWith(Markup))
            {
                throw new ArgumentException($"Invalid percent complete detected! Component property needs to start with { Markup } keyword!");
            }

            // deserialize parameters
            Parameters =
                content.Substring(Markup.Length, content.IndexOf(':') - Markup.Length)
                .Split(';', StringSplitOptions.RemoveEmptyEntries)
                .Select(x => CalendarFactory.DeserializePropertyParameter(x))
                .ToList();

            // extract the value content
            string valueContent = content.Substring(content.IndexOf(':') + 1).Trim();

            Percentage = ObjectSerializer.Deserialize <IntegerValue>(valueContent);
        }
Ejemplo n.º 4
0
        private void deserializeComponents(string content)
        {
            // TODO: think about multi-threading optimization (e.g. parsing components parallel)

            int offset = 0;

            while (offset < content.Length && offset != -1)
            {
                // extract the lines of the next iCalendar component
                int endOfComponentIndex = endIndexOfElementBound(content.Substring(offset));
                var componentContent    = content.Substring(offset, endOfComponentIndex - offset).Trim();
                // TODO: make sure that the indexing is correct and does not run into out-of-bounds error

                // parse the component from the extracted lines
                var component = CalendarFactory.DeserializeCalendarComponent(componentContent);
                Components.Append(component);

                // remove already parsed lines
                offset = endOfComponentIndex;
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            var clHelper = new CineListHelper.CineListHelper();

            clHelper.OnTrivialError += (sender, message) =>
            {
                Console.WriteLine(message);
            };

            clHelper.OnInformationalMessage += (sender, message) =>
            {
                Console.WriteLine("INFO: " + message);
            };
            var cFactory = new CalendarFactory();

            try
            {
                var cinemaListings = clHelper.GetLocalMovies("G731JN", 10).Result;
                var cal            = cFactory.Convert(cinemaListings);

                //cal.TimeZones.Add(new Ical.Net.CalendarComponents.VTimeZone("Europe/London"));
                //cal.TimeZones.Add(new Ical.Net.CalendarComponents.VTimeZone("GMT"));
                //cal.Name = "CinemaList Calendar";
                //cal.Version = "4.0";
                if (cal != null)
                {
                    File.Delete("./calendar.ical");
                    var calSerializer = new CalendarSerializer();
                    var calString     = calSerializer.SerializeToString(cal);
                    using (var writer = new StreamWriter("./calendar.ical"))
                    {
                        writer.Write(calString);
                    }
                }
            }
            catch (System.Net.Http.HttpRequestException e)
            {
                Console.WriteLine(e.Message);
            }
        }
Ejemplo n.º 6
0
        private void GetCalendars()
        {
            QJVRMS.Business.CalendarFactory calendarFactory = new CalendarFactory();
            this.head.InnerHtml    = calendarFactory.ShowHead(DateTime.Now.Year, DateTime.Now.Month, CurrentUser.UserLoginName);
            this.content.InnerHtml = calendarFactory.ShowContent(DateTime.Now.Year, DateTime.Now.Month, CurrentUser.UserLoginName);
            //DateTime time = DateTime.Now;
            //StringBuilder sb = new StringBuilder();
            //for (int i = 0; i < 7; i++) {
            //    time = DateTime.Now.AddDays(double.Parse(i.ToString()));
            //    //sb.Append("<div>");
            //    sb.Append("<a class=\"ahead\">");
            //    sb.Append("<table class=\"head\" width=\"100%\" onclick=\"javascript:ShowCalendar('" + time.ToString("yyyy-MM-dd") + "', '" + CurrentUser.UserLoginName + "')\"><tr>");
            //    sb.Append("<td align=\"left\"><strong>" + time.ToString("yyyy-MM-dd") + "<br />" + time.Date.DayOfWeek.ToString() + "</strong></td>"); ;
            //    sb.Append("<td align=\"right\"><a href=\"EditCalendar.aspx?type=Add&time=" + time.ToString("yyyy-MM-dd") + "\" target=\"_blank\">添加</a></td>");
            //    sb.Append("</tr></table>");
            //    sb.Append("</a>");
            //    sb.Append("<div id=\"" + time.ToString("yyyy-MM-dd") + "\" class=\"contentcan\" style=\"display:none;\">");
            //    sb.Append("</div>");
            //    //sb.Append("</div>");
            //}

            //this.Content.InnerHtml = sb.ToString();
        }
Ejemplo n.º 7
0
        public JulianCalendarTest()
        {
            CalendarFactory factory = new CalendarFactory();

            Calendar = factory.CreateJulianCalendar();
        }
Ejemplo n.º 8
0
        public GrigorianCalendarTest()
        {
            CalendarFactory factory = new CalendarFactory();

            Calendar = factory.CreateGrigorianCalendar();
        }
Ejemplo n.º 9
0
        public void test_default_parameters()
        {
            CalendarFactory fact = new CalendarFactory();

            Assert.IsNull(fact.default_parameters());
        }