public async Task <Response> Handle(DelegateAcademicRequest request, CancellationToken cancellationToken) { if (request == null) { AddNotification("Request", "A requisição não pode ser nula!"); return(new Response(this)); } if (!_academicRepository.Exists(request.IdAcademic) || !_subjectRepository.Exists(request.IdSubject)) { AddNotification("Inexistente", "Acadêmico ou matéria não existente!"); return(new Response(this)); } if (_adminRepository.ExistsRelationship(request.IdAcademic, request.IdSubject)) { AddNotification("Relacionamento", "O acadêmico já foi inserido nessa matéria!"); return(new Response(this)); } _adminRepository.DelegateAcademic(request.IdAcademic, request.IdSubject); var response = new Response(this, new { Message = "Acadêmico inserido com sucesso!" }); return(await Task.FromResult(response)); }
public async Task <Response> Handle(RemoveAcademicRequest request, CancellationToken cancellationToken) { //Verifica se a requisição é nula if (request == null) { AddNotification("Resquest", "A requisição não pode ser nula!"); return(new Response(this)); } //Verifica se o acadêmico existe if (!_academicRepository.Exists(request.Id)) { AddNotification("Acadêmico inválido", "O acadêmico informado não foi encontrado!"); return(new Response(this)); } //Valida a requisição if (IsInvalid()) { return(new Response(this)); } //Remove o acadêmico do banco _unityOfWork.BeginTransaction(); _academicRepository.Remove(request.Id); _unityOfWork.Commit(); //Cria o objeto da resposta var result = new { request.Id }; var response = new Response(this, result); //Retorna a resposta return(await Task.FromResult(response)); }
public async Task <Response> Handle(GetAppointmentsClosedRequest request, CancellationToken cancellationToken) { if (request == null) { AddNotification("Request", "A requisição não pode ser nula!"); return(new Response(this)); } if (!_academicRepository.Exists(request.AcademicId)) { AddNotification("Inexistente", "Acadêmico não encontrado!"); return(new Response(this)); } List <Entities.Appointment> appointments = _academicRepository.GetAppointmentsClosed(request.AcademicId); var response = new Response(this, appointments); return(await Task.FromResult(response)); }