public async Task <GroupDto> Handle(GetGroupQuery getGroupQuery, CancellationToken cancellationToken) { _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, getGroupQuery.Id); var group = await _groupRepository.GetGroupByIdAsync(getGroupQuery.Id); var mappedGroup = _mapper.Map <GroupDO, GroupDto>(group); return(mappedGroup); }
public async Task <MeetingDto> Handle(GetMeetingQuery getMeetingQuery, CancellationToken cancellationToken) { var meeting = await _meetingRepository.GetMeetingByIdAsync(getMeetingQuery.Id); _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, meeting.GroupID); var mappedMeeting = _mapper.Map <MeetingDO, MeetingDto>(meeting); return(mappedMeeting); }
public async Task <string> Handle(UpdateMeetingCommand request, CancellationToken cancellationToken) { var meeting = await _meetingRepository.GetMeetingByIdAsync(request.ID); _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, meeting.GroupID); var changes = _mapper.Map <MeetingDO>(request); var updated = _mapper.Map(meeting, changes); await _meetingRepository.UpdateMeetingAsync(updated); return(request.ID); }
public async Task <string> Handle(DeleteMeetingCommand request, CancellationToken cancellationToken) { var meeting = await _meetingRepository.GetMeetingByIdAsync(request.Id); _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, meeting.GroupID); await _meetingRepository.DeleteMeetingAsync(request.Id); await UpdateGroupAsync(meeting); return(request.Id); }
public async Task <DateTime> Handle(GetDateRecomendationQuery request, CancellationToken cancellationToken) { var meeting = await _meetingRepository.GetMeetingByIdAsync(request.MeetingID); _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, meeting.GroupID); if (meeting is null) { throw new NotFoundException(); } var users = await _userRepository.GetUsersByGroupIdAsync(meeting.GroupID); return(_datePickerService.PickDate(GetDates(users))); }
public async Task <string> Handle(UpdateGroupCommand request, CancellationToken cancellationToken) { _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, request.ID); var group = await _groupRepository.GetGroupByIdAsync(request.ID); var changes = _mapper.Map <GroupDO>(request); var updated = _mapper.Map(changes, group); await _groupRepository.UpdateGroupAsync(updated); await UpdateUsersAsync(request.ID, request.MemberIDs, group.MemberIDs); return(request.ID); }
public async Task <string> Handle(DeleteGroupCommand request, CancellationToken cancellationToken) { _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, request.Id); var group = await _groupRepository.GetGroupByIdAsync(request.Id); await DeleteMeetingsAsync(group.MeetingIDs); await _groupRepository.DeleteGroupAsync(request.Id); await UpdateUsersAsync(request.Id); return(request.Id); }
public async Task <string> Handle(CreateMeetingCommand request, CancellationToken cancellationToken) { _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, request.GroupID); var meeting = _mapper.Map <MeetingDO>(request); var user = _httpContextAccessor.HttpContext.Items["Account"] as UserDO; meeting.OrganiserID = user.ID; await _recomendationService.GetRecomendations(meeting); await _meetingRepository.AddMeetingAsync(meeting); await UpdateGroupAsync(meeting); return(meeting.ID); }
public async Task <IEnumerable <MealDto> > Handle(GetMealRecomendationQuery request, CancellationToken cancellationToken) { var meeting = await _meetingRepository.GetMeetingByIdAsync(request.MeetingID); _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, meeting.GroupID); if (meeting is null) { throw new NotFoundException(); } var users = await _userRepository.GetUsersByGroupIdAsync(meeting.GroupID); var preferences = users.Select(x => x.MealPreference).ToList(); var meals = await _foodRecomendationService.GetMealRecomendations(preferences); return(meals.Select(x => _mapper.Map <MealDto>(x)).ToList()); }
public async Task <IEnumerable <MovieDto> > Handle(GetMovieRecomendationQuery request, CancellationToken cancellationToken) { var meeting = await _meetingRepository.GetMeetingByIdAsync(request.MeetingID); _authorizationService.AuthorizeGroupAccessOrThrow(_httpContextAccessor.HttpContext, meeting.GroupID); if (meeting is null) { throw new NotFoundException(); } var movies = await _movieRecomendationService.GetMovieRecomendations(await GetPreferencesAsync(meeting.GroupID)); await AddMoviesToRepositoryAsync(movies); await UpdateMeetingAsync(meeting, movies); return(movies.Select(x => _mapper.Map <MovieDto>(x)).ToList()); }