public override async Task <ResetResp> Reset(ResetReq request, ServerCallContext context) { var resetSource = new TaskCompletionSource <bool>(); var options = request.Options; var user = context.GetHttpContext().User; if (!await _authorizationProvider.CheckAccessAsync(user, ResetOperation, context.CancellationToken) .ConfigureAwait(false)) { throw AccessDenied(); } var name = options.Name; var runAs = new ProjectionManagementMessage.RunAs(user); var envelope = new CallbackEnvelope(OnMessage); _queue.Publish(new ProjectionManagementMessage.Command.Reset(envelope, name, runAs)); await resetSource.Task.ConfigureAwait(false); return(new ResetResp()); void OnMessage(Message message) { if (!(message is ProjectionManagementMessage.Updated)) { resetSource.TrySetException(UnknownMessage <ProjectionManagementMessage.Updated>(message)); return; } resetSource.TrySetResult(true); } }
public override async Task <ResetResp> Reset(ResetReq request, ServerCallContext context) { var resetSource = new TaskCompletionSource <bool>(); var options = request.Options; var user = await GetUser(_authenticationProvider, context.RequestHeaders).ConfigureAwait(false); var name = options.Name; var runAs = new ProjectionManagementMessage.RunAs(user); var envelope = new CallbackEnvelope(OnMessage); _queue.Publish(new ProjectionManagementMessage.Command.Reset(envelope, name, runAs)); await resetSource.Task.ConfigureAwait(false); return(new ResetResp()); void OnMessage(Message message) { if (!(message is ProjectionManagementMessage.Updated)) { resetSource.TrySetException(UnknownMessage <ProjectionManagementMessage.Updated>(message)); return; } resetSource.TrySetResult(true); } }
protected bool IsUserRegistred(ResetReq msg) { if (msg.type == 0) { QuerySelectClientByEmailNick query = new QuerySelectClientByEmailNick("", msg.email, DBUtils.GetDBConnection(), null); query.Execute(); return(query.clients.Count != 0); } else { QuerySelectSalerByEmailNick query = new QuerySelectSalerByEmailNick("", msg.email, DBUtils.GetDBConnection(), null); query.Execute(); return(query.salers.Count != 0); } }
public ResetAck OnResetStart(ResetReq msg) { if (!IsValidEmail(msg.email)) { return(new ResetAck(ResetAck.Result.FAIL_INCORRECT_EMAIL)); } DropExpiredCodes(); ResetRequest req = GetRequestByEmail(msg.email); if (req != null) { req.createdTime = DateTime.Now; } else if (!IsUserRegistred(msg)) { return(new ResetAck(ResetAck.Result.FAIL_UNREGISTER_USER)); } else { req = new ResetRequest(); req.createdTime = DateTime.Now; req.code = GenerateCode(); req.msg = msg; requests.Add(req); } if (req != null) { try { SendCode(req.msg.email, req.code); } catch { return(new ResetAck(ResetAck.Result.FAIL_INCORRECT_EMAIL)); } return(new ResetAck(ResetAck.Result.SUCCESS)); } return(new ResetAck(ResetAck.Result.UNKNOWN_ERROR)); }
public ResetAck Post([FromBody] ResetReq request) { return(eEngine.GetResetPasswordControl().OnResetStart(request)); }