private bool zaleznoscOFUiOZUiOZKdlaR() { if (!OZU.HasValue) { return(true); } if (!OZK.HasValue) { return(true); } EGB_OZU ozu = OZU.Value; EGB_OZK ozk = OZK.Value; //Przyjęcie przez OFU wartości: //('R' lub 'S' lub 'Br' lub 'Wsr' lub 'W' lub 'Lzr' lub 'E?' lub 'E-Lz' lub 'E-W') //i przez OZU wartości 'R' powoduje, //że OZK może przyjąć jedną z wartości ('I' lub 'II' lub 'IIIa' lub 'IIIb' lub 'IVa' lub 'IVb' lub 'V' lub 'VI' lub 'VIz'). if (ofuDlaR(OFU)) { if (ozu.Equals("R")) { if (!ozkDlaR(ozk)) { return(false); } } } return(true); }
public bool zaleznoscOFUiOZUiOZKnieR() { if (!OZU.HasValue) { return(true); } if (!OZK.HasValue) { return(true); } EGB_OZU ozu = OZU.Value; EGB_OZK ozk = OZK.Value; //Przyjęcie przez OFU wartości: //('Ł' lub 'Ps' lub 'S' lub 'Br' lub 'Wsr' lub 'W' lub 'Lzr' lub 'E' lub 'E-Lz' lub 'E-W') //i przez OZU wartości: ('Ł' lub 'Ps') lub przyjęcie przez OFU wartości ('Ls' lub 'E-Ls') //i przez OZU wartości 'Ls' lub przyjęcie przez OFU wartości ('Lz' lub 'E-Lz') //i przez OZU wartości 'Lz' powoduje, //że OZK może przyjąć jedną z wartości ('I' lub 'II' lub 'III' lub 'IV' lub 'V' lub 'VI'). /*inv: * if (OFU='Ł' or OFU='Ps' or OFU='S' or OFU='Br' or OFU='Wsr' or OFU='W' or OFU='Lzr' or OFU='E?' or OFU='E-Lz' or OFU='E-W') * and (OZU='Ł' or OZU='Ps') or ((OFU='Ls' or OFU='E-Ls') and (OZU='Ls')) or ((OFU='Lz' or OFU='E-Lz') and (OZU='Lz')) * implies (OZK='I' or OZK='II' or OZK='III' or OZK='IV' or OZK='V' or OZK='VI')*/ if (ofuNieR(OFU)) { if (ozu.Equals("Ł") || ozu.Equals("Ps")) { if (!ozkNieR(ozk)) { return(false); } } if (ozu.Equals("Ls") && (OFU.Equals("Ls") || OFU.Equals("E-Ls"))) { if (!ozkNieR(ozk)) { return(false); } } if (ozu.Equals("Lz") && (OFU.Equals("Lz") || OFU.Equals("E-Lz"))) { if (!ozkNieR(ozk)) { return(false); } } } return(true); }
int readKontury(DokumentSwde swde) { List <IGeometry> geometrie = new List <IGeometry>(); var kontury = swde.GetObiektyKlasy("G5KKL"); foreach (var klu in kontury) { string g5idk = klu.GetAtrybut("G5IDK"); string g5ozu = klu.GetAtrybut("G5OZU"); string g5ofu = string.Empty; string g5ozk = klu.GetAtrybut("G5OZK"); string g5pew = klu.GetAtrybut("G5PEW"); Powierzchnia powierzchnia = Powierzchnia.parseMetry(g5pew); if (string.IsNullOrEmpty(g5ozk)) { //użytek g5ofu = g5ozu; g5ozu = string.Empty; } else { //kontur klasyfikacyjny g5ofu = g5ozu; string[] split = g5ofu.Split(new char[] { '-' }, 3); switch (split.Length) { case 2: g5ofu = split[0]; g5ozu = split[1]; if (g5ofu.Equals("E")) //nie dziel E { g5ofu = split[0] + '-' + split[1]; g5ozu = split[1]; } break; case 3: g5ofu = split[0] + "-" + split[1]; g5ozu = split[2]; break; default: break; } } string oznString = string.Format("{4}\t{0}\t{1}\t{2}\t{3}", g5ofu, g5ozu, g5ozk, g5pew, g5idk); Logger.write(oznString); EGB_OFU ofu = new EGB_OFU(g5ofu); EGB_OZU?ozu = null; if (!string.IsNullOrEmpty(g5ozu)) { ozu = new EGB_OZU(g5ozu); } EGB_OZK?ozk = null; if (!string.IsNullOrEmpty(g5ozk)) { ozk = new EGB_OZK(g5ozk); } EGB_OznaczenieKlasouzytku ozn = new EGB_OznaczenieKlasouzytku(ofu, ozu, ozk); ozn.walidujOgraniczenia(); //Console.WriteLine(g5idk); string wkt = klu.Geometria.NaWkt(); GeometriaObiektu geometria = new GeometriaObiektu(wkt); try { geometria.overlaps(geometrie); } catch (Exception ex) { Logger.writeBłąd(ex.Message + ":" + wkt); } geometrie.Add(geometria.geometry()); } return(kontury.Count()); }