private Attendee CreateAttendeeFromCommand(RegisterAttendeeCommand command) { return(new Attendee { FirstName = command.FirstName, LastName = command.LastName, Email = command.Email, Company = command.Company }); }
protected async override Task <IResponse <RegisterAttendeeResult> > HandleAsync(RegisterAttendeeCommand command, CancellationToken cancellationToken) { var workshop = await Context.WorkshopsQueryRepository.Include(x => x.Attendees).SingleOrDefaultAsync(x => x.Id == command.WorkshopId); if (workshop == null) { return(Response.Fail <RegisterAttendeeResult>($"Workshop with id: '{command.WorkshopId}' does not exist", ErrorMessageType.NotFound)); } var attendee = CreateAttendeeFromCommand(command); var registerResponse = workshop.RegisterAttendee(attendee); if (!registerResponse.IsSuccessFull()) { return(Response.Fail <RegisterAttendeeResult>(registerResponse.Error.Message, registerResponse.Error.Type)); } Context.WorkshopsCommandRepository.Update(workshop); await Context.SaveChangesAsync(); return(Response.Ok(new RegisterAttendeeResult(attendee.Id))); }