public async Task <GetRegisterInfoResponse> GetRegisterInformation(GetRegisterInfoRequest registrationInfoRequest) { Task <GetRegisterInfoResponse> getRegisterInfo = null; try { var register = DbContext.Registers.Include(x => x.Event).FirstOrDefault(x => x.Id == registrationInfoRequest.RegisterId); if (register != null) { if (DateTime.Now > register.Event.Date) { getRegisterInfo = Task.FromResult(new GetRegisterInfoResponse(null, false, "Data do evento expirada.")); return(await getRegisterInfo); } var user = await DbContext.Users.FirstOrDefaultAsync(x => x.Id == register.UserId); getRegisterInfo = Task.FromResult(new GetRegisterInfoResponse(register.EventId, register.Event.Name, register.Event.Date, register.Event.Payed, user.Email, true)); } else { getRegisterInfo = Task.FromResult(new GetRegisterInfoResponse(null, false, "Usuário não está cadastrado no evento.")); } return(await getRegisterInfo); } catch (Exception ex) { List <string> errors = new List <string>(); errors.Add(ex.Message); return(new GetRegisterInfoResponse(errors, false, null));; } }
public async Task <bool> HandleAsync(GetRegisterInfoRequest message, IOutputPort <GetRegisterInfoResponse> outputPort) { var response = await _eventRepository.GetRegisterInformation(message); outputPort.Handle(response.Success ? new GetRegisterInfoResponse(response.EventId, response.EventName, response.EventDate, response.Payed, response.UserEmail, true, response.Message) : new GetRegisterInfoResponse(response.Errors, false, response.Message)); return(response.Success); }