@@ -5,16 +5,22 @@ interface
55uses
66 System.SysUtils,
77 System.Classes,
8- JS,
98 Web,
109 WEBLib.Graphics,
1110 WEBLib.Controls,
1211 WEBLib.Forms,
1312 WEBLib.Dialogs,
1413 Vcl.Controls,
1514 Vcl.StdCtrls,
16- WEBLib.StdCtrls, WEBLib.ExtCtrls, Data.DB, XData.Web.JsonDataset, XData.Web.Dataset, XData.Web.Client,
17- XData.Web.Connection, WEBLib.DB;
15+ WEBLib.StdCtrls,
16+ WEBLib.ExtCtrls,
17+ Data.DB,
18+ XData.Web.JsonDataset,
19+ XData.Web.Dataset,
20+ XData.Web.Client,
21+ XData.Web.Connection,
22+ WEBLib.DB,
23+ JS;
1824
1925type
2026 TMainView = class (TWebForm)
@@ -39,8 +45,11 @@ TMainView = class(TWebForm)
3945 XDataWebDataSet1Profissao: TStringField;
4046 XDataWebDataSet1Limite: TFloatField;
4147 XDataWebDataSet1Porcentagem: TFloatField;
42- XDataWebDataSet1Ativo: TStringField;
4348 btnListar: TWebButton;
49+ XDataWebDataSet1Ativo: TBooleanField;
50+ btnPost: TWebButton;
51+ btnAlterar: TWebButton;
52+ btnDelete: TWebButton;
4453 procedure lbImportantClick (Sender: TObject);
4554 [Async]
4655 procedure lbWarningClick (Sender: TObject);
@@ -52,7 +61,15 @@ TMainView = class(TWebForm)
5261 procedure btnGetClick (Sender: TObject);
5362 [Async]
5463 procedure btnListarClick (Sender: TObject);
64+ [Async]
65+ procedure btnPostClick (Sender: TObject);
66+ [Async]
67+ procedure btnAlterarClick (Sender: TObject);
68+ [Async]
69+ procedure btnDeleteClick (Sender: TObject);
70+ procedure XDataWebClient1Error (Error: TXDataClientError);
5571 private
72+ function GetClientePreenchido : TJSObject;
5673
5774 public
5875
@@ -89,6 +106,16 @@ procedure TMainView.WebFormCreate(Sender: TObject);
89106 XDataWebConnection1.Open;
90107end ;
91108
109+ procedure TMainView.XDataWebClient1Error (Error: TXDataClientError);
110+ begin
111+ mmTeste.Lines.Clear;
112+ mmTeste.Lines.Add(' StatusCode: ' + Error.StatusCode.ToString);
113+ mmTeste.Lines.Add(' RequestUrl: ' + Error.RequestUrl);
114+ mmTeste.Lines.Add(' RequestId: ' + Error.RequestId);
115+ mmTeste.Lines.Add(' ErrorCode: ' + Error.ErrorCode);
116+ mmTeste.Lines.Add(' ErrorMessage: ' + Error.ErrorMessage);
117+ end ;
118+
92119procedure TMainView.lbInformationalClick (Sender: TObject);
93120begin
94121 MessageDlg(' Minha pergunta?' , mtConfirmation, [mbYes, mbNo],
@@ -122,8 +149,14 @@ procedure TMainView.btnGetClick(Sender: TObject);
122149 XDataWebDataSet1.SetJsonData(LResponse.Result);
123150 XDataWebDataSet1.Open;
124151
125- mmTeste.Lines.Add(XDataWebDataSet1Id.AsString + ' - ' +
126- XDataWebDataSet1Nome.AsString + ' - ' + XDataWebDataSet1Profissao.AsString);
152+ mmTeste.Lines.Clear;
153+ mmTeste.Lines.Add(' Id: ' + XDataWebDataSet1Id.AsString);
154+ mmTeste.Lines.Add(' Id Cidade: ' + XDataWebDataSet1IdCidade.AsString);
155+ mmTeste.Lines.Add(' Nome: ' + XDataWebDataSet1Nome.AsString);
156+ mmTeste.Lines.Add(' Profissão: ' + XDataWebDataSet1Profissao.AsString);
157+ mmTeste.Lines.Add(' Limite: ' + XDataWebDataSet1Limite.AsString);
158+ mmTeste.Lines.Add(' Porcentagem: ' + XDataWebDataSet1Porcentagem.AsString);
159+ mmTeste.Lines.Add(' Ativo: ' + XDataWebDataSet1Ativo.AsString);
127160end ;
128161
129162procedure TMainView.btnListarClick (Sender: TObject);
@@ -146,4 +179,48 @@ procedure TMainView.btnListarClick(Sender: TObject);
146179 end ;
147180end ;
148181
182+ procedure TMainView.btnPostClick (Sender: TObject);
183+ var
184+ LResponse: TXDataClientResponse;
185+ begin
186+ LResponse := TAwait.Exec<TXDataClientResponse>(
187+ XDataWebClient1.RawInvokeAsync(' IClientesService.Post' , [Self.GetClientePreenchido]));
188+
189+ mmTeste.Lines.Text := LResponse.ResponseText;
190+ end ;
191+
192+ function TMainView.GetClientePreenchido : TJSObject;
193+ begin
194+ Result := TJSObject.new;
195+ Result[' IdCidade' ] := 10 ;
196+ Result[' Nome' ] := ' Nome teste ' + FormatDateTime(' zzz' , Now);
197+ Result[' Profissao' ] := ' Dev' ;
198+ Result[' Limite' ] := 590 ;
199+ Result[' Porcentagem' ] := 54 ;
200+ Result[' Ativo' ] := True;
201+ end ;
202+
203+ procedure TMainView.btnAlterarClick (Sender: TObject);
204+ var
205+ LResponse: TXDataClientResponse;
206+ begin
207+ LResponse := TAwait.Exec<TXDataClientResponse>(
208+ XDataWebClient1.RawInvokeAsync(' IClientesService.Update' ,
209+ [StrToIntDef(edtCodigo.Text, 0 ), Self.GetClientePreenchido]));
210+
211+ mmTeste.Lines.Text := LResponse.ResponseText;
212+ end ;
213+
214+ procedure TMainView.btnDeleteClick (Sender: TObject);
215+ var
216+ LResponse: TXDataClientResponse;
217+ begin
218+ LResponse := TAwait.Exec<TXDataClientResponse>(
219+ XDataWebClient1.RawInvokeAsync(' IClientesService.Delete' , [StrToIntDef(edtCodigo.Text, 0 )]));
220+
221+ mmTeste.Lines.Clear;
222+ mmTeste.Lines.Add(' StatusCode: ' + LResponse.StatusCode.ToString);
223+ mmTeste.Lines.Add(' ResponseText: ' + LResponse.ResponseText);
224+ end ;
225+
149226end .
0 commit comments