public ActionResult Download(Guid entityListId, Guid viewId, string from, string to, string filter, string search)
        {
            DateTime parsedFrom;

            var fromDate = DateTime.TryParseExact(from, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out parsedFrom)
                                ? parsedFrom
                                : DateTime.UtcNow.AddYears(-10);

            DateTime parsedTo;

            var toDate = DateTime.TryParseExact(to, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out parsedTo)
                                ? parsedTo
                                : DateTime.UtcNow.AddYears(10);

            var dataAdapter = new EntityListCalendarDataAdapter(
                new EntityReference("adx_entitylist", entityListId),
                new EntityReference("savedquery", viewId),
                new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext));

            var events = dataAdapter.SelectEvents(fromDate, toDate, filter, search)
                         .OrderBy(e => e.Start)
                         .ThenBy(e => e.Summary);

            var vcalendar = new VCalendar(events.Select(GetVEvent));

            return(new ContentResult
            {
                ContentType = "text/calendar",
                Content = vcalendar.ToString()
            });
        }
示例#2
0
        public ActionResult Index(Guid entityListId, Guid viewId, string from, string to, string filter, string search)
        {
            DateTime fromDate;

            if (!DateTime.TryParseExact(from, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out fromDate))
            {
                return(Error(@"Unable to parse ""from"" parameter in required date format."));
            }

            DateTime toDate;

            if (!DateTime.TryParseExact(to, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out toDate))
            {
                return(Error(@"Unable to parse ""to"" parameter in required date format."));
            }

            var dataAdapter = new EntityListCalendarDataAdapter(
                new EntityReference("adx_entitylist", entityListId),
                new EntityReference("savedquery", viewId),
                new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext));

            var events = dataAdapter.SelectEvents(fromDate, toDate, filter, search)
                         .OrderBy(e => e.Start)
                         .ThenBy(e => e.Summary);

            return(new JObjectResult(new JObject
            {
                { "success", 1 },
                { "result", new JArray(events.Select(GetEventJson)) }
            }));
        }
        public ActionResult Index(Guid entityListId, Guid viewId, string from, string to, string filter, string search)
        {
            DateTime fromDate;

            if (!DateTime.TryParseExact(from, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out fromDate))
            {
                return(Error(ResourceManager.GetString("Unable_To_Parse_From_Parameter_Error")));
            }

            DateTime toDate;

            if (!DateTime.TryParseExact(to, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out toDate))
            {
                return(Error(ResourceManager.GetString("Unable_To_Parse_Parameter_In_Required_ToDate_Format_Exception")));
            }
            try
            {
                var dataAdapter = new EntityListCalendarDataAdapter(
                    new EntityReference("adx_entitylist", entityListId),
                    new EntityReference("savedquery", viewId),
                    new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext));

                var events = dataAdapter.SelectEvents(fromDate, toDate, filter, search).OrderBy(e => e.Start).ThenBy(e => e.Summary);

                return(new JObjectResult(new JObject {
                    { "success", 1 }, { "result", new JArray(events.Select(GetEventJson)) }
                }));
            }
            catch (LocalizedException ex)
            {
                return(Error(ex.Message));
            }
            catch
            {
                return(Error(ResourceManager.GetString("CalendarControl_LoadingError")));
            }
        }