コード例 #1
0
        public HeroCard ToCard()
        {
            var hero = new HeroCard(
                title: Title,
                subtitle: Room,
                text: string.Join("\n", Description));

            if (Speakers?.Any() ?? false)
            {
                hero.Subtitle = string.Empty;
                hero.Images   = new List <CardImage>();
                foreach (var speaker in Speakers)
                {
                    if (!string.IsNullOrEmpty(hero.Subtitle))
                    {
                        hero.Subtitle += " - ";
                    }
                    hero.Subtitle += $"{speaker.FirstName} {speaker.LastName}";

                    hero.Images.Add(new CardImage()
                    {
                        Url = speaker.ProfilePicture,
                        Alt = speaker.TagLine
                    });
                }
            }

            return(hero);
        }
コード例 #2
0
        // Returns a list of Seminars that matches the search conditions defined by the properties above
        public static List <Seminar> Execute()
        {
            var query = from s in DataInstance.seminars
                        where (ByRoom == false || s.Room == Room)
                        where (ByOrganiser == false || s.Organiser == Organiser)
                        where (BySpeaker == false || s.Speakers.Any(iter => Speakers.Any(speaker => speaker.Name == iter.Name)))//.Contains(Speakers))
                        where (ByDate == false || (s.StartDate >= StartDate && s.StartDate <= EndDate))
                        select s;

            return(query.ToList <Seminar>());
        }
コード例 #3
0
        private async Task LoadAsync()
        {
            ShowProgressBar();

            Speakers = (await SpeakerResolver.ResolveSpeakersAsync()).ToList();

            if (!Speakers.Any())
            {
                HideProgressBar();

                Toast.MakeText(ApplicationContext, "No Speakers have been found.", ToastLength.Long).Show();

                return;
            }

            PlayingSpeakers = new List <ISpeaker>();
            foreach (var speaker in Speakers)
            {
                if (await speaker.IsPlayingAsync())
                {
                    PlayingSpeakers.Add(speaker);
                }
            }

            if (!PlayingSpeakers.Any())
            {
                HideProgressBar();

                Toast.MakeText(ApplicationContext, $"None of the {Speakers.Count} Speakers is playing any content.", ToastLength.Long)
                .Show();

                return;
            }

            SetListViewContent(Resource.Id.sourceListView, PlayingSpeakers);
            UnselectListView(Resource.Id.sourceListView);

            MakeControlVisible(Resource.Id.sourceTextView);
            MakeControlInvisible(Resource.Id.destinationTextView);
            MakeControlInvisible(Resource.Id.switchButton);

            SetListViewContent(Resource.Id.destinationListView, new List <ISpeaker>());

            HideProgressBar();
        }
コード例 #4
0
        private async void ActivateAsync()
        {
            if (Speakers.Any())
            {
                return;
            }

            var allSpeakers = await _speakers.AllAsync();

            var groupedSpeakers = from speaker in allSpeakers
                                  orderby speaker.FirstName
                                  group speaker by speaker.FirstName.Substring(0, 1)
                                  into speakerGroup
                                  select new Grouping <string, Speaker>(speakerGroup.Key, speakerGroup);

            foreach (var grouping in groupedSpeakers)
            {
                Speakers.Add(grouping);
            }
        }