Exemplo n.º 1
0
        public EventCreateViewModel(IEnumerable <string> sports, IEnumerable <TournamentBaseModel> tournaments, IEnumerable <ParticipantTournamentModel> participants)
        {
            this.eventCreateModel = new EventCreateModel
            {
                DateOfEvent = DateTime.Now.AddMonths(2).Date
            };

            this.Sports               = new ObservableCollection <string>(sports);
            this.Tournaments          = new ObservableCollection <TournamentBaseModel>(tournaments);
            this.Participants         = new ObservableCollection <ParticipantTournamentModel>(participants);
            this.SelectedParticipants = new ObservableCollection <ParticipantTournamentModel>();

            this.CreateEventCommand = new DelegateCommand(() => Create(eventCreateModel), CanCreate);
            this.MoveToEventCommand = new DelegateCommand(
                () => MoveToEvent(SelectedParticipant),
                obj => SelectedParticipant != null);
            this.MoveAllToEventCommand = new DelegateCommand(
                () => MoveAllToEvent(),
                obj => true);
            this.MoveFromEventCommand = new DelegateCommand(
                () => MoveFromEvent(SelectedEventsParticipant),
                obj => SelectedEventsParticipant != null);

            this.SortedTournaments.Filter = obj =>
            {
                TournamentBaseModel tournamentBaseModel = obj as TournamentBaseModel;
                return(tournamentBaseModel.SportName == SelectedSport);
            };
            this.SortedParticipants.Filter = obj =>
            {
                bool isValid = SelectedTournament != null;

                if (isValid)
                {
                    ParticipantTournamentModel participantModel = obj as ParticipantTournamentModel;
                    isValid = participantModel
                              .Tournaments
                              .Select(t => t.Name)
                              .Contains(SelectedTournament.Name) &&
                              !SelectedParticipants
                              .Select(p => p.Name)
                              .Contains(participantModel.Name);
                }

                return(isValid);
            };
        }
        public EventParticipantViewModel(EventDisplayModel eventDisplayModel, IEnumerable <ParticipantBaseModel> allParticipants)
        {
            this.eventEditModel = new EventEditModel
            {
                DateOfTournamentStart = eventDisplayModel.DateOfTournamentStart,
                SportName             = eventDisplayModel.SportName,
                TournamentName        = eventDisplayModel.TournamentName,
                DateOfEvent           = eventDisplayModel.DateOfEvent,
                OldNotes = eventDisplayModel.Notes,

                Participants = eventDisplayModel.Participants.ToList()
            };

            this.MoveToEventCommand = new DelegateCommand(
                () => MoveToEvent(SelectedParticipant),
                obj => SelectedParticipant != null);
            this.MoveAllToEventCommand = new DelegateCommand(
                () => MoveAllToEvent(),
                obj => true);
            this.MoveFromEventCommand = new DelegateCommand(
                () => MoveFromEvent(SelectedEventsParticipant),
                obj => SelectedEventsParticipant != null);
            this.SaveChangesCommand = new DelegateCommand(() => SaveChanges(eventEditModel), obj => true);

            this.AllParticipants      = new ObservableCollection <ParticipantBaseModel>(allParticipants);
            this.SelectedParticipants = new ObservableCollection <ParticipantBaseModel>(eventDisplayModel.Participants);

            NotSelectedParticipants.Filter = obj =>
            {
                ParticipantBaseModel participant = obj as ParticipantBaseModel;
                return(SelectedParticipants.Count(p =>
                                                  p.Name == participant.Name &&
                                                  p.CountryName == participant.CountryName &&
                                                  p.SportName == participant.SportName) == 0);
            };
        }