public async Task <EventVerification> VerifyCodeAsync(VerifyCodeRequest request) { var codeInt = int.Parse(request.Code, System.Globalization.NumberStyles.HexNumber); var item = await _context.EventVerifications .SingleOrDefaultAsync(ci => ci.EventId == request.EventId && ci.EventVerificationId == codeInt); if (item == null) { throw new QueryException( ErrorBuilder.New() .SetMessage("Invalid code or eventId") .SetCode("ID_UNKNOWN") .Build()); } if (item.Status != PresenceStatusEnum.SignedUp) { throw new QueryException( ErrorBuilder.New() .SetMessage("EventVerificationId have already been used") .SetCode("ID_UNKNOWN") .Build()); } item.Status = PresenceStatusEnum.Attend; _context.EventVerifications.Update(item); await _context.SaveChangesAsync(); return(item); }
public async Task Consume(ConsumeContext <SignUpEventSuccessEvent> context) { var ev = await _context.EventVerifications .SingleOrDefaultAsync(ev => ev.UserId == context.Message.UserId && ev.EventId == context.Message.EventId); if (ev == null) { ev = new EventVerification() { EventId = context.Message.EventId, UserId = context.Message.UserId, }; await _context.EventVerifications.AddAsync(ev); await _context.SaveChangesAsync(); } }