예제 #1
0
        public ServiceMessage Update(EventEditDTO eventEditDTO)
        {
            string message = "";
            bool   success = true;

            string   sportName             = eventEditDTO.SportName;
            string   tournamentName        = eventEditDTO.TournamentName;
            DateTime dateOfTournamentStart = eventEditDTO.DateOfTournamentStart;

            string   notes       = eventEditDTO.Notes;
            DateTime dateOfEvent = eventEditDTO.DateOfEvent;

            List <ParticipantBaseDTO> participants = eventEditDTO.Participants;

            if (success = Validate(eventEditDTO, ref message))
            {
                try
                {
                    TournamentEntity tournamentEntity = unitOfWork.Tournaments.Get(tournamentName, sportName, dateOfTournamentStart);
                    if (tournamentEntity != null)
                    {
                        IEnumerable <ParticipantEntity> participantEntities = participants
                                                                              .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName))
                                                                              .ToList();

                        EventEntity eventEntity = unitOfWork
                                                  .Events
                                                  .Get(sportName, tournamentName, dateOfEvent, participantEntities);
                        if (eventEntity != null)
                        {
                            eventEntity.DateOfEvent = eventEditDTO.NewDateOfEvent;
                            eventEntity.Notes       = eventEditDTO.Notes;

                            unitOfWork.Commit();

                            message = "Edited event";
                        }
                        else
                        {
                            message = "Such event was not found";
                            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));
        }
예제 #2
0
        //EDIT EVENT
        public async Task <bool> EditEvent(EventEditDTO dto)
        {
            var rao = _mapper.Map <EventEditRAO>(dto);

            if (await _repository.EditEvent(rao))
            {
                return(true);
            }
            return(false);
        }
예제 #3
0
        private void Edit(EventDisplayModel eventDisplayModel, IEnumerable <ParticipantBaseModel> allParticipants)
        {
            EventManageViewModel viewModel = new EventManageViewModel(eventDisplayModel, allParticipants);
            EventManageControl   control   = new EventManageControl(viewModel);
            Window window = WindowFactory.CreateByContentsSize(control);

            viewModel.InfoViewModel.EventEdited += (s, e) =>
            {
                EventEditModel eventEditModel = e.Event;
                EventEditDTO   eventEditDTO   = Mapper.Map <EventEditModel, EventEditDTO>(eventEditModel);

                using (IEventService service = factory.CreateEventService())
                {
                    ServiceMessage serviceMessage = service.Update(eventEditDTO);
                    RaiseReceivedMessageEvent(serviceMessage);

                    if (serviceMessage.IsSuccessful)
                    {
                        Notify();
                    }
                }
            };
            viewModel.EventParticipantViewModel.EventEdited += (s, e) =>
            {
                EventEditModel eventEditModel = e.Event;
                EventEditDTO   eventEditDTO   = Mapper.Map <EventEditModel, EventEditDTO>(eventEditModel);

                using (IEventService service = factory.CreateEventService())
                {
                    ServiceMessage serviceMessage = service.UpdateParticipants(eventEditDTO);
                    RaiseReceivedMessageEvent(serviceMessage);

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

            window.Show();
        }
예제 #4
0
 public ServiceMessage UpdateParticipants(EventEditDTO eventEditDTO)
 {
     return(new ServiceMessage("No permisssions", false));
 }
예제 #5
0
        public ServiceMessage UpdateParticipants(EventEditDTO eventEditDTO)
        {
            string message = "";
            bool   success = true;

            string   sportName                        = eventEditDTO.SportName;
            string   tournamentName                   = eventEditDTO.TournamentName;
            DateTime dateOfTournamentStart            = eventEditDTO.DateOfTournamentStart;
            DateTime dateOfEvent                      = eventEditDTO.DateOfEvent;
            List <ParticipantBaseDTO> participants    = eventEditDTO.Participants;
            List <ParticipantBaseDTO> newParticipants = eventEditDTO.NewParticipants;

            if (success = Validate(eventEditDTO, ref message))
            {
                if (newParticipants != null && newParticipants.Count > 1)
                {
                    try
                    {
                        TournamentEntity tournamentEntity = unitOfWork.Tournaments.Get(tournamentName, sportName, dateOfTournamentStart);
                        if (tournamentEntity != null)
                        {
                            IEnumerable <ParticipantEntity> oldParticipantEntities = participants
                                                                                     .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName))
                                                                                     .ToList();

                            EventEntity eventEntity = unitOfWork
                                                      .Events
                                                      .Get(sportName, tournamentName, dateOfEvent, oldParticipantEntities);
                            if (eventEntity != null)
                            {
                                IEnumerable <ParticipantEntity> newParticipantEntities = newParticipants
                                                                                         .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName));

                                bool sportValidated = true;

                                SportEntity sportEntity = tournamentEntity.Sport;
                                if (sportEntity.IsDual)
                                {
                                    if (newParticipantEntities.Count() != 2)
                                    {
                                        message        = "Sport is dual. Only 2 participants allowed";
                                        success        = false;
                                        sportValidated = false;
                                    }
                                }

                                if (sportValidated)
                                {
                                    var added   = newParticipantEntities.Except(oldParticipantEntities).ToList();
                                    var deleted = oldParticipantEntities.Except(newParticipantEntities).ToList();

                                    bool anyParticipantBusy = added
                                                              .Any(p => unitOfWork.Participants.IsBusyOn(p.Id, dateOfEvent));
                                    if (!anyParticipantBusy)
                                    {
                                        var deletedParticipations = eventEntity
                                                                    .Participations
                                                                    .Where(part => deleted.Select(p => p.Id).Contains(part.ParticipantId))
                                                                    .ToList();

                                        foreach (var participation in deletedParticipations)
                                        {
                                            eventEntity.Participations.Remove(participation);
                                        }
                                        foreach (var participant in added)
                                        {
                                            eventEntity.Participations.Add(new ParticipationEntity
                                            {
                                                EventId       = eventEntity.Id,
                                                ParticipantId = participant.Id
                                            });
                                        }

                                        unitOfWork.Commit();

                                        message = "Changed participants of event";
                                    }
                                    else
                                    {
                                        message = "One or more participant is busy this date";
                                        success = false;
                                    }
                                }
                            }
                            else
                            {
                                message = "Such event was not found";
                                success = false;
                            }
                        }
                        else
                        {
                            message = "Such tournament was not found";
                            success = false;
                        }
                    }
                    catch (Exception ex)
                    {
                        message = ExceptionMessageBuilder.BuildMessage(ex);
                        success = false;
                    }
                }
                else
                {
                    message = "Invalid count of participants";
                    success = false;
                }
            }

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