public void MatchPersonLists(nm_e_gramatinas egrm, out Dictionary <nm_e_gramatinasGigv, KlonsADataSet.PERSONSRow> dict, out List <string> missingnames) { dict = new Dictionary <nm_e_gramatinasGigv, KlonsADataSet.PERSONSRow>(); missingnames = new List <string>(); foreach (var grm in egrm.gigv) { var pk = grm.pers_kods.ToString(); if (pk.Length == 10) { pk = "0" + pk; } if (pk.Length == 11) { pk = pk.Insert(6, "-"); } var drpr = FindPerson(grm.vards_uzvards, pk); if (drpr == null) { missingnames.Add(grm.vards_uzvards); } else { dict[grm] = drpr; } } }
public string GetUntMinResult(string filename, DateTime dt1, DateTime dt2, out List <string> missingnames, out List <UntMinImportData> changes) { missingnames = new List <string>(); changes = new List <UntMinImportData>(); string xml = File.ReadAllText(filename); var egrms = Deserialize(xml); EGramatinas = egrms; UntMinChanges = changes; if (egrms == null) { return("Neizdevās nolasīt pārskata xml failu"); } var edt1 = Utils.StringToDate(egrms.pamatdati.periods_no); var edt2 = Utils.StringToDate(egrms.pamatdati.periods_lidz); if (edt1 > dt1 || edt2 < dt2) { return("EDS pārskata periods neatbilst pieprasītajam."); } MatchPersonLists(egrms, out var dict_pr, out missingnames); foreach (var egrm in egrms.gigv) { if (!dict_pr.TryGetValue(egrm, out var drpr)) { continue; } var pi_db = GetUntMinFromDB(drpr, dt1, dt2); var pi_egrm_untmin = GetUntMinFromEgrm(egrm, dt1, dt2); var pi_egrm_iinrate = GetIINRateFromEgrm(egrm, dt1, dt2); var pi_merged_iinrate = MergeUntMinAndIINRateData(pi_egrm_untmin, pi_egrm_iinrate); var pi_merged_untmin = MergeUntMinData(pi_db, pi_merged_iinrate); var changes_pr = GetUntMinChanges(pi_merged_untmin, pi_db); var changes_pr2 = changes_pr .Select(d => new UntMinImportData() { IDP = drpr.ID, Name = drpr.YNAME, PersonsCode = drpr.PK, Dt = d.Dt1, UntMin = d.UntMin, IINRateType = d.IINRateType }); changes.AddRange(changes_pr2); } return("OK"); }