Esempio n. 1
0
        public async Task UpdatePersonAsync(PersonContainer container, CancellationToken cancellationToken)
        {
            PersonMethods methods    = PersonMethods.MovieCredits | PersonMethods.TvCredits | PersonMethods.Images | PersonMethods.ExternalIds | PersonMethods.Translations;
            Person        tmdbResult = await TMDbClient.GetPersonAsync(container.Id, methods, cancellationToken);

            container.Item = tmdbResult;
            People.Update(container);
        }
Esempio n. 2
0
        public void ContainsTest()
        {
            PersonContainer container = new PersonContainer();

            container.People = GetTestPeople();
            var contains = container.Contains(p => p.Age > 20);

            Assert.True(contains);
        }
Esempio n. 3
0
        public void GetAllTest()
        {
            PersonContainer container = new PersonContainer();

            container.People = GetTestPeople();
            var twenties = container.GetAll(p => p.Age > 20);

            Assert.Equal(2, twenties.Count());
        }
Esempio n. 4
0
        public void GetBobTest()
        {
            PersonContainer container = new PersonContainer();

            container.People = GetTestPeople();
            var bob = container.GetOne(p => p.Name == "Bob");

            Assert.NotNull(bob);
            Assert.Equal("Bob", bob.Name);
        }
Esempio n. 5
0
        private PersonContainer GetContainer(SearchPerson item)
        {
            PersonContainer container = People.FindById(item.Id);

            if (container == null)
            {
                container = new PersonContainer(item);
            }

            return(container);
        }
    public static Person DeserializePerson(String strJsonResult)
    {
        //Deserialize multiple people
        //PeopleResult p = (PeopleResult)JsonConvert.DeserializeObject<PeopleResult>(strJsonResult);
        //return  (Person)p.results[0];

        //Deserialize single person
        PersonContainer personContainer = (PersonContainer)JsonConvert.DeserializeObject <PersonContainer>(strJsonResult);

        return(personContainer.Person);
    }
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    public String SerializePerson()
    {
        PersonContainer pc = new PersonContainer(this);

        StringBuilder sb = new StringBuilder();
        StringWriter  sw = new StringWriter(sb);

        Newtonsoft.Json.JsonSerializer serializer1 = new Newtonsoft.Json.JsonSerializer();
        Newtonsoft.Json.JsonTextWriter jwriter     = new Newtonsoft.Json.JsonTextWriter(sw);

        serializer1.Serialize(jwriter, pc);

        return(sb.ToString());
    }
Esempio n. 8
0
        public async Task <PersonContainer> GetPersonAsync(int personId, CancellationToken cancellationToken)
        {
            PersonContainer container = People.FindById(personId);

            if (container != null)
            {
                return(container);
            }

            PersonMethods methods    = PersonMethods.MovieCredits | PersonMethods.TvCredits | PersonMethods.Images | PersonMethods.ExternalIds | PersonMethods.Translations;
            Person        tmdbResult = await TMDbClient.GetPersonAsync(personId, methods, cancellationToken);

            container = new PersonContainer(tmdbResult);

            return(container);
        }
Esempio n. 9
0
        public void CreatePersonContainerView(PersonContainer container)
        {
            if (container == null)
            {
                return;
            }

            string documentType = "PersonSingleView";
            string documentId   = String.Format("{0}:{1}", documentType, container.Id);

            if (ShowDocument(String.Empty, documentId))
            {
                return;
            }

            CreateDocument(() => container.Person.Name, documentType, container, documentId);
        }
Esempio n. 10
0
        public async Task CreatePersonView(int personId)
        {
            string documentType = "PersonSingleView";
            string documentId   = String.Format("{0}:{1}", documentType, personId);

            if (ShowDocument(String.Empty, documentId))
            {
                return;
            }

            CancellationTokenSource tokenSource = this.GetAsyncCommand(x => x.CreatePersonView(personId)).CancellationTokenSource;
            PersonContainer         container   = await RunAsync(() => App.Repository.GetPersonAsync(personId, tokenSource.Token));

            if (container != null)
            {
                CreateDocument(() => container.Person.Name, documentType, container, documentId);
            }
        }
Esempio n. 11
0
        public async Task CreateImportView(MediaType mediaType)
        {
            ImportViewModel viewModel = ViewModelSource.Create <ImportViewModel>();

            viewModel.ParentViewModel = this;
            viewModel.MediaType       = mediaType;

            DialogService.ShowDialog(null, Properties.Resources.Import, "ImportView", viewModel);
            if (viewModel.SelectedMediaFileInfoList != null)
            {
                try
                {
                    BeginProgress();
                    IAsyncCommand     command           = this.GetAsyncCommand(x => x.CreateImportView(mediaType));
                    CancellationToken cancellationToken = command.CancellationTokenSource.Token;
                    BackgroundOperation.Register(Properties.Resources.ImportWizard, command.CancelCommand);

                    List <ContainerBase> newItems      = new List <ContainerBase>();
                    List <ContainerBase> existingItems = new List <ContainerBase>();

                    if (viewModel.MediaType == MediaType.Movie)
                    {
                        foreach (MediaFileInfo info in viewModel.SelectedMediaFileInfoList)
                        {
                            if (cancellationToken.IsCancellationRequested)
                            {
                                break;
                            }

                            SearchBase selectedItem = info.SelectedMediaItem as SearchBase;
                            if (selectedItem != null)
                            {
                                MovieContainer container = await App.Repository.GetMovieAsync(selectedItem.Id, cancellationToken);

                                if (container != null)
                                {
                                    container.Seen           = info.PersonalInfo.Seen;
                                    container.Favorite       = info.PersonalInfo.Favorite;
                                    container.Watchlist      = info.PersonalInfo.Watchlist;
                                    container.LocalPath      = info.PersonalInfo.LocalPath;
                                    container.PersonalRating = info.PersonalInfo.PersonalRating;

                                    if (container.IsAdded == false)
                                    {
                                        newItems.Add(container);
                                    }
                                    else
                                    {
                                        existingItems.Add(container);
                                    }
                                }
                            }
                        }

                        foreach (MovieContainer movieContainer in newItems)
                        {
                            App.Repository.Movies.Add(movieContainer);
                        }

                        foreach (MovieContainer movieContainer in existingItems)
                        {
                            App.Repository.Movies.Update(movieContainer);
                        }
                    }
                    else if (viewModel.MediaType == MediaType.Tv)
                    {
                        foreach (MediaFileInfo info in viewModel.SelectedMediaFileInfoList)
                        {
                            if (cancellationToken.IsCancellationRequested)
                            {
                                break;
                            }

                            SearchBase selectedItem = info.SelectedMediaItem as SearchBase;
                            if (selectedItem != null)
                            {
                                TvShowContainer container = await App.Repository.GetTvShowAsync(selectedItem.Id, cancellationToken);

                                if (container != null)
                                {
                                    container.Seen           = info.PersonalInfo.Seen;
                                    container.Favorite       = info.PersonalInfo.Favorite;
                                    container.Watchlist      = info.PersonalInfo.Watchlist;
                                    container.LocalPath      = info.PersonalInfo.LocalPath;
                                    container.PersonalRating = info.PersonalInfo.PersonalRating;

                                    if (container.IsAdded == false)
                                    {
                                        newItems.Add(container);
                                    }
                                    else
                                    {
                                        existingItems.Add(container);
                                    }
                                }
                            }
                        }

                        foreach (TvShowContainer tvShowContainer in newItems)
                        {
                            App.Repository.TvShows.Add(tvShowContainer);
                        }

                        foreach (TvShowContainer tvShowContainer in existingItems)
                        {
                            App.Repository.TvShows.Update(tvShowContainer);
                        }
                    }
                    else if (viewModel.MediaType == MediaType.Person)
                    {
                        foreach (MediaFileInfo info in viewModel.SelectedMediaFileInfoList)
                        {
                            if (cancellationToken.IsCancellationRequested)
                            {
                                break;
                            }

                            SearchBase selectedItem = info.SelectedMediaItem as SearchBase;
                            if (selectedItem != null)
                            {
                                PersonContainer container = await App.Repository.GetPersonAsync(selectedItem.Id, cancellationToken);

                                if (container != null)
                                {
                                    container.Favorite  = info.PersonalInfo.Favorite;
                                    container.LocalPath = info.PersonalInfo.LocalPath;

                                    if (container.IsAdded == false)
                                    {
                                        newItems.Add(container);
                                    }
                                    else
                                    {
                                        existingItems.Add(container);
                                    }
                                }
                            }
                        }

                        foreach (PersonContainer personContainer in newItems)
                        {
                            App.Repository.People.Add(personContainer);
                        }

                        foreach (PersonContainer personContainer in existingItems)
                        {
                            App.Repository.People.Update(personContainer);
                        }
                    }
                }
                finally
                {
                    EndProgress();
                    BackgroundOperation.UnRegister(Properties.Resources.ImportWizard);
                }
            }
        }