I ovenstående afsnit er vist eksempler på hvordan servicen kan kaldes fra en browser. I dette afsnit vises eksempler på hvordan servicen kan kaldes fra et C# program. Der ligges til grund, at servicen er installeret lokalt på port nr. 10000 og at der er oprettet en reference til servicen.
Eksempel 1 - Hent alle byggesager der ikke er lukkede og som er offentlige. Sorteret efter adresse:
private void button_GetPublicActiveCasefiles_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var publicActiveCaseFiles = from c in svc.view_bldCasefile orderby c.road_name, c.house_no_1, c.house_no_2 where c.case_closed == "0" && c.case_public == "1" select c; int count = publicActiveCaseFiles.Count<view_bldCasefile>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen aktive offentlige sager"); return; } foreach (var casefile in publicActiveCaseFiles) { if ((casefile.case_name == null) || (casefile.case_name.Length == 0)) textBox_Output.AppendText(casefile.task_seq_no.ToString() + "\t\t(intet sagsnavn)\n"); else textBox_Output.AppendText(casefile.task_seq_no.ToString() + "\t\t" + casefile.case_name + "\n"); } } |
Eksempe 2 - Hent alle byggesager der er lukkede og som ikke er arkiveret:
private void button_GetClosedNoneArchivedCasefiles_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var closedNoneArchivedCaseFiles = from c in svc.view_bldCasefile where c.case_closed == "1" && c.case_archived == "0" select c; int count = closedNoneArchivedCaseFiles.Count<view_bldCasefile>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen lukkede sager der skal arkiveres"); return; } foreach (var casefile in closedNoneArchivedCaseFiles) { if ((casefile.case_name == null) || (casefile.case_name.Length == 0)) textBox_Output.AppendText(casefile.task_seq_no.ToString() + "\t\t(intet sagsnavn)\n"); else textBox_Output.AppendText(casefile.task_seq_no.ToString() + "\t\t" + casefile.case_name + "\n"); } } |
Eksempel 3 - Hent alle checks tilhørende en given sag. Sorteret i rækkefølge:
private void button_GetChecks_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var checks = from c in svc.view_bldCaseChronology orderby c.sort_key where c.task_seq_no == decimal.Parse(textBox_task_seq_no.Text) select c; int count = checks.Count<view_bldCaseChronology>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen checks med task_seq_no = " + textBox_task_seq_no.Text); return; } foreach (var check in checks) { if ((check.task_type_name == null) || (check.task_type_name.Length == 0)) textBox_Output.AppendText(check.task_seq_no.ToString() + "\t\t(ingen opgavebeskrivelse)\n"); else textBox_Output.AppendText(check.task_seq_no.ToString() + "\t\t" + check.task_type_name + "\n"); } } |
Eksempel 4 - Hent alle dokumenter tilhørende en given sag. Sorteret efter registreringsdato
private void button_GetDocuments_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var documents = from d in svc.view_bldDocument orderby d.reg_date where d.task_seq_no == decimal.Parse(textBox_task_seq_no.Text) select d; int count = documents.Count<view_bldDocument>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen dokumenter med task_seq_no = " + textBox_task_seq_no.Text); return; } foreach (var document in documents) { if ((document.description == null) || (document.description.Length == 0)) textBox_Output.AppendText(document.doc_seq_no.ToString() + "\t\t(ingen beskrivelse)\n"); else textBox_Output.AppendText(document.doc_seq_no.ToString() + "\t\t" + document.description + "\n"); } }
|
Eksempel 5 - Hent et givent dokuments fysiske fil
private void button_OpenDocumentFile_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var documents = from d in svc.view_bldDocument where d.doc_seq_no == decimal.Parse(textBox_doc_seq_no.Text) select d; int count = documents.Count<view_bldDocument>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen fil (dokument) med doc_seq_no = " + textBox_doc_seq_no.Text); return; } foreach (var document in documents) { string fileExtension = System.IO.Path.GetExtension(document.doc_path); if (document.File.ContentType == "text/plain") fileExtension = ".txt"; string filePath = System.IO.Path.GetTempPath() + "\\FileFromWsGeoApiBldService" + fileExtension; var response = svc.GetReadStream(document, "File", new System.Data.Services.Client.DataServiceRequestArgs() { }); using (var fileStream = System.IO.File.Create(filePath)) { response.Stream.CopyTo(fileStream); } System.Diagnostics.Process.Start(filePath); } } |
Eksempel 6 - Hent alle bilag tilhørende et givent dokument
private void button_GetAppendixs_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var appendixs = from a in svc.view_bldAppendix where a.doc_seq_no == decimal.Parse(textBox_doc_seq_no.Text) select a; int count = appendixs.Count<view_bldAppendix>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen bilag med doc_seq_no = " + textBox_doc_seq_no.Text); return; } foreach (var appendix in appendixs) { if ((appendix.comments == null) || (appendix.comments.Length == 0)) textBox_Output.AppendText(appendix.bld_app_doc_seq_no.ToString() + "\t\t(ingen beskrivelse)\n"); else textBox_Output.AppendText(appendix.bld_app_doc_seq_no.ToString() + "\t\t" + appendix.comments + "\n"); } } |
Eksempel 7 - Hent et givent bilags fysiske fil
private void button_OpenAppendixFile_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); var appendixs = from a in svc.view_bldAppendix where a.bld_app_doc_seq_no == decimal.Parse(textBox_bld_app_doc_seq_no.Text) select a; int count = appendixs.Count<view_bldAppendix>(); textBox_Output.Clear(); if (count == 0) { textBox_Output.AppendText("Ingen fil (bilag) med bld_app_doc_seq_no = " + textBox_bld_app_doc_seq_no.Text); return; } foreach (var appendix in appendixs) { string fileExtension = System.IO.Path.GetExtension(appendix.link_path); if (appendix.File.ContentType == "text/plain") fileExtension = ".txt"; string filePath = System.IO.Path.GetTempPath() + "\\FileFromWsGeoApiBldService" + fileExtension; var response = svc.GetReadStream(appendix, "File", new System.Data.Services.Client.DataServiceRequestArgs() { }); using (var fileStream = System.IO.File.Create(filePath)) { response.Stream.CopyTo(fileStream); } System.Diagnostics.Process.Start(filePath); } } |
Eksempel 8 - Sæt en given sag som arkiveret
private void button_SetCasefileArchived_Click(object sender, EventArgs e) { Uri svcUri = new Uri("http://localhost:10000/GeoApiBld.svc/"); var svc = new GeoEnvironDBEntities(svcUri); string task_seq_no = textBox_task_seq_no.Text; var operationUri = new Uri("set_bldCasefileArchived?task_seq_no=" + task_seq_no + "M", UriKind.Relative); bool casefileArchived = svc.Execute<bool>(operationUri).First(); textBox_Output.Clear(); if(casefileArchived) textBox_Output.AppendText("Sagen med task_seq_no = " + task_seq_no + " blev arkiveret\n"); else textBox_Output.AppendText("Sagen med task_seq_no = " + task_seq_no + " blev IKKE arkiveret\n"); //Yderligere test af om sagen er blevet arkiveret (og om den findes)... var specificCasefileArchived = from c in svc.view_bldCasefile where c.case_archived == "1" && c.task_seq_no == decimal.Parse(task_seq_no) select c; int count = specificCasefileArchived.Count<view_bldCasefile>(); if (count == 1) textBox_Output.AppendText("Ekstra tjek: Sagen med task_seq_no = " + task_seq_no + " findes og er arkiveret"); else textBox_Output.AppendText("Ekstra tjek: Sagen med task_seq_no = " + task_seq_no + " findes IKKE"); } |
Kommentarer
0 kommentarer
Artiklen er lukket for kommentarer.