Пример #1
0
        //public abstract Response_SignIn User_SignIn(Request_SignIn request);
        public static Response_SignIn _User_SignIn(Request_SignIn request)
        {
            var result = new Response_SignIn();

            DCT.DCT.Execute(c =>
            {
                var emailHash = CryptographyHelper.StringToSha256String(request.Login, request.Password);
                //Проверка полученных данных
                if (string.IsNullOrWhiteSpace(emailHash) || string.IsNullOrWhiteSpace(request.Login))
                {
                    result.Comment   = "Указан не корректный логин для авторизации";
                    result.StateEnum = Objects.Message.MessageState.NotSuccesfull;
                    return;
                }
                var access = MainDbAPI.UserAccessByLogin(request.Login);
                if (access.LoginHash == emailHash)
                {
                    result.Comment    = "Пользователь успешно авторизирован!";
                    result.HashUID    = emailHash;
                    var session       = MainDbAPI.UserSessionCreate(access.UserProfileId);
                    result.SessionUID = session.Id.ToString();
                    result.StateEnum  = Objects.Message.MessageState.Succesfull;
                }
                else
                {
                    result.Comment   = "Указаны не корректные логин или пароль";
                    result.StateEnum = Objects.Message.MessageState.NotSuccesfull;
                }
            }, continueExceptionMethod: (x, ex) =>
            {
                result.Error     = ex.ToString();
                result.StateEnum = Objects.Message.MessageState.Error;
            });
            return(result);
        }
Пример #2
0
        public void SignIn(Action <bool> callback, string login, string password)
        {
            DCT.DCT.ExecuteAsyncQueue <bool>(c =>
            {
                var result  = false;
                var request = new Request_SignIn()
                {
                    Login    = login,
                    Password = password
                };
                var response = Execute <Request_SignIn, Response_SignIn>(request);
                switch (response.StateEnum)
                {
                case Objects.Message.MessageState.Succesfull:
                    result = true;
                    SetHash(response.HashUID, response.SessionUID);
                    break;

                default:
                    break;
                }
                return(result);
            }, complete: (c, r) => {
                if (callback == null)
                {
                    ConsoleHelper.Send("MainServiceClient", "В методе SignIn не реализован Callback");
                }
                else
                {
                    callback(r);
                }
            });
        }