Ejemplo n.º 1
0
        /// <summary>Initializes a new instance of the <see cref="CreateChallengesViewModel"/> class.</summary>
        public CreateChallengesViewModel()
        {
            EditCommand = new RelayCommand <ChallengeBase>(async param =>
            {
                switch (param.GetDiscriminator())
                {
                case "AudienceChallenge":
                case "CrewChallenge":
                case "SologameChallenge":
                    ObjectsViewModel.EditCommand.Execute((param as GameChallenge).Game);
                    break;

                case "MultipleChoiceChallenge":
                case "QuizChallenge":
                    await AnswersDataAccess.EditAnswersAsync((param as QuestionChallenge).Answers);
                    break;

                case "MusicChallenge":
                    ObjectsViewModel.EditCommand.Execute((param as MusicChallenge).Song);
                    break;

                case "ScreenshotChallenge":
                case "SilhouetteChallenge":
                    ObjectsViewModel.EditCommand.Execute((param as ImageChallenge).Image);
                    break;
                }
                await ChallengesDataAccess.EditChallengeAsync(param);
            }, param => param != null);

            DeleteCommand = new RelayCommand <ChallengeBase>(async param =>
            {
                if (await ChallengesDataAccess.DeleteChallengeAsync(param))
                {
                    switch (param.GetDiscriminator())
                    {
                    case "AudienceChallenge":
                        AudienceChallenges.Remove(param as AudienceChallenge);
                        FilteredAudience.Remove(param as AudienceChallenge);
                        break;

                    case "CrewChallenge":
                        CrewChallenges.Remove(param as CrewChallenge);
                        FilteredCrew.Remove(param as CrewChallenge);
                        break;

                    case "MultipleChoiceChallenge":
                        MultipleChoiceChallenges.Remove(param as MultipleChoiceChallenge);
                        FilteredMulti.Remove(param as MultipleChoiceChallenge);
                        break;

                    case "MusicChallenge":
                        MusicChallenges.Remove(param as MusicChallenge);
                        FilteredMusic.Remove(param as MusicChallenge);
                        break;

                    case "QuizChallenge":
                        QuizChallenges.Remove(param as QuizChallenge);
                        FilteredQuiz.Remove(param as QuizChallenge);
                        break;

                    case "ScreenshotChallenge":
                        ScreenshotChallenges.Remove(param as ScreenshotChallenge);
                        FilteredScreen.Remove(param as ScreenshotChallenge);
                        break;

                    case "SilhouetteChallenge":
                        SilhouetteChallenges.Remove(param as SilhouetteChallenge);
                        FilteredSilhu.Remove(param as SilhouetteChallenge);
                        break;

                    case "SologameChallenge":
                        SologameChallenges.Remove(param as SologameChallenge);
                        FilteredSolo.Remove(param as SologameChallenge);
                        break;
                    }
                }
            }, param => param != null);
        }