Ejemplo n.º 1
0
        /// <summary>
        /// Returns the classification of a string, departing from a list of classifications where its match is met
        /// Narrow the tree with the supplied classification (Adresa) and then return the supplied classifications completed with the one found down the tree found for its match: Adresa, TipStrada, Bulevardul
        /// A func should be supplied for the matching (input: string to match, leafe, output bool)
        /// </summary>
        /// <returns>The match.</returns>
        public List <Classification> Match(List <Classification> narrowTo, string find, IMatchProcessor with)
        {
            var result = new List <Classification>();

            if (string.IsNullOrEmpty(find))
            {
                return(result);
            }

            var narrowed = Narrow(narrowTo);

            narrowed.ForEach(x => {
                var leaves = new List <TreeNode <Classification, string> >();
                leaves     = x.GetLeaves(leaves);
                leaves.ForEach(y => {
                    if (with.Process(find, y.Leaf))
                    {
                        result.AddRange(y.BuildChainUp(null, x.Id).OrderBy(z => z.Order));
                    }
                });
            });

            return(result);
        }
Ejemplo n.º 2
0
        //include toate tipurile de inscrieri si entitatile asociate + asocierile lor :D
        // calculeaza pozitia
        // TipDrept
        // InscrieriProprietari, Proprietar
        // InscrieriActeProprietate, ActProprietate
        static List <string> ExportInscriere(InscriereDetaliu inscriereD, IEnumerable <Proprietar> proprietariImobil, IMatcher matcher, IMatchProcessor matchProcessor)
        {
            StringBuilder builder1 = new StringBuilder();
            StringBuilder builder2 = new StringBuilder();

            var clasTipDocument = new List <Classification>()
            {
                new Classification(0, "root"),
                new Classification(1, "TipDocument")
            };

            var clasModDobandire = new List <Classification>()
            {
                new Classification(0, "root"),
                new Classification(1, "ModDobandire")
            };

            var clasTipInscriere = new List <Classification>()
            {
                new Classification(0, "root"),
                new Classification(1, "TipInscriere")
            };

            var clasTipDreptParte2 = new List <Classification>()
            {
                new Classification(0, "root"),
                new Classification(1, "TipDrept"),
                new Classification(2, "Parte2")
            };

            var clasTipDreptParte3 = new List <Classification>()
            {
                new Classification(0, "root"),
                new Classification(1, "TipDrept"),
                new Classification(2, "Parte3")
            };

            switch (inscriereD.ParteaCF)
            {
            case 2:
                builder1.Append("#05#T").Append(' ', 6);
                break;

            case 3:
                builder1.Append("#06#T").Append(' ', 6);
                break;
            }


            //moved to importer
            //if (inscriereD.TipInscriere.Denumire == "NOTATION")
            //{
            //    inscriereD.TipDrept = null;
            //    inscriereD.ModDobandire = null;
            //    inscriereD.Cota = string.Empty;
            //    inscriereD.Moneda = string.Empty;
            //    inscriereD.Valoarea = string.Empty;
            //    inscriereD.DetaliiDrept = string.Empty;
            //}


            builder1.Append(inscriereD.TipInscriere?.Descriere).Append(' ', 6);

            //if (inscriereD.TipDrept!=null) //maybe not this
            //{
            builder1.Append(inscriereD.TipDrept?.Denumire.ToUpper()).Append(' ', 6);
            //}

            if (!string.IsNullOrEmpty(inscriereD.Cota))
            {
                builder1.Append(inscriereD.Cota).Append(' ', 6);
            }

            inscriereD.InscrieriProprietari.ToList().ForEach(x =>
            {
                switch (x.Proprietar.TipPersoana)
                {
                case TipPersoana.F:
                    builder1.Append(x.Proprietar.Nume.Trim().ToUpper()).Append(' ').Append(x.Proprietar.Prenume.Trim().ToUpper());
                    break;

                case TipPersoana.J:
                    builder1.Append(x.Proprietar.Nume.ToUpper());
                    break;

                case TipPersoana.N:
                    builder1.Append("NEIDENTIFICAT");
                    break;
                }
                builder1.Append('.');
            });

            if (inscriereD.InscrieriProprietari.Count > 1)
            {
                builder1.Remove(builder1.Length - 1, 1); //ultimul punct
            }

            switch (inscriereD.ParteaCF)
            {
            case 2:
                builder2.Append("#55#");
                break;

            case 3:
                builder2.Append("#66#");
                break;
            }

            var act = inscriereD.InscrieriActe.FirstOrDefault().ActProprietate;

            builder2.Append(act.Numar).Append('|');
            builder2.Append(act.Data.HasValue ? act?.Data.Value.ToString("dd/MM/yyyy") : "").Append('|');

            var matchTipDocument = matcher.Match(clasTipDocument, act.TipActProprietate.TipDocumentId.ToString(), matchProcessor);

            builder2.Append(matchTipDocument.Count > 0 ? matchTipDocument[0].Name : "0").Append('|');
            builder2.Append(act.Emitent);
            //if (inscriereD.TipInscriere.Denumire == "NOTATION")
            //{
            //    builder2.Append("[NOTARE]");
            //}
            builder2.Append('|');           //observatii
            builder2.Append(0).Append('|'); // no f*****g clue

            var matchTipInscriere = matcher.Match(clasTipInscriere, inscriereD.TipInscriere?.Denumire, matchProcessor);

            builder2.Append(matchTipInscriere.Count > 0 ? matchTipInscriere[0].Name : "").Append('|');

            List <Classification> matchTipDrept = new List <Classification>();

            switch (inscriereD.ParteaCF)
            {
            case 2:
                matchTipDrept = matcher.Match(clasTipDreptParte2, inscriereD.TipDrept != null ? inscriereD.TipDrept.Id.ToString() : "", matchProcessor);
                break;

            case 3:
                matchTipDrept = matcher.Match(clasTipDreptParte3, inscriereD.TipDrept != null ? inscriereD.TipDrept.Id.ToString() : "", matchProcessor);
                break;
            }
            builder2.Append(matchTipDrept.Count > 0 ? matchTipDrept[0].Name : "0").Append('|');

            var matchModDobandire = matcher.Match(clasModDobandire, inscriereD.ModDobandire?.Denumire, matchProcessor);

            builder2.Append(matchModDobandire.Count > 0 ? matchModDobandire[0].Name : "0").Append('|');

            builder2.Append(inscriereD.Cota).Append('|');
            builder2.Append(inscriereD.Nota).Append('|');

            var propIndexes = inscriereD.InscrieriProprietari.ToList().Select(x => proprietariImobil.ToList().IndexOf(x.Proprietar));

            builder2.Append(string.Join(' ', propIndexes)).Append('|');

            builder2.Append(0).Append('|'); //moneda

            builder2.Append('|');           //valoare

            builder2.Append(inscriereD.DetaliiDrept).Append('|');
            builder2.Append(inscriereD.NumarCerere).Append('|');
            builder2.Append(inscriereD.DataCerere.HasValue ? inscriereD.DataCerere.Value.ToString("yyyy-MM-dd") + "T00:00:00+02:00" : "").Append('|');
            builder2.Append(inscriereD.Observatii).Append('|');
            builder2.Append("poz#").Append(inscriereD.Pozitia).Append('|');

            return(new List <string>
            {
                builder1.ToString(),
                builder2.ToString()
            });
        }
Ejemplo n.º 3
0
        public void Parse(IAdresaFaraLocalitate address, string field, IMatcher matcher, IMatchProcessor matchProcessor)
        {
            var classification = new List <Classification>()
            {
                new Classification()
                {
                    Order = 0, Name = "root"
                },
                new Classification()
                {
                    Order = 1, Name = "Adresa"
                }
            };

            var chunks = field.Split(',', ';');

            chunks.ToList().ForEach(x =>
            {
                var trimmed = x.Trim();
                var split   = trimmed.Split(' ', 2);
                if (split.Count() != 2)
                {
                    split = trimmed.Split('.', 2);
                }

                if (split.Count() == 2)
                {
                    var prefix = split[0].Trim('.');
                    split[1]   = split[1].Trim();

                    var classificationResult = matcher.Match(classification, prefix, matchProcessor);

                    if (classificationResult.Count > 0)
                    {
                        switch (classificationResult[0].Name)
                        {
                        case "TipStrada":
                            address.TipStrada = classificationResult[1].Name;
                            address.Strada    = split[1];
                            break;

                        case "Numar":
                            address.Numar = split[1];
                            break;

                        case "Bloc":
                            address.Bloc = split[1];
                            break;

                        case "Scara":
                            address.Scara = split[1];
                            break;

                        case "Etaj":
                            address.Etaj = split[1];
                            break;

                        case "Apt":
                            address.Apt = split[1];
                            break;
                        }
                    }
                    ;
                }
            });
        }
Ejemplo n.º 4
0
        public static void FromDTO(this Adresa adresa, OutputProprietarAdresa adresaDTO, IEnumerable <Judet> judeteAllInclussive, IAddressParser parser, IMatcher addressMatcher, IMatchProcessor matchProcessor)
        {
            var localitate = LocalitateFromDTO(adresaDTO.Judet, adresaDTO.Localitate, judeteAllInclussive);

            if (localitate != null)
            {
                adresa.SIRSUP = localitate.UAT.SIRUTA;
                adresa.SIRUTA = localitate.SIRUTA;
            }

            if (string.IsNullOrEmpty(adresaDTO.Adresa))
            {
                adresa.AdresaNecunoscuta = true;
            }
            else
            {
                parser.Parse(adresa, adresaDTO.Adresa, addressMatcher, matchProcessor);
            }

            adresa.AdresaImport     = adresaDTO.Adresa;
            adresa.JudetImport      = adresaDTO.Judet;
            adresa.LocalitateImport = adresaDTO.Localitate;
        }