private UIElement Add(IEnumerable <string> sportNames)
        {
            TournamentCreateViewModel viewModel = new TournamentCreateViewModel(sportNames);
            TournamentCreateControl   control   = new TournamentCreateControl(viewModel);

            viewModel.TournamentCreated += (s, e) =>
            {
                TournamentBaseModel tournamentCreateModel = e.Tournament;
                TournamentBaseDTO   tournamentCreateDTO   = Mapper.Map <TournamentBaseModel, TournamentBaseDTO>(tournamentCreateModel);

                using (ITournamentService service = factory.CreateTournamentService())
                {
                    ServiceMessage serviceMessage = service.Create(tournamentCreateDTO);
                    RaiseReceivedMessageEvent(serviceMessage.IsSuccessful, serviceMessage.Message);

                    if (serviceMessage.IsSuccessful)
                    {
                        Notify();
                        viewModel.Name = String.Empty;
                    }
                }
            };

            return(control);
        }
        public ServiceMessage Create(TournamentBaseDTO tournamentCreateDTO)
        {
            string message = "";
            bool   success = true;

            if (success = Validate(tournamentCreateDTO, ref message))
            {
                string   name        = tournamentCreateDTO.Name;
                string   sportName   = tournamentCreateDTO.SportName;
                DateTime dateOfStart = tournamentCreateDTO.DateOfStart;

                try
                {
                    SportEntity sportEntity = unitOfWork.Sports.Get(sportName);
                    if (sportEntity != null)
                    {
                        bool exists = unitOfWork.Tournaments.Exists(name, sportEntity.Id, dateOfStart);
                        if (!exists)
                        {
                            TournamentEntity tournamentEntity = new TournamentEntity
                            {
                                Name        = name,
                                DateOfStart = dateOfStart,
                                SportId     = sportEntity.Id
                            };

                            unitOfWork.Tournaments.Add(tournamentEntity);
                            unitOfWork.Commit();

                            message = "Created new tournament";
                        }
                        else
                        {
                            message = "Such tournament already exists";
                            success = false;
                        }
                    }
                    else
                    {
                        message = "No such sport found";
                        success = false;
                    }
                }
                catch (Exception ex)
                {
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                    success = false;
                }
            }

            return(new ServiceMessage(message, success));
        }
        private void Delete(TournamentBaseModel tournamentBaseModel)
        {
            TournamentBaseDTO tournamentBaseDTO = Mapper.Map <TournamentBaseModel, TournamentBaseDTO>(tournamentBaseModel);

            using (ITournamentService service = factory.CreateTournamentService())
            {
                ServiceMessage serviceMessage = service.Delete(tournamentBaseDTO);
                RaiseReceivedMessageEvent(serviceMessage);

                if (serviceMessage.IsSuccessful)
                {
                    Notify();
                }
            }
        }
        public ServiceMessage Delete(TournamentBaseDTO tournamentBaseDTO)
        {
            string message = "";
            bool   success = true;

            string   name        = tournamentBaseDTO.Name;
            string   sportName   = tournamentBaseDTO.SportName;
            DateTime dateOfStart = tournamentBaseDTO.DateOfStart;

            try
            {
                SportEntity sportEntity = unitOfWork.Sports.Get(sportName);
                if (sportEntity != null)
                {
                    TournamentEntity tournamentEntity = unitOfWork.Tournaments.Get(name, sportEntity.Type, dateOfStart);
                    if (tournamentEntity != null)
                    {
                        unitOfWork.Tournaments.Remove(tournamentEntity);
                        unitOfWork.Commit();

                        message = "Deleted tournament";
                    }
                    else
                    {
                        message = "Such tournament doesn't exist";
                        success = false;
                    }
                }
                else
                {
                    message = "No such sport found";
                    success = false;
                }
            }
            catch (Exception ex)
            {
                message = ExceptionMessageBuilder.BuildMessage(ex);
                success = false;
            }

            return(new ServiceMessage(message, success));
        }
        private bool Validate(TournamentBaseDTO tournamentCreateDTO, ref string message)
        {
            bool isValid = true;

            if (tournamentCreateDTO.DateOfStart < DateTime.Now)
            {
                message = "Invalid date: cannot start tournament in the past";
                isValid = false;
            }
            else if (String.IsNullOrEmpty(tournamentCreateDTO.Name))
            {
                message = "Invalid name: cannot be empty";
                isValid = false;
            }
            else if (String.IsNullOrEmpty(tournamentCreateDTO.SportName))
            {
                message = "Invalid sport: cannot be empty";
                isValid = false;
            }

            return(isValid);
        }
        public UIElement GetDisplayElement()
        {
            TournamentListViewModel viewModel = new TournamentListViewModel(this, facade);
            TournamentListControl   control   = new TournamentListControl(viewModel);

            viewModel.TournamentSelected += (s, e) =>
            {
                TournamentDisplayModel tournamentDisplayModel = e.Tournament;
                TournamentBaseDTO      tournamentBaseDTO      = Mapper.Map <TournamentDisplayModel, TournamentBaseDTO>(tournamentDisplayModel);

                using (IParticipantService service = factory.CreateParticipantService())
                {
                    DataServiceMessage <IEnumerable <ParticipantBaseDTO> > serviceMessage1 = service.GetBySport(tournamentBaseDTO.SportName);
                    DataServiceMessage <IEnumerable <ParticipantBaseDTO> > serviceMessage2 = service.GetByTournament(tournamentBaseDTO);

                    RaiseReceivedMessageEvent(serviceMessage1.IsSuccessful, serviceMessage1.Message);
                    RaiseReceivedMessageEvent(serviceMessage2.IsSuccessful, serviceMessage2.Message);

                    if (serviceMessage1.IsSuccessful && serviceMessage2.IsSuccessful)
                    {
                        IEnumerable <ParticipantBaseModel> sportParticipants = serviceMessage1
                                                                               .Data
                                                                               .Select(p => Mapper.Map <ParticipantBaseDTO, ParticipantBaseModel>(p))
                                                                               .ToList();
                        IEnumerable <ParticipantBaseModel> tournamentParticipants = serviceMessage2
                                                                                    .Data
                                                                                    .Select(p => Mapper.Map <ParticipantBaseDTO, ParticipantBaseModel>(p))
                                                                                    .ToList();

                        Edit(tournamentDisplayModel, tournamentParticipants, sportParticipants);
                    }
                }
            };
            viewModel.TournamentDeleteRequest += (s, e) => Delete(e.Tournament);

            return(control);
        }
Esempio n. 7
0
        public UIElement GetDisplayElement()
        {
            EventListViewModel viewModel = new EventListViewModel(this, facade);
            EventListControl   control   = new EventListControl(viewModel);

            viewModel.EventSelected += (s, e) =>
            {
                EventDisplayModel eventDisplayModel = e.Event;

                TournamentBaseDTO tournamentBaseDTO = new TournamentBaseDTO
                {
                    Name        = eventDisplayModel.TournamentName,
                    DateOfStart = eventDisplayModel.DateOfTournamentStart,
                    SportName   = eventDisplayModel.SportName
                };

                using (IParticipantService service = factory.CreateParticipantService())
                {
                    DataServiceMessage <IEnumerable <ParticipantBaseDTO> > serviceMessage = service.GetByTournament(tournamentBaseDTO);
                    RaiseReceivedMessageEvent(serviceMessage);

                    if (serviceMessage.IsSuccessful)
                    {
                        IEnumerable <ParticipantBaseModel> allParticipants = serviceMessage
                                                                             .Data
                                                                             .Select(p => Mapper.Map <ParticipantBaseDTO, ParticipantBaseModel>(p))
                                                                             .OrderBy(p => p.Name);

                        Edit(e.Event, allParticipants);
                    }
                }
            };
            viewModel.EventDeleteRequest += (s, e) => Delete(e.Event);

            return(control);
        }
        public DataServiceMessage <IEnumerable <ParticipantBaseDTO> > GetByTournament(TournamentBaseDTO tournamentBaseDTO)
        {
            string message;
            bool   success = true;
            IEnumerable <ParticipantBaseDTO> partipantDisplayDTOs = null;

            string   name        = tournamentBaseDTO.Name;
            string   sportName   = tournamentBaseDTO.SportName;
            DateTime dateOfStart = tournamentBaseDTO.DateOfStart;

            try
            {
                TournamentEntity tournamentEntity = unitOfWork.Tournaments.Get(name, sportName, dateOfStart);
                if (tournamentEntity != null)
                {
                    IEnumerable <ParticipantEntity> participantEntities = tournamentEntity.Participants;

                    partipantDisplayDTOs = participantEntities
                                           .Select(participant =>
                    {
                        return(new ParticipantBaseDTO
                        {
                            Name = participant.Name,
                            CountryName = participant.Country.Name,
                            SportName = participant.Sport.Type
                        });
                    })
                                           .OrderBy(p => p.Name)
                                           .ToList();

                    message = "Got all participants";
                }
                else
                {
                    message = "No such tournament found";
                    success = false;
                }
            }
            catch (Exception ex)
            {
                message = ExceptionMessageBuilder.BuildMessage(ex);
                success = false;
            }

            return(new DataServiceMessage <IEnumerable <ParticipantBaseDTO> >(partipantDisplayDTOs, message, success));
        }
Esempio n. 9
0
 public ServiceMessage Delete(TournamentBaseDTO tournamentBaseDTO)
 {
     return(new ServiceMessage("No permissions", false));
 }