public static Parser <TToken, IList <TOutput> > Sequence <TToken, TOutput>( this IEnumerable <Parser <TToken, TOutput> > parsers) { return(stream => parsers.Aggregate( Succeed <TToken, IList <TOutput> >(new TOutput[0])(stream), (result, parser) => result.Match( failure: Result.Failure <TToken, IList <TOutput> >, success: (restStream, output) => parser(restStream).Match( failure: Result.Failure <TToken, IList <TOutput> >, success: (restRestStream, parserOutput) => Result.Success(restRestStream, output.Concat(new[] { parserOutput }).ToArray()))))); }
private void HandleMessage(PasswordRequestMessage message) { var verifed = false; var args = new PasswordUserAuthArgs(_session, message.Username, message.Password); if (UserAuth != null) { UserAuth(this, args); verifed = args.Result; } if (verifed) { _session.RegisterService(message.ServiceName, args); Succeed?.Invoke(this, message.ServiceName); _session.SendMessage(new SuccessMessage()); return; } else { _session.SendMessage(new FailureMessage()); // throw new SshConnectionException("Authentication fail.", DisconnectReason.NoMoreAuthMethodsAvailable); } }
private void HandleMessage(PasswordRequestMessage message) { var verifed = false; var args = new UserauthArgs(_session, message.Username, message.Password); if (Userauth != null) { Userauth(this, args); verifed = args.Result; } if (verifed) { _session.RegisterService(message.ServiceName, args); Succeed?.Invoke(this, message.ServiceName); _session.SendMessage(new SuccessMessage()); return; } else { _session.SendMessage(new FailureMessage()); } }
public override int GetHashCode() { int hash = 1; if (Error != 0) { hash ^= Error.GetHashCode(); } if (Succeed != false) { hash ^= Succeed.GetHashCode(); } if (Seed != 0) { hash ^= Seed.GetHashCode(); } if (FloorNumber != 0) { hash ^= FloorNumber.GetHashCode(); } hash ^= playersInfo_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public override int GetHashCode() { int hash = 1; if (Error != 0) { hash ^= Error.GetHashCode(); } if (Succeed != false) { hash ^= Succeed.GetHashCode(); } if (RoomId != 0) { hash ^= RoomId.GetHashCode(); } if (RoomOwnerId != 0) { hash ^= RoomOwnerId.GetHashCode(); } hash ^= playersInfo_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
private void HandleMessage(PublicKeyRequestMessage message) { if (Session._publicKeyAlgorithms.ContainsKey(message.KeyAlgorithmName)) { var verifed = false; var keyAlg = Session._publicKeyAlgorithms[message.KeyAlgorithmName](null); keyAlg.LoadKeyAndCertificatesData(message.PublicKey); var args = new PKUserAuthArgs(base._session, message.Username, message.KeyAlgorithmName, keyAlg.GetFingerprint(), message.PublicKey); UserAuth?.Invoke(this, args); verifed = args.Result; if (!verifed) { _session.SendMessage(new FailureMessage()); return; } if (!message.HasSignature) { _session.SendMessage(new PublicKeyOkMessage { KeyAlgorithmName = message.KeyAlgorithmName, PublicKey = message.PublicKey }); return; } var sig = keyAlg.GetSignature(message.Signature); using (var worker = new SshDataWorker()) { worker.WriteBinary(_session.SessionId); worker.Write(message.PayloadWithoutSignature); verifed = keyAlg.VerifyData(worker.ToByteArray(), sig); } if (verifed && UserAuth != null) { UserAuth(this, args); verifed = args.Result; } if (verifed) { _session.RegisterService(message.ServiceName, args); Succeed?.Invoke(this, message.ServiceName); _session.SendMessage(new SuccessMessage()); return; } else { _session.SendMessage(new FailureMessage()); //throw new SshConnectionException("Authentication fail.", DisconnectReason.NoMoreAuthMethodsAvailable); } } }
public void StartWork() { IsWorking = true; while (IsWorking) { Y -= 10; if (Y <= 100) { Succeed?.Invoke(this); SignalizeAboutSuccess(TimeSpan.FromSeconds(3)); return; } if (_rnd.NextDouble() <= _brokeChance && !IsBroken) { IsBroken = true; Broken?.Invoke(this); return; } Thread.Sleep(200); } }
public override int GetHashCode() { int hash = 1; if (Error != 0) { hash ^= Error.GetHashCode(); } if (Succeed != false) { hash ^= Succeed.GetHashCode(); } if (Uid != 0) { hash ^= Uid.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
private State AddState(IState state, State parentState = null) { State newState; switch (state) { case ParallelState parallelState: newState = new Parallel(stack, state.Name, new ParallelProps()); var branches = new List <IChainable>(); foreach (var childState in parallelState.States) { branches.Add(AddState(childState)); } (newState as Parallel).Branch(branches.ToArray()); break; case IMapState mapState: var firstStateOfMap = AddState(mapState.StartState); newState = new Map(stack, state.Name, new MapProps()).Iterator(firstStateOfMap); break; case IAmazonStateTask amazonState: var parameters = amazonState.Parameters; newState = new CustomState(stack, state.Name, new CustomStateProps { StateJson = new Dictionary <string, object> { { "Type", "Task" }, { "Resource", amazonState.Arn }, { "Parameters", parameters } } }); if (amazonState.ErrorHandlers.Any()) { //(newState as TaskStateBase).Add() } break; case SuccessState successState: newState = new Succeed(stack, state.Name, new SucceedProps { Comment = successState.Comment }); break; default: throw new NotSupportedException(state.GetType().Name); } if (parentState is null) { SMP.Definition = newState; } else { (parentState as INextable).Next(newState); } if (state is ITransitionalState transitionalState && transitionalState.NextState != null) { AddState(transitionalState.NextState, newState); } return(newState); }
public RemoteScenarioView(RemoteScenario scenario) { InitializeComponent(); Refresh(scenario); tbPort.Validation = (v) => EntryViewValidation.UShortValidation().Invoke(v); tbServiceName.TextChanged += (o, e) => ApplyCurrent(); tbSecretCode.PasswordChanged += (o, e) => ApplyCurrent(); tbPort.TextChanged += (o, e) => ApplyCurrent(); tbPassword.PasswordChanged += (o, e) => ApplyCurrent(); tbLogin.TextChanged += (o, e) => ApplyCurrent(); tbHost.TextChanged += (o, e) => ApplyCurrent(); btExitingCredentials.Click += (o, e) => { var credentialsSelect = new ExistingConnectionSelect(ClientFactory.ConnectionCredentials); var dialog = new DialogView(credentialsSelect); credentialsSelect.SelectedCredentialsChanged += (o1, args) => { tbHost.Text = args.Value.Host; tbLogin.Text = args.Value.Login; tbPassword.Password = args.Value.Password; tbPort.Text = args.Value.Port.ToString(); tbSecretCode.Password = args.Value.SecretKey; tbServiceName.Text = args.Value.ServiceName; Modified?.Invoke(); dialog.Close(); }; dialog.Show(); }; btScenariosList.Click += (o, e) => { try { var remoteScenarios = _scenario.GetServer().GetScenariosInfo().Decrypt(_scenario.Credentials.SecretKey).ToArray(); if (!remoteScenarios.Any()) { throw new Exception("На удаленном сервере отсутсвуют сценарии."); } var selectScenarioControl = new RemoteScenarioSelect(remoteScenarios, _scenario.RemoteScenarioId); var dialog = new DialogView(selectScenarioControl); selectScenarioControl.ScenarioInfoSelected += (info) => { dialog.Close(); _scenario.RemoteScenarioId = info.ScenarioId; _scenario.RemoteScenarioName = info.Name; tbScenario.Text = _scenario.RemoteScenarioName; var loadWindowCloseToken = MessageView.ShowLoad("Соединение с удаленным сервером..."); _scenario.InitializeAsync((result) => { loadWindowCloseToken.Cancel(); Dispatcher.BeginInvoke(new Action(() => { if (result) { Modified?.Invoke(); Succeed?.Invoke(); } else { WarningHandler.Error("Невозможно получить список сценариев."); Failed?.Invoke(); } })); }); }; dialog.Show(); } catch (Exception exception) { WarningHandler.Error("Невозможно получить список сценариев.", exception); Failed?.Invoke(); } }; btTest.Click += (o, e) => { var loadWindowCloseToken = MessageView.ShowLoad("Соединение с удаленным сервером..."); _scenario.InitializeAsync((result) => { loadWindowCloseToken.Cancel(); if (result) { MessageView.ShowMessage("Соединение успешно!", "Тест удаленного сценария", Icons.Icon.Check); Dispatcher.BeginInvoke(new Action(() => Succeed?.Invoke())); } else { MessageView.ShowMessage("Невозможно активировать удаленный сценарий!", "Тест удаленного сценария", Icons.Icon.Cancel); Dispatcher.BeginInvoke(new Action(() => Failed?.Invoke())); } }); }; }
public void SignalizeAboutSuccess(TimeSpan time) { Thread.Sleep(time); Succeed?.Invoke(this); StopWork(); }
private IEnumerator LinkEmail(int which) { string url = Link.url + "LinkEmail"; WWWForm form = new WWWForm(); form.AddField("ID", PlayerPrefs.GetString(Link.ID)); form.AddField("fbstats", which); if (which == 1) { form.AddField("Email", EmailText.text); form.AddField("Password", PasswordText.text); } else { form.AddField("Email", FBGo.id + "@fb.com"); form.AddField("Password", FBGo.id + "Fb"); form.AddField("Username", FBGo.name); } WWW www = new WWW(url, form); yield return(www); if (www.error == null) { var jsonString = JSON.Parse(www.text); Debug.Log(jsonString); PlayerPrefs.SetString(Link.FOR_CONVERTING, jsonString["code"]); if (PlayerPrefs.GetString(Link.FOR_CONVERTING) == "1") { PlayerPrefs.SetString("GMode", "0"); if (which == 1) { PlayerPrefs.SetString(Link.EMAIL, EmailText.text); PlayerPrefs.SetString(Link.PASSWORD, PasswordText.text); Email.text = EmailText.text; } else { Email.text = EmailText.text; UsernameA.text = FBGo.name; UsernameB.text = FBGo.name; PlayerPrefs.SetString(Link.EMAIL, FBGo.id + "@fb.com"); PlayerPrefs.SetString(Link.PASSWORD, FBGo.id + "Fb"); PlayerPrefs.SetString("Base64PictureProfile", PlayerPrefs.GetString("Base64PictureProfileFB")); PlayerPrefs.SetString(Link.LOGIN_BY, "FB"); } Debug.Log(www.text); Succeed.SetActive(true); } else if (PlayerPrefs.GetString(Link.FOR_CONVERTING) == "4") { Error.SetActive(true); Error.transform.FindChild("ErrorText").GetComponent <Text>().text = "Email Already Used"; } else if (PlayerPrefs.GetString(Link.FOR_CONVERTING) == "5") { Error.SetActive(true); Error.transform.FindChild("ErrorText").GetComponent <Text>().text = "Insert Your Email Correctly"; } } else { Error.SetActive(true); Error.transform.FindChild("ErrorText").GetComponent <Text>().text = "Submit Failed"; Debug.Log(www.text); } }
internal async void ProcessAsync(object sender, EventArgs e) { try { if (!Enabled) { return; } Logger.Debug("{0}按钮触发", scaleOperator.Name); if (IsBusy) { return; } IsBusy = true; //Progress?.Invoke(this, new ProgressEventArgs("开始工作")); Logger.Debug("开始工作"); Busy?.Invoke(this, new EventArgs()); if (!scaleOperator.IsGratingsOff()) { var config = new LEDMessageShowConfig { FontSize = 0, ShowStyle = 3, ShowSpeed = 8 }; scaleOperator.Display("调整车辆", config); NeedAdjust?.Invoke(this, new EventArgs()); return; } //call remote service to get weight and plate number //Progress?.Invoke(this, new ProgressEventArgs("正在请求重量")); Logger.Debug("[{0}]请求重量", scaleOperator.Name); GetWtResponse resp = await scaleOperator.RestClient.GetWtAsync(scaleOperator.ScaleIP, scaleOperator.InOrOut.ToString()); Logger.Debug("[{0}]返回重量{1}", scaleOperator.Name, resp.wt_num); /*GetWtResponse resp = new GetWtResponse() * { * status = 1, * tk_no = "辽A 88888888", * wt_num = 888.88 * };*/ if (resp.status == "0") { //Progress?.Invoke(this, new ProgressEventArgs("请求重量失败")); Logger.Warn("称重失败"); return; } //Progress?.Invoke(this, new ProgressEventArgs("正在输出到显示屏")); string text = String.Format(scaleOperator.LEDOptions.CPZLMessage.Template, resp.tk_no, resp.wt_num); if (!scaleOperator.Display(text, scaleOperator.LEDOptions.CPZLMessage.ShowConfig)) { //Progress?.Invoke(this, new ProgressEventArgs("输出到显示屏失败")); Logger.Warn("LED显示失败"); //return; } //Progress?.Invoke(this, new ProgressEventArgs("正在抬杆")); Logger.Debug("[{0}]请求抬杆", scaleOperator.Name); GatePassResponse gpResp = await scaleOperator.RestClient.GatePassAsync(scaleOperator.ScaleIP, scaleOperator.InOrOut.ToString(), resp.tk_no, resp.wt_num); Logger.Debug("[{0}]返回抬杆", scaleOperator.Name); /*GatePassResponse gpResp = new GatePassResponse() * { * status = 1 * };*/ if (gpResp.status == "0")//抬杆失败 { //Progress?.Invoke(this, new ProgressEventArgs("抬杆失败")); Logger.Warn("抬杆失败:" + gpResp.reason); //SwitchRelay(false);//no need to call this, it's already red return; } Logger.Info("抬杆成功:"); //Progress?.Invoke(this, new ProgressEventArgs("抬杆成功")); Succeed?.Invoke(this, new EventArgs()); } catch (Exception ex) { //Progress?.Invoke(this, new ProgressEventArgs("发生错误:" + ex.Message)); Logger.Warn("{0}上的本次操作失败:{1}", scaleOperator.Name, ex.ToString()); } finally { IsBusy = false; } }