示例#1
0
        public SearchNodeViewModel(ISearchResult result)
        {
            Type  = result.CType;
            Id    = result.Id;
            Title = result.Title.GetNormalString();
            var descriptionHtml = result.Description.GetNormalString();

            Description = descriptionHtml.StripHtmlTags();

            Place      = result.Address;
            Categories = string.Empty;

            Dates = EventNodeViewModel.GetDates(result.Dates);
            Times = EventNodeViewModel.GetTimes(result.Dates);

            var image = result.FirstImage;

            if (image.Image != null)
            {
                Image = image.Thumbnail.Normal;
            }
            else
            {
                LoadImage(result.ItemUrl);
            }
        }
        protected override async Task LoadDetails(long id)
        {
            var rs = await _dataSource.GetEventDetails(id);

            if (rs == null)
            {
                return;
            }

            LayoutHelper.InvokeFromUiThread(async() =>
            {
                Title       = rs.Title.GetNormalString();
                Description = rs.Description.GetNormalString();
                BodyText    = rs.BodyText.GetNormalString();
                Age         = rs.AgeRestriction;
                IsFree      = rs.IsFree;
                Price       = rs.Price;
                if (!string.IsNullOrEmpty(rs.SiteUrl))
                {
                    Source = new Uri(rs.SiteUrl);
                }

                foreach (var image in rs.Images)
                {
                    _images.Add(image.Image);
                }

                if (rs.Place != null)
                {
                    Place    = rs.Place.Title.GetNormalString();
                    Metro    = rs.Place.Subway;
                    Location = rs.Place.Coords;
                    _placeId = rs.Place.Id;
                }

                var dates = rs.Dates;
                if (dates != null)
                {
                    Dates = EventNodeViewModel.GetDates(dates);
                    Times = EventNodeViewModel.GetTimes(dates);
                }

                await CommentsViewModel.Load();
            });
        }