Пример #1
0
        /// <summary>
        ///   This is only ever required after pulling values out of the AtomFeed XML, and is done automatically.
        /// </summary>
        private void SyncToModel()
        {
            // Model.ProductCode = Id;
            Model.PackageDetails.SummaryDescription = Summary.Text;
            Model.PackageDetails.PublishDate        = PublishDate.DateTime;

            var pub = Authors.FirstOrDefault();

            if (pub != null)
            {
                Model.PackageDetails.Publisher = new Identity {
                    Name                             = pub.Name,
                    Location                         = pub.Uri != null?pub.Uri.ToUri() : null,
                                               Email = pub.Email
                };
            }

            Model.PackageDetails.Contributors = Contributors.Select(each => new Identity {
                Name     = each.Name,
                Location = each.Uri.ToUri(),
                Email    = each.Email,
            }).ToXList();

            Model.PackageDetails.Tags       = Categories.Where(each => each.Scheme == "/Tags").Select(each => each.Name).ToXList();
            Model.PackageDetails.Categories = Categories.Where(each => each.Scheme == "/Categories").Select(each => each.Name).ToXList();

            var content = (Content as TextSyndicationContent);

            Model.PackageDetails.Description = content == null ? string.Empty : content.Text;

            Model.PackageDetails.CopyrightStatement = Copyright == null ? string.Empty : Copyright.Text;

            Model.Locations = Links.Select(each => each.Uri.AbsoluteUri.ToUri()).Distinct().ToXList();
        }
Пример #2
0
        public override object Get()
        {
            var values = Contributors.Select(binding => binding.Get());
            var ctor   = setCtor.Value;
            var set    = ctor.Invoke(new object[] { values });

            return(set);
        }
Пример #3
0
 public override object Get()
 {
     return(new ReadOnlyHashSet <T>(Contributors.Select(binding => (T)binding.Get())));
 }