//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); }
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); } }); }