private async void DeletePassenger_Click(object sender, RoutedEventArgs e) { if (PassengersView.Passengers.SelectedItem is null) { MessageBox.Show("No ha seleccionado ningún pasajero.", "Advertencia", MessageBoxButton.OK, MessageBoxImage.Information); return; } string ticket_number = (PassengersView.Passengers.SelectedItem as Ticket).Number; if (await MainWindow.Client.Send(TypeCommand.Delete, TypeData.Ticket, ticket_number)) { ServerAnswer answer = await MainWindow.Client.RecieveServerAnswer(); if (answer == ServerAnswer.SuccessfullyRemoved) { MessageBox.Show("Pasajero eliminado con éxito.", "Exito", MessageBoxButton.OK, MessageBoxImage.Information); CurrentTransportForm.RemoveTicket(ticket_number); CurrentTransportForm.UpdateTotalValue(); TotalTransportForm.Text = "Total planilla: " + CurrentTransportForm.TotalValue.ToString(); PassengersView.Passengers.Items.Refresh(); } else { MessageBox.Show("Pasajero no eliminado, verifique si lo elimino anteriormente.", "Error", MessageBoxButton.OK, MessageBoxImage.Warning); } } }
static void TestProactive() { var answer = new ServerAnswer() { user_id = "UNJN2HTDH:TNPMJ4WV7", action = "answers", answer = "Hey", answer_id = 1, certainty = 1.1, chatbot_temp_id = 1, question = "Hay", question_id = 2, status_code = 0, status_msg = "OK" }; var answer_questions = new List <ServerQuestion>(); answer_questions.Add(new ServerQuestion()); var questions = new ServerQuestionsMessage() { user_id = "", action = Actions.Questions, answer_questions = answer_questions, status_code = 0, status_msg = "" }; var json = JsonSerializer.Serialize <ServerQuestionsMessage>(questions); var done = con.SendMessageToEndPointAsync(json, Actions.Questions).Result; con.StoreMessageFromServerAsync(json).Wait(); Console.WriteLine(done); }
public override object HandleCommand() { ServerAnswer answer = ServerAnswer.InvalidCommand; switch (DataPacket.Command.TypeData) { case TypeData.Person: PersonService personService = new PersonService(); answer = (personService.Save(DataPacket.Data as Person)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.Employee: EmployeeService employeeService = new EmployeeService(); answer = (employeeService.Save(DataPacket.Data as Employee)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.AdministrativeEmployee: AdministrativeEmployeeService administrativeEmployeeService = new AdministrativeEmployeeService(); answer = (administrativeEmployeeService.Save(DataPacket.Data as AdministrativeEmployee)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.BankDraft: BankDraftService bankDraftService = new BankDraftService(); answer = (bankDraftService.Save(DataPacket.Data as BankDraft)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.Commend: CommendService commendService = new CommendService(); answer = (commendService.Save(DataPacket.Data as Commend)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.Route: RouteService routeService = new RouteService(); answer = (routeService.Save(DataPacket.Data as Route)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.Vehicle: VehicleService vehicleService = new VehicleService(); answer = (vehicleService.Save(DataPacket.Data as Vehicle)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; break; case TypeData.TransportForm: case TypeData.Ticket: TransportFormService transportFormService = new TransportFormService(); if (DataPacket.Command.TypeData == TypeData.TransportForm) { answer = (transportFormService.Save(DataPacket.Data as TransportForm)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; } else { answer = (transportFormService.Save(DataPacket.Data as Ticket)) ? ServerAnswer.SaveSuccessful : ServerAnswer.DataAlreadyRegistered; } break; } return(answer); }
private async void HandleServerAnswer() { ServerAnswer answer = await MainWindow.Client.RecieveServerAnswer(); if (answer != ServerAnswer.SaveSuccessful) { MessageBox.Show("Pasajero no registrado. Revise el estado de su conexion.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); CurrentTransportFormUserControl.CurrentTransportForm.Tickets.Remove(CurrentTransportFormUserControl.CurrentTransportForm.Tickets.Last()); } _afterRegister?.AfterRegister(); }
private async void HandleServerAnswer() { ServerAnswer answer = await MainWindow.Client.RecieveServerAnswer(); if (answer == ServerAnswer.SaveSuccessful) { MessageBox.Show("Datos guardados"); } else { MessageBox.Show("Error al guardar los datos"); } }
private async void HandleServerAnswer() { ServerAnswer answer = await MainWindow.Client.RecieveServerAnswer(); if (answer == ServerAnswer.SaveSuccessful) { MessageBox.Show("Datos guardados con exito"); } else { MessageBox.Show("Vehiculo ya registrado"); } }
private async void IsFirstApplicationStart() { ServerAnswer answer = await Client.RecieveServerAnswer(); if (answer == ServerAnswer.IsTheFirstApplicationStart) { Dispatcher.Invoke(() => SetMainPanel(new RegisterAdministrativeEmployeeUserControl(this))); } else { Dispatcher.Invoke(() => ShowLoginPanel()); } }
private async void HandleServerAnswer() { ServerAnswer answer = await MainWindow.Client.RecieveServerAnswer(); if (answer == ServerAnswer.SaveSuccessful) { MessageBox.Show("Datos guardadados", "Resultado", MessageBoxButton.OK, MessageBoxImage.Information); } else if (answer == ServerAnswer.DataAlreadyRegistered) { MessageBox.Show("Error al guardar los datos", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private async void HandleServerAnswer() { ServerAnswer answer = await MainWindow.Client.RecieveServerAnswer(); if (answer == ServerAnswer.SaveSuccessful) { MessageBox.Show("Registro exitoso"); } else { MessageBox.Show("Datos ya registrados"); } }
public async Task <IActionResult> Post(ServerAnswer answer) { if (answer.answer_id > 0 && answer.answer != null) { this._messageForUser = this._answerMsg; this._messageForUser += "\nYou asked: '" + answer.question + "'"; this._messageForUser += " Well: " + answer.answer; await NotifyUser(answer.user_id); // Let the caller know proactive messages have been sent return(ReturnAccepted()); } // No reason to send the message now. return(ReturnNotImplemented()); }
public static bool TryCreateUser(string fullName, string login, string password, out string errorText) { string[] fullNameArr = fullName.Split(); if (fullNameArr.Length is 2 or 3) { try { ServerAnswer answer = EstablishConnection(new RequestToServer( new User(fullNameArr[0], fullNameArr[1], fullNameArr.Length is 3 ? fullNameArr[2] : null, login, password), RequestToServer.Request.Create)); errorText = answer.CauseOfProblems; return(answer.SuccessOfOperation); } catch (Exception) { errorText = "Возникли проблемы при подключении к серверу."; } }
public override object HandleCommand() { ServerAnswer result = ServerAnswer.FailedModification; switch (DataPacket.Command.TypeData) { case TypeData.Employee: break; case TypeData.AdministrativeEmployee: break; case TypeData.BankDraft: break; case TypeData.Commend: break; case TypeData.Route: break; case TypeData.TransportForm: KeyValuePair <string, Dictionary <FinalcialInformationType, decimal> > valuesToUpdate = (KeyValuePair <string, Dictionary <FinalcialInformationType, decimal> >)DataPacket.Data; TransportFormService transportFormService = new TransportFormService(); if (transportFormService.UpdateFinancialInformation(valuesToUpdate.Key, valuesToUpdate.Value)) { result = ServerAnswer.SuccessfullyModified; } break; case TypeData.Vehicle: break; case TypeData.Ticket: break; default: break; } return(result); }
// обмен данными с сервером в формате XML // nCom - номер команды // sPar1 // nTOutRead - таймаут на ожидание ответа от сервера public string ExchgSrv(string nCom, string sPar1, string sDop, LoadFromSrv dgRead, DataSet dsTrans, ref int ret, int nTOutRead, int nBufSize) { string sOutFileXML = "", sC, sHost, sAdr, sErr; int nPort; SocketStream.ASRWERROR nRErr; System.IO.Stream stm = null; ret = AppC.RC_CANCEL; ServerRet = AppC.EMPTY_INT; if (xMF.xCLoad != null) { xMF.xCLoad.xLastSE = this; xMF.xCLoad.sFileFromSrv = ""; } SelSrvPort(nCom, sPar1, out sHost, out nPort); sAdr = sHost + ":" + nPort.ToString(); sErr = sAdr + "-нет соединения!"; Cursor.Current = Cursors.WaitCursor; try { CurSocket = new SocketStream(sHost, nPort); if (!TestConn(false, xMF.xBCScanner, xMF.xFPan)) { TraiceWiFi(sErr); //throw new System.Net.Sockets.SocketException(11053); } else { //MessageBox.Show("Good reset!"); } //TraiceWiFi(nCom + " - перед Connect"); stm = CurSocket.Connect(); // поток создан, отправка команды sErr = sAdr + "-команда не отправлена"; byte[] baCom = SetCommand2Srv(nCom, sPar1, sDop); //stm.Write(baCom, 0, baCom.Length); //stm.Write(AppC.baTermCom, 0, AppC.baTermCom.Length); // 20 секунд на запись команды CurSocket.ASWriteS.TimeOutWrite = 1000 * 10; CurSocket.ASWriteS.BeginAWrite(baCom, baCom.Length); if ((dsTrans != null) || (XMLPars != null)) {// передача данных при выгрузке //sErr = sAdr + "-ошибка выгрузки"; //dsTrans.WriteXml(stm, XmlWriteMode.IgnoreSchema); //sErr = sAdr + "-ошибка завершения"; sErr = sAdr + "-ошибка выгрузки"; MemoryStream mst = new MemoryStream(); if (dsTrans != null) { dsTrans.WriteXml(mst, XmlWriteMode.IgnoreSchema); } if (XMLPars != null) { mst.Write(XMLPars, 0, XMLPars.Length); } // терминатор сообщения mst.Write(AppC.baTermMsg, 0, AppC.baTermMsg.Length); byte[] bm1 = mst.ToArray(); mst.Close(); // 60 секунд на запись данных CurSocket.ASWriteS.TimeOutWrite = 1000 * 180; CurSocket.ASWriteS.BeginAWrite(bm1, bm1.Length); } else { sErr = sAdr + "-ошибка завершения"; // 10 секунд на запись терминатора сообщения CurSocket.ASWriteS.TimeOutWrite = 1000 * 30; // терминатор сообщения CurSocket.ASWriteS.BeginAWrite(AppC.baTermMsg, AppC.baTermMsg.Length); } //int nCommLen = 0; //byte[] bAns = ReadAnswerCommand(stm, ref nCommLen); //sC = Encoding.UTF8.GetString(bAns, 0, nCommLen - AppC.baTermCom.Length); sErr = sAdr + "-нет ответа сервера!"; // 120 секунд на чтение ответа //m_ssExchg.ASReadS.TimeOutRead = 1000 * 120; //m_ssExchg.ASReadS.BufSize = 256; //nRErr = m_ssExchg.ASReadS.BeginARead(bUseFileAsBuf, 1000 * nTOutRead); if (nBufSize > 0) { CurSocket.ASReadS.BufSize = nBufSize; } nRErr = CurSocket.ASReadS.BeginARead(1000 * nTOutRead); switch (nRErr) { case SocketStream.ASRWERROR.RET_FULLBUF: // переполнение буфера sErr = " длинная команда"; throw new System.Net.Sockets.SocketException(10061); case SocketStream.ASRWERROR.RET_FULLMSG: // сообщение полностью получено sC = CurSocket.ASReadS.GetMsg(); break; default: TraiceWiFi("Сетевая ошибка (чтение ответа)"); throw new System.Net.Sockets.SocketException(10061); } sErr = sAdr + "-ошибка чтения"; //Dictionary<string, string> aComm = SrvCommandParse(sC); ServerAnswer = Srv.SrvAnswerParParse(sC); SyncTimeWithSrv(); if (ServerAnswer.ContainsKey("PAR")) { StringAnsPars = ServerAnswer["PAR"]; StringAnsPars = StringAnsPars.Substring(1, StringAnsPars.Length - 2); AnswerPars = Srv.SrvAnswerParParse(StringAnsPars, new char[] { ',' }); } //TraiceWiFi("Ответ получен..."); ServerRet = int.Parse(ServerAnswer["RET"]); if ((ServerAnswer["COM"] == nCom) && ((ServerRet == AppC.RC_OK) || (ServerRet == AppC.RC_NEEDPARS) || (ServerRet == AppC.RC_HALFOK))) { CurSocket.ASReadS.OutFile = ""; if (ServerRet == AppC.RC_NEEDPARS) { CurSocket.ASReadS.TermDat = AppC.baTermMsg; if (CurSocket.ASReadS.BeginARead(true, 1000 * nTOutRead) == SocketStream.ASRWERROR.RET_FULLMSG) { //TraiceWiFi("Доп.Данные получены..."); sOutFileXML = CurSocket.ASReadS.OutFile; } else { TraiceWiFi("Сетевая ошибка (чтение данных)"); throw new System.Net.Sockets.SocketException(10061); } } if (dgRead != null) { dgRead(CurSocket, ServerAnswer, dsTrans, ref sErr, ServerRet); } try { sErr = ServerAnswer["MSG"]; } catch { sErr = "OK"; } //dgRead(m_ssExchg, aComm, dsTrans, ref sErr, nRetSrv); //else //{ // sErr = "OK"; //} } else { if (ServerAnswer["MSG"] != "") { sErr = ServerAnswer["MSG"]; } else { sErr = sAdr + "\n Отложено выполнение"; } } ret = ServerRet; } catch (Exception e) { //sC = e.Message; sErr = e.Message; TraiceWiFi(sErr); ret = 3; } finally { CurSocket.Disconnect(); Cursor.Current = Cursors.Default; if (ServerRet == AppC.RC_NEEDPARS) { if (Srv.ExchangeContext.ExchgReason == AppC.EXCHG_RSN.NO_EXCHG) { Srv.ExchangeContext.ExchgReason = AppC.EXCHG_RSN.SRV_INIT; Srv.ExchangeContext.CMD_EXCHG = nCom; DialogResult xDRslt = xMF.CallDllForm(xMF.sExeDir + "SGPF-Univ.dll", true, new object[] { this, nCom, AppC.R_PARS, sOutFileXML }); Srv.ExchangeContext.ExchgReason = AppC.EXCHG_RSN.NO_EXCHG; if (xDRslt == DialogResult.OK) { } } } } return(sErr); }
private async Task <DialogTurnResult> DispatchStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { // Call LUIS and gather any potential booking details. (Note the TurnContext has the response to the prompt.) Debug.WriteLine(stepContext.Context); Debug.WriteLine(cancellationToken); var message = stepContext.Context; var qnaResult = await _botServices.QnAMakerService.GetAnswersAsync(message); var luisResult = await _botServices.LuisService.RecognizeAsync <LuisContactModel>(message, cancellationToken); var thresholdScore = 0.80; // Check if score is too low, then it is not understood. if ((luisResult.TopIntent().score < thresholdScore || (luisResult.TopIntent().score > thresholdScore && luisResult.TopIntent().intent == LuisContactModel.Intent.None)) && (qnaResult.FirstOrDefault()?.Score *2 ?? 0) < thresholdScore) { var askAgain = "I can't seem to find my brain ... Could you please ask it again later?"; // Responses when no answer available List <string> notUnderstoodResponses = new List <string>(new String[] { "I'll have to look that up. I'll let you know when I found something!", "I will ask someone. I'll let you know when I got an answer.", "Hmmm. Good question. Give me some time and I will try to figure it out. I will keep you updated!" }); var notUnderstood = notUnderstoodResponses[random.Next(notUnderstoodResponses.Count)]; // Responses on timeout List <string> answerLateResponse = new List <string>(new String[] { "It's taking longer than I'd expect to find an answer. " + "I'm not that old though. I will notify you when I'm ready.", "I thought I was smart and quick, but right now I only seem to be smart. " + "Anyway, you'll hear from me when I got something!", "I'm sorry. I'm having trouble finding an answer right now. It seems like " + "I'm not perfect after all. However, I'll notify you when I found an answer." }); var answerLate = answerLateResponse[random.Next(answerLateResponse.Count)]; // Responses to nonsense input List <string> responsesToNonsense = new List <string>(new String[] { "That doesn't seem to make sense to me.", "I'm sorry, I didn't understand you.", "You might have made a typo there. Could you try again?", "I sometimes really don\'t get what you mean.", "You lost me there.", "I guess I\'m not supposed to understand that? Am I?" }); var responseToNonsense = responsesToNonsense[random.Next(responsesToNonsense.Count)]; // Responses to offensive input List <string> responsesToOffensive = new List <string>(new String[] { "I find your language quite upsetting.", "Please do watch your language, we want to be nice to other people don't we?", "I'll pretend I didn't read that. Please watch your language.", "I personally don\'t speak that kind of language.", "Maybe you could rephrase that?", "I would not say it is proper to say that.", "As a gentle bot I would not dare to talk like that.", "O my goodness. Gentle bots would not dare to talk like that." }); var responseToOffensive = responsesToOffensive[random.Next(responsesToOffensive.Count)]; //sending to server ServerAnswer answer = null; try { answer = await Task.Run(() => conchatbot.SendQuestionAndWaitForAnswer(Globals.userID, message.Activity.Text, Globals.timeout)); } catch (Exception e) { Debug.WriteLine("Exception while requesting questions:\n" + e); // If you want to send the exception to the user. //await stepContext.Context.SendActivityAsync(MessageFactory.Text(e.ToString()), cancellationToken); await stepContext.Context.SendActivityAsync(MessageFactory.Text(askAgain), cancellationToken); return(await stepContext.NextAsync(null, cancellationToken)); } if (answer == null) { await stepContext.Context.SendActivityAsync(MessageFactory.Text(answerLate), cancellationToken); } else if (answer.status_code == (int)ServerStatusCode.Nonsense) { // nonsense await stepContext.Context.SendActivityAsync(MessageFactory.Text(responseToNonsense), cancellationToken); } else if (answer.status_code == (int)ServerStatusCode.Offensive) { // offensive await stepContext.Context.SendActivityAsync(MessageFactory.Text(responseToOffensive), cancellationToken); } else if (answer.answer_id < 0 || answer.answer == "" || answer == null) { await stepContext.Context.SendActivityAsync(MessageFactory.Text(notUnderstood), cancellationToken); } else { await stepContext.Context.SendActivityAsync(MessageFactory.Text(answer.answer), cancellationToken); this._answer_id = answer.answer_id; this._question_id = answer.question_id; //to ask the user if the answer was or was not a good answer to his/her question try { return(await stepContext.PromptAsync(nameof(ChoicePrompt), new PromptOptions { Prompt = MessageFactory.Text("Was this a good answer? I would be grateful if you could press the YES button!"), RetryPrompt = MessageFactory.Text("Please press one of the following buttons."), Choices = ChoiceFactory.ToChoices(feedbackChoices), Style = ListStyle.HeroCard, }, cancellationToken)); } catch (Exception e) { Console.WriteLine(e); } } return(await stepContext.NextAsync(null, cancellationToken)); } // Check on scores between Luis and Qna. if (luisResult.TopIntent().intent != LuisContactModel.Intent.None && luisResult.TopIntent().score >= (qnaResult.FirstOrDefault()?.Score ?? 0)) { // Block proactive messaging while in LUIS dialog. Globals.connector.BlockProactiveMessagingForUser(Globals.userID); // Start the Luis Weather dialog. return(await stepContext.BeginDialogAsync(nameof(LuisContactDialog), luisResult, cancellationToken)); } else { // Show a Qna message. var qnaMessage = MessageFactory.Text(qnaResult.First().Answer, qnaResult.First().Answer, InputHints.ExpectingInput); await stepContext.Context.SendActivityAsync(qnaMessage, cancellationToken); return(await stepContext.NextAsync(null, cancellationToken)); } }