コード例 #1
0
ファイル: AtomExtensions.cs プロジェクト: Terradue/Stars
        /// <summary>
        /// https://github.com/radiantearth/stac-spec/blob/master/item-spec/common-metadata.md#date-and-time
        /// </summary>
        /// <param name="item"></param>
        /// <param name="properties"></param>
        private static void FillDateTimeProperties(AtomItem item, Dictionary <string, object> properties)
        {
            DateTime startDate = item.FindStartDate();
            DateTime endDate   = item.FindEndDate();

            Itenso.TimePeriod.TimeInterval dateInterval = new Itenso.TimePeriod.TimeInterval(startDate, endDate);

            // remove previous values
            properties.Remove("datetime");
            properties.Remove("start_datetime");
            properties.Remove("end_datetime");

            // datetime, start_datetime, end_datetime
            if (dateInterval.IsAnytime)
            {
                properties.Add("datetime", null);
            }
            else
            {
                if (dateInterval.IsMoment)
                {
                    properties.Add("datetime", dateInterval.Start);
                }
                else
                {
                    properties.Add("datetime", dateInterval.Start);
                    properties.Add("start_datetime", dateInterval.Start);
                    properties.Add("end_datetime", dateInterval.Start);
                }
            }

            if (item.PublishDate.Ticks != 0)
            {
                properties.Remove("created");
                properties.Add("created", item.PublishDate.DateTime);
            }

            if (item.LastUpdatedTime.Ticks != 0)
            {
                properties.Remove("updated");
                properties.Add("updated", item.LastUpdatedTime.DateTime);
            }
        }