Ejemplo n.º 1
0
        public ServiceMessage Update(TournamentEditDTO tournamentEditDTO)
        {
            string message = "";
            bool   success = true;

            if (success = Validate(tournamentEditDTO, ref message))
            {
                string sportName = tournamentEditDTO.SportName;

                string   oldName        = tournamentEditDTO.Name;
                DateTime oldDateOfStart = tournamentEditDTO.DateOfStart;

                string   newName        = tournamentEditDTO.NewName;
                DateTime newDateOfStart = tournamentEditDTO.NewDateOfStart;

                try
                {
                    TournamentEntity tournamentEntity = unitOfWork.Tournaments.Get(oldName, sportName, oldDateOfStart);
                    if (tournamentEntity != null)
                    {
                        bool anyDateEarlier = tournamentEntity.Events.Any(_event => _event.DateOfEvent < tournamentEntity.DateOfStart);
                        if (!anyDateEarlier)
                        {
                            tournamentEntity.Name        = newName;
                            tournamentEntity.DateOfStart = newDateOfStart;

                            unitOfWork.Commit();

                            message = "Edited tournament";
                        }
                        else
                        {
                            message = "Tournament cannot start later then event";
                            success = false;
                        }
                    }
                    else
                    {
                        message = "Such tournament was not found";
                        success = false;
                    }
                }
                catch (Exception ex)
                {
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                    success = false;
                }
            }

            return(new ServiceMessage(message, success));
        }
Ejemplo n.º 2
0
        private bool Validate(TournamentEditDTO tournamentEditDTO, ref string message)
        {
            bool isValid = true;

            if (tournamentEditDTO.NewDateOfStart < DateTime.Now)
            {
                message = "Invalid date: cannot start tournament in the past";
                isValid = false;
            }
            else if (String.IsNullOrEmpty(tournamentEditDTO.NewName))
            {
                message = "Invalid name: cannot be empty";
                isValid = false;
            }

            return(isValid);
        }
Ejemplo n.º 3
0
        private void Edit(TournamentBaseModel tournament, IEnumerable <ParticipantBaseModel> tournamentParticipants, IEnumerable <ParticipantBaseModel> sportParticipants)
        {
            TournamentManageViewModel viewModel = new TournamentManageViewModel(tournament, tournamentParticipants, sportParticipants);
            TournamentManageControl   control   = new TournamentManageControl(viewModel);
            Window window = WindowFactory.CreateByContentsSize(control);

            viewModel.InfoViewModel.TournamentEdited += (s, e) =>
            {
                TournamentEditModel tournamentEditModel = e.Tournament;
                TournamentEditDTO   tournamentEditDTO   = Mapper.Map <TournamentEditModel, TournamentEditDTO>(tournamentEditModel);

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

                    if (serviceMessage.IsSuccessful)
                    {
                        Notify();
                    }
                }
            };
            viewModel.ParticipantViewModel.TournamentEdited += (s, e) =>
            {
                TournamentEditModel tournamentEditModel = e.Tournament;
                TournamentEditDTO   tournamentEditDTO   = Mapper.Map <TournamentEditModel, TournamentEditDTO>(tournamentEditModel);

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

                    if (serviceMessage.IsSuccessful)
                    {
                        Notify();
                    }
                }
            };

            window.Show();
        }
Ejemplo n.º 4
0
 public ServiceMessage UpdateParticipants(TournamentEditDTO tournamentEditDTO)
 {
     return(new ServiceMessage("No permissions", false));
 }
Ejemplo n.º 5
0
        public ServiceMessage UpdateParticipants(TournamentEditDTO tournamentEditDTO)
        {
            string message = "";
            bool   success = true;

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

            List <ParticipantBaseDTO> participants = tournamentEditDTO.Participants;

            if (participants != null)
            {
                try
                {
                    TournamentEntity tournamentEntity = unitOfWork.Tournaments.Get(name, sportName, dateOfStart);
                    if (tournamentEntity != null)
                    {
                        IEnumerable <ParticipantEntity> participantEntities = participants.Select(participant =>
                        {
                            string _name        = participant.Name;
                            string _sportName   = participant.SportName;
                            string _countryName = participant.CountryName;

                            return(unitOfWork.Participants.Get(_name, _sportName, _countryName));
                        });

                        var deleted = tournamentEntity
                                      .Participants
                                      .Where(p =>
                                             !participantEntities.Select(pe => pe.Id).Contains(p.Id)
                                             )
                                      .ToList();
                        var added = participantEntities
                                    .Where(pe =>
                                           !tournamentEntity.Participants.Select(p => p.Id).Contains(pe.Id)
                                           )
                                    .ToList();

                        foreach (var deletedParticipant in deleted)
                        {
                            tournamentEntity.Participants.Remove(deletedParticipant);
                        }
                        foreach (var addedParticipant in added)
                        {
                            tournamentEntity.Participants.Add(addedParticipant);
                        }

                        unitOfWork.Commit();

                        message = "Edited tournament";
                    }
                    else
                    {
                        message = "Such tournament was not found";
                        success = false;
                    }
                }
                catch (Exception ex)
                {
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                    success = false;
                }
            }
            else
            {
                message = "Invalid participants argument";
                success = false;
            }

            return(new ServiceMessage(message, success));
        }