Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 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);
     }
 }
Пример #4
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));
        }
Пример #5
0
 public ResetAck Post([FromBody] ResetReq request)
 {
     return(eEngine.GetResetPasswordControl().OnResetStart(request));
 }