public async Task <Result <ConfirmEmailCreateModel> > ConfirmUserAsync(ConfirmEmailCreateModel model) { var userForConfirm = await _db.UserLogins .AsNoTracking() .FirstOrDefaultAsync(x => x.Login == model.EmailAddress && x.Type == UserLoginType.Email); if (userForConfirm == null) { return(new Result <ConfirmEmailCreateModel>("User not exist")); } if (userForConfirm.IsConfirm) { return(new Result <ConfirmEmailCreateModel>("User is already confirmed")); } if (userForConfirm.TokenConfirm != model.Token) { return(new Result <ConfirmEmailCreateModel>("Token not confirmed")); } userForConfirm.IsConfirm = true; userForConfirm.ConfirmAt = DateTime.Now; userForConfirm.ConfirmFromDevice = _detectClient.GetClientInfo(model); _db.UserLogins.Update(userForConfirm); await _db.SaveChangesAsync(); return(new Result <ConfirmEmailCreateModel>()); }
public async Task <IActionResult> ConfirmAsync([FromBody] ConfirmEmailCreateModel model) { var res = await _authenticationService.ConfirmUserAsync(model); if (res.IsSuccessed) { return(ReturnOk(null)); } return(ReturnBadRequest(res.Error)); }