using System; using BeWo.Report.ReportObjects; using BeWo.Report; using DevExpress.XtraReports.UI; using System.Data; using BeWo.Data.Access; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Schema; using BeWo.Data.Entities; using BeWo.Service.DCEntityMapper; using BeWo.Service.Plugins; using BeWo.Service.ServiceImplementations; using BS.Shared; using BS.Shared.Core; using BS.Shared.Extensions; using BS.Shared.Services; using DevExpress.Xpo.DB; namespace AlphaEv { [IDSpecificClass(Identifier = "AuswertungSozialdienst")] public partial class AuswertungSozialdienst : DevExpress.XtraReports.UI.XtraReport, IBeWoReport { private long servicecategoryOid = 0; private DateTime reportStart = DateTime.MinValue; private DateTime reportEnd = DateTime.MaxValue; public AuswertungSozialdienst() { InitializeComponent(); } public void SetReportDataSource(QueryRO queryRo) { var dict = CreateStrassenschluesselDict(); var ro = CreateRo(queryRo, dict); //cellDifferenz.Text = string.Format("{0:0.00}", ro.GeleisteteFlsGesamtCount - ro.AbrechnungVereinbarteFlsCount); ro.AbrechnungVereinbarteFlsCount = 1103; ro.AbrechnungDifferenzCount = ro.AbrechnungVereinbarteFlsCount - ro.GeleisteteFlsGesamtCount; this.bindingSource1.DataSource = ro; } private SozPsychErfassungBeratungRO CreateRo(QueryRO queryRo, Dictionary dict) { SozPsychErfassungBeratungRO result = new SozPsychErfassungBeratungRO(); result.DetailList = new List(); //decimal flsKlientGesamt = 0; //decimal flsKlientGesamt = 0; //decimal hilfedauerInMonatenGesamt = 0; Dictionary custOidDict = new Dictionary(); int idx = 1; foreach (var row in queryRo.Rows) { result.NummerCount++; SozPsychErfassungBeratungDetailRO ro = new SozPsychErfassungBeratungDetailRO(); if (servicecategoryOid == 0) { servicecategoryOid = Int64.Parse(row.Field17.ToString()); } long oid = Int64.Parse(row.Field1.ToString()); bool add = true; if (!custOidDict.ContainsKey(oid)) { //custOidDict.Add(oid, true); } else { add = false; } Customer c = DAOFactory.GenericDAO.LoadByID(oid); ro.Nummer = idx++; //ro.NummerUndName = String.Format("{0}: {1}, {2}", ro.Nummer, c.Person.LastName, c.Person.FirstName); ro.NummerUndName = String.Format("{0}, {1}", c.Person.LastName, c.Person.FirstName); ro.Ort = String.Format("{0}", row.Field3); ro.Strasse = String.Format("{0}", row.Field4); if (c.Person.Nationalitaet != null) { var staatsang = c.Person.Nationalitaet.Value; if (staatsang.ToLower().Contains("deutsch")) { ro.Deutsch = "x"; result.DeutschCount++; } else { ro.Nationalitaet = staatsang; result.NationalitaetCount++; } } var wp = GetWohnplatz(dict, ro.Strasse, ro.Ort); if (wp != null) { ro.Wohnplatz = wp.Wohnplatzname; ro.Strasse = wp.Strasse; ro.Hausnr = wp.HausNummer; result.WohnplatzCount++; } bool containsNewAngebot = c.VarFieldValueList.Exists(vv => vv.VarFieldDefOid >= 38 && vv.VarFieldDefOid <= 42); //ro.Strasse = c.Person.FirstNameLastName; foreach (var vv in c.VarFieldValueList) { var varFieldValue = Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName)); //SetzeNationalitaet(result, ro, vv, varFieldValue); if (vv.VarFieldDefOid != 22 || !containsNewAngebot) { SetzeAngebot(result, ro, vv, varFieldValue); } SetzeFahrdienst(result, ro, vv, varFieldValue); SetzeLebensumfeld(result, ro, vv, varFieldValue); SetzeErkrankung(result, ro, vv, varFieldValue); SetzeZugang(result, ro, vv, varFieldValue); SetzeOhneWohnplatz(result, ro, vv, varFieldValue); } int sex = 0; if (row.Field7 != null && Int32.TryParse(row.Field7.ToString(), out sex)) { if ( sex == 1) { ro.Weiblich = "x"; result.WeiblichCount++; } else if (sex == 0) { ro.Maennlich = "x"; result.MaennlichCount++; } } DateTime birthday = DateTime.MinValue; if (row.Field12 != null) { DateTime.TryParse(row.Field12.ToString(), out reportStart); //if (reportStart == DateTime.MinValue) //{ // reportStart = DateTime.Now; //} } if (row.Field13 != null) { DateTime.TryParse(row.Field13.ToString(), out reportEnd); if (reportEnd >= DateTime.MaxValue.AddDays(-1)) { reportEnd = DateTime.Now; } } if (row.Field8 != null && DateTime.TryParse(row.Field8.ToString(), out birthday)) { int alter = reportEnd.Year - birthday.Year; birthday = birthday.AddYears(alter); if (reportEnd.CompareTo(birthday) < 0) { alter--; } //if (servicecategoryOid == 8) //{ // cellAlter1.Text = "unter 60"; // cellAlter2.Text = "60-70"; // cellAlter3.Text = "71-80"; // cellAlter4.Text = "81+"; // if (alter < 60) // { // ro.AlterBis18 = "x"; // result.AlterBis18Count++; // } // else if (alter >= 60 && alter <= 70) // { // ro.Alter18_25 = "x"; // result.Alter18_25Count++; // } // else if (alter >= 71 && alter <= 80) // { // ro.Alter26_65 = "x"; // result.Alter26_65Count++; // } // else if (alter >= 81) // { // ro.AlterAb65 = "x"; // result.AlterAb65Count++; // } //} //else //{ if (alter < 18) { ro.AlterBis18 = "x"; result.AlterBis18Count++; } else if (alter >= 18 && alter <= 25) { ro.Alter18_25 = "x"; result.Alter18_25Count++; } else if (alter >= 26 && alter <= 65) { ro.Alter26_65 = "x"; result.Alter26_65Count++; } else if (alter >= 66) { ro.AlterAb65 = "x"; result.AlterAb65Count++; } //} } ro.PrimaerErkrankung = CreateDiagnosisString(c.Diagnosis2CustomerList); //ro.PrimaerErkrankung = c.Diagnosis2CustomerList.Select(s => s.ICD10DiagnosisCode).ToSeparatedString(", "); SetzeVermittlung(result, ro, c); SetzeBeendigungsgrund(result, ro, c); DateTime beantragtAb = DateTime.MinValue; DateTime beantragtBis = DateTime.MinValue; DateTime bewilligtAb = DateTime.MinValue; DateTime bewilligtBis = DateTime.MinValue; if (row.Field9 != null) { DateTime.TryParse(row.Field9.ToString(), out bewilligtAb); } if (row.Field10 != null) { DateTime.TryParse(row.Field10.ToString(), out bewilligtBis); } if (row.Field14 != null) { DateTime.TryParse(row.Field14.ToString(), out beantragtAb); } if (row.Field15 != null) { DateTime.TryParse(row.Field15.ToString(), out beantragtBis); } if (beantragtAb > DateTime.MinValue) { ro.AnfrageHilfebeginn = beantragtAb; } if (bewilligtAb > DateTime.MinValue) { ro.AnfrageClearingbeginn = bewilligtAb; } if (beantragtAb > DateTime.MinValue && bewilligtAb > DateTime.MinValue) { ro.AnfrageWartezeit = (decimal)bewilligtAb.Subtract(beantragtAb).TotalDays; } if (bewilligtBis < reportEnd) { if (bewilligtBis > DateTime.MinValue) { ro.HilfsdauerFallende = bewilligtBis; if (bewilligtAb > DateTime.MinValue) { ro.HilfsdauerInMonaten = BerechneDauerInMonaten(bewilligtAb, bewilligtBis); } } } long cb2scoid = Int64.Parse(row.Field16.ToString()); BerechneFls(result, ro, cb2scoid); if (String.IsNullOrEmpty(ro.FahrdienstJa)) { ro.FahrdienstNein = "x"; result.FahrdienstNeinCount++; } if (add) { result.DetailList.Add(ro); } } return result; } private string CreateDiagnosisString(IList d2CList) { StringBuilder sb = new StringBuilder(); foreach (var d2c in d2CList) { if (!String.IsNullOrWhiteSpace(d2c.ICD10DiagnosisCode)) { String code = d2c.ICD10DiagnosisCode; if (code.StartsWith("F")) { if (code.StartsWith("F0")) { code = "F00-F09"; } else if (code.StartsWith("F1")) { code = "F10-F19"; } else if (code.StartsWith("F2")) { code = "F20-F29"; } else if (code.StartsWith("F3")) { code = "F30-F39"; } else if (code.StartsWith("F4")) { code = "F40-F49"; } else if (code.StartsWith("F5")) { code = "F50-F59"; } else if (code.StartsWith("F6")) { code = "F60-F69"; } else if (code.StartsWith("F7")) { code = "F70-F79"; } else if (code.StartsWith("F8")) { code = "F80-F89"; } else if (code.StartsWith("F9")) { code = "F90-F99"; } } if (sb.Length > 0) { sb.Append(", "); } sb.Append(code); } } return sb.ToString(); } private Wohnplatz GetWohnplatz(Dictionary dict, string strasse, string ort) { if (!String.IsNullOrWhiteSpace(ort)) { if (ort.ToLower() == "berg. gladbach") { ort = "bergisch gladbach"; } if (ort.ToLower() == "bgl") { ort = "bergisch gladbach"; } if (ort.ToLower() == "gl") { ort = "bergisch gladbach"; } if (ort.ToLower() == "b gladbach") { ort = "bergisch gladbach"; } if (ort.ToLower().Contains("bergisch gladbach")) { ort = "bergisch gladbach"; } } ort = ort.Replace(" ", "").ToLower().Trim(); strasse = strasse.Replace(" ", "").ToLower().Trim(); String key = String.Format("{0} {1}", strasse, ort).ToLower(); if (dict.ContainsKey(key)) { return dict[key]; } key = String.Format("{0} {1}", strasse.ToLower().Replace("str.", "straße"), ort).ToLower(); if (dict.ContainsKey(key)) { return dict[key]; } key = String.Format("{0} {1}", strasse.ToLower().Replace("strasse", "straße"), ort).ToLower(); if (dict.ContainsKey(key)) { return dict[key]; } return null; } private void BerechneFls(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, long cb2scoid) { CostBearer2SupportConcept cb2sc = DAOFactory.GenericDAO.LoadByID(cb2scoid); var servicerecords = DAOFactory.SearchDAO.FindServiceRecords(null, cb2scoid); var frecords = AnalysisServiceImp.FilterGroupServiceRecords(servicerecords); foreach (var serviceRecord in frecords) { if (serviceRecord.Start >= reportStart && serviceRecord.End < reportEnd) { if (serviceRecord.ServiceDescription.ServiceCategory.Oid == servicecategoryOid) { if (serviceRecord.ServiceDescription.Name.ToLower().Contains("ohne klient")) { ro.GeleisteteFlsOhneKlient += serviceRecord.RoundedDuration; } else { ro.GeleisteteFlsKlient += serviceRecord.RoundedDuration; } ro.GeleisteteFlsGesamt += serviceRecord.RoundedDuration; } } //else //{ // ro.GeleisteteFlsOhneKlient += serviceRecord.RoundedDuration; //} } ro.GeleisteteFlsGesamt /= 60; ro.GeleisteteFlsKlient /= 60; ro.GeleisteteFlsOhneKlient /= 60; result.GeleisteteFlsGesamtCount += ro.GeleisteteFlsGesamt; var calc = PluginLoader.FindClass(); var reldc = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(cb2sc); var genehmigt = calc.GetApprovedHoursTotal(reldc, false); ro.AbrechnungVereinbarteFls = genehmigt ?? 0; ro.AbrechnungDifferenz = ro.GeleisteteFlsGesamt - ro.AbrechnungVereinbarteFls; result.AbrechnungVereinbarteFlsCount += ro.AbrechnungVereinbarteFls; } private decimal BerechneDauerInMonaten(DateTime bewilligtAb, DateTime bewilligtBis) { decimal monate = 0; DateTime start = bewilligtAb.Date; DateTime ende = bewilligtBis.Date; while (start < ende) { monate++; start = start.AddMonths(1); } if (start != ende.AddDays(1)) { var days = start.Subtract(ende).TotalDays + 1; monate += (decimal)(days/DateTime.DaysInMonth(start.Year, start.Month)); } return monate; } private void SetzeBeendigungsgrund(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer) { if (customer.TerminationReason != null) { if (customer.TerminationReason.Value == "Ziel(e) erreicht (Sozialdienst)") { ro.BeendigungsgrundZeileErreicht = "x"; reportRo.BeendigungsgrundZeileErreichtCount++; } else if (customer.TerminationReason.Value == "KKH/Reha (Sozialdienst)") { ro.BeendigungsgrundKkhReha = "x"; reportRo.BeendigungsgrundKkhRehaCount++; } else if (customer.TerminationReason.Value == "Abbruch (Sozialdienst)") { ro.BeendigungsgrundAbbruch = "x"; reportRo.BeendigungsgrundAbbruchCount++; } else if (customer.TerminationReason.Value == "verstorben (Sozialdienst)") { ro.BeendigungsgrundVerstorben = "x"; reportRo.BeendigungsgrundVerstorbenCount++; } } } private void SetzeVermittlung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer) { foreach (var placement in customer.PlacementList) { if (placement.Objective != null) { if (placement.Objective.Value == "langfristige Betreuung" || placement.Objective.Value == "langfristige Begleitung") { ro.VermittlungLangfristigeBegleitung = "x"; reportRo.VermittlungLangfristigeBegleitungCount++; } else if (placement.Objective.Value == "Behandlung/Therapie") { ro.VermittlungBehandlungTherapie = "x"; reportRo.VermittlungBehandlungTherapieCount++; } else if (placement.Objective.Value == "Wohnheim/Reha") { ro.VermittlungWohnheimReha = "x"; reportRo.VermittlungWohnheimRehaCount++; } else if (placement.Objective.Value == "BEWO" || placement.Objective.Value == "Betreutes Wohnen") { ro.VermittlungBeWo = "x"; reportRo.VermittlungBeWoCount++; } else if (placement.Objective.Value == "Tagesstätte" || placement.Objective.Value == "Tagesstätte/WfB") { ro.VermittlungTagestaette = "x"; reportRo.VermittlungTagestaetteCount++; } else if (placement.Objective.Value == "Kontaktstelle") { ro.VermittlungKontaktstelle = "x"; reportRo.VermittlungKontaktstelleCount++; } else if (placement.Objective.Value == "SPFH" || placement.Objective.Value == "Jugendamt" || placement.Objective.Value == "Jugendamt/SPFH") { ro.VermittlungJugendamtSpfh = "x"; reportRo.VermittlungJugendamtSpfhCount++; } else if (placement.Objective.Value == "Schuldnerberatung") { ro.VermittlungSchuldnerberatung = "x"; reportRo.VermittlungSchuldnerberatungCount++; } else if (placement.Objective.Value == "Sozialpsychiatrischer Dienst" || placement.Objective.Value == "SpDi") { ro.VermittlungSpdi = "x"; reportRo.VermittlungSpdiCount++; } else if (placement.Objective.Value == "sonstige Dienste") { ro.VermittlungSonstigeDienste = "x"; reportRo.VermittlungSonstigeDiensteCount++; } else if (placement.Objective.Value == "Selbsthilfe") { ro.VermittlungSelbsthilfe = "x"; reportRo.VermittlungSelbsthilfeCount++; } else if (placement.Objective.Value == "keine weiteren Hilfen bekannt") { ro.VermittlungUnbekannt = "x"; reportRo.VermittlungUnbekanntCount++; } } } } private void SetzeOhneWohnplatz(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 37) { if (varFieldValue != null) { String vvStr = varFieldValue as String; if (!String.IsNullOrWhiteSpace(vvStr)) { result.OhneFestenWohnsitzCount++; ro.OhneFestenWohnsitz = vvStr; } } } } private void SetzeZugang(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 36) { String angebot = varFieldValue as string; if (angebot == "selbst/Familie/soz. Umfeld") { ro.ZugangUeberSelbst = "x"; reportRo.ZugangUeberSelbstCount++; } else if (angebot == "(Fach-)Arzt") { ro.ZugangUeberArzt = "x"; reportRo.ZugangUeberArztCount++; } else if (angebot == "KKH/Reha") { ro.ZugangUeberKkhReha = "x"; reportRo.ZugangUeberKkhRehaCount++; } else if (angebot == "SpDi") { ro.ZugangUeberSpDi = "x"; reportRo.ZugangUeberSpDiCount++; } else if (angebot == "Job Center") { ro.ZugangUeberJobCenter = "x"; reportRo.ZugangUeberJobCenterCount++; } else if (angebot == "Selbsthilfe") { ro.ZugangUeberSelbsthilfe = "x"; reportRo.ZugangUeberSelbsthilfeCount++; } else if (angebot == "Seniorenberatung") { ro.ZugangUeberSeniorenberatung = "x"; reportRo.ZugangUeberSeniorenberatungCount++; } else if (angebot == "Pflegedienst") { ro.ZugangUeberPflegedienst = "x"; reportRo.ZugangUeberPflegedienstCount++; } else if (angebot == "Kontaktstelle") { ro.ZugangUeberKontaktstelle = "x"; reportRo.ZugangUeberKontaktstelleCount++; } else { ro.ZugangUeberAndere = "x"; reportRo.ZugangUeberAndereCount++; } } } private void SetzeErkrankung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 35) { String angebot = varFieldValue as string; if (angebot == "Ja") { ro.PsychOderSuchterkrankungJa = "x"; reportRo.PsychOderSuchterkrankungJaCount++; } else if (angebot == "Nein") { ro.PsychOderSuchterkrankungNein = "x"; reportRo.PsychOderSuchterkrankungNeinCount++; } else if (angebot == "Unbekannt") { ro.PsychOderSuchterkrankungUnbekannt = "x"; reportRo.PsychOderSuchterkrankungUnbekanntCount++; } } } private void SetzeLebensumfeld(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 25 && varFieldValue.ToString() == "True") { ro.LebensumfeldAlleinLebend = "x"; reportRo.LebensumfeldAlleinLebendCount++; } else if (vv.VarFieldDefOid == 26 && varFieldValue.ToString() == "True") { ro.LebensumfeldMitPartnerLebend = "x"; reportRo.LebensumfeldMitPartnerLebendCount++; } else if (vv.VarFieldDefOid == 27 && varFieldValue.ToString() == "True") { ro.LebensumfeldKinderImHaushalt = "x"; reportRo.LebensumfeldKinderImHaushaltCount++; } else if (vv.VarFieldDefOid == 28 && varFieldValue.ToString() == "True") { ro.LebensumfeldKinderInAnderemHaushalt = "x"; reportRo.LebensumfeldKinderInAnderemHaushaltCount++; } else if (vv.VarFieldDefOid == 29 && varFieldValue.ToString() == "True") { ro.LebensumfeldWohnhaftInHerkunftsfamilie = "x"; reportRo.LebensumfeldWohnhaftInHerkunftsfamilieCount++; } else if (vv.VarFieldDefOid == 30 && varFieldValue.ToString() == "True") { ro.LebensumfeldInArbeit = "x"; reportRo.LebensumfeldInArbeitCount++; } else if (vv.VarFieldDefOid == 31 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtAlg = "x"; reportRo.LebensumfeldBeziehtAlgCount++; } else if (vv.VarFieldDefOid == 32 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtAlg2 = "x"; reportRo.LebensumfeldBeziehtAlg2Count++; } else if (vv.VarFieldDefOid == 33 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtGrundsicherung = "x"; reportRo.LebensumfeldBeziehtGrundsicherungCount++; } else if (vv.VarFieldDefOid == 34 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtRente = "x"; reportRo.LebensumfeldBeziehtRenteCount++; } else if (vv.VarFieldDefOid == 300 && varFieldValue.ToString() == "True") { ro.LebensumfeldSonstiges = "x"; reportRo.LebensumfeldSonstigesCount++; } else if (vv.VarFieldDefOid == 310 && varFieldValue.ToString() == "True") { ro.EinkommenGeringBeschaeftigt = "x"; reportRo.EinkommenGeringBeschaeftigtCount++; } else if (vv.VarFieldDefOid == 311 && varFieldValue.ToString() == "True") { ro.EinkommenErgaenzendesAlg2 = "x"; reportRo.EinkommenErgaenzendesAlg2Count++; } else if (vv.VarFieldDefOid == 312 && varFieldValue.ToString() == "True") { ro.EinkommenSonstiges = "x"; reportRo.EinkommenSonstigesCount++; } } private void SetzeFahrdienst(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 23) { if (varFieldValue.ToString() == "True") { ro.FahrdienstJa = "x"; reportRo.FahrdienstJaCount++; } else { //ro.FahrdienstNein = "x"; //reportRo.FahrdienstNeinCount++; } } else if (vv.VarFieldDefOid == 24) { if (varFieldValue.ToString() == "True") { ro.FahrdienstErfolgt = "x"; reportRo.FahrdienstErfolgtCount++; } } } private void SetzeAngebot(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 22) { String angebot = varFieldValue as string; if (angebot == "Beratung") { ro.AngebotBeratung = "x"; reportRo.AngebotBeratungCount++; } else if (angebot == "Begleitung") { ro.AngebotBegleitung = "x"; reportRo.AngebotBegleitungCount++; } else if (angebot == "Krisenintervention") { ro.AngebotKrisenIntervention = "x"; reportRo.AngebotKrisenInterventionCount++; } else if (angebot == "Beratung Angehöriger") { ro.AngebotBeratungAngehoeriger = "x"; reportRo.AngebotBeratungAngehoerigerCount++; } else if (angebot == "Hausbesuch") { ro.AngebotHausbesuch = "x"; reportRo.AngebotHausbesuchCount++; } } else if (vv.VarFieldDefOid == 38) { if (varFieldValue.ToString() == "True") { ro.AngebotBeratung = "x"; reportRo.AngebotBeratungCount++; } } else if (vv.VarFieldDefOid == 39) { if (varFieldValue.ToString() == "True") { ro.AngebotBegleitung = "x"; reportRo.AngebotBegleitungCount++; } } else if (vv.VarFieldDefOid == 40) { if (varFieldValue.ToString() == "True") { ro.AngebotKrisenIntervention = "x"; reportRo.AngebotKrisenInterventionCount++; } } else if (vv.VarFieldDefOid == 41) { if (varFieldValue.ToString() == "True") { ro.AngebotBeratungAngehoeriger = "x"; reportRo.AngebotBeratungAngehoerigerCount++; } } else if (vv.VarFieldDefOid == 42) { if (varFieldValue.ToString() == "True") { ro.AngebotHausbesuch = "x"; reportRo.AngebotHausbesuchCount++; } } } private void SetzeNationalitaet(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue) { if (vv.VarFieldDefOid == 1) { String staatsang = varFieldValue as string; if (!String.IsNullOrWhiteSpace(staatsang)) { if (staatsang.ToLower().Contains("deutsch")) { ro.Deutsch = "x"; reportRo.DeutschCount++; } else { ro.Nationalitaet = staatsang; reportRo.NationalitaetCount++; } } } } private Dictionary CreateStrassenschluesselDict() { var dict = new Dictionary(); String sql = "Select StrassenName, HausNummer, Gemeinde, Wohnplatzname, Wohnplatznummer from Strassenschluessel"; var table = DAOFactory.AdoDAO.ExecuteQuery(sql).Tables[0]; foreach (DataRow row in table.Rows) { String strasse = row[0] as string; String hausnr = row[1] as string; String gemeinde = row[2] as string; strasse = strasse.Replace(" ", "").Trim(); hausnr = hausnr.Replace(" ", "").Trim(); gemeinde = gemeinde.Replace(" ", "").Trim(); String key = String.Format("{0}{1} {2}", strasse, hausnr, gemeinde).ToLower(); if (!dict.ContainsKey(key)) { Wohnplatz wp = new Wohnplatz(); wp.Strasse = row[0] as string; wp.HausNummer = row[1] as string; wp.Gemeinde = row[2] as string; wp.Wohnplatzname = row[3] as string; wp.Wohnplatznummer = row[4] as string; dict.Add(key, wp); } else { String e = "ERROR"; } } return dict; } private class Wohnplatz { public String Strasse { get; set; } public String HausNummer { get; set; } public String Gemeinde { get; set; } public String Wohnplatzname { get; set; } public String Wohnplatznummer { get; set; } } } }