public static string NameFromIco(string ico, bool IcoIfNotFound = false) { string cnnStr = Devmasters.Config.GetWebConfigValue("CnnString"); using (PersistLib p = new PersistLib()) { string sql = @"select jmeno from Firma where ico = @ico"; var res = p.ExecuteScalar(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", ico) }); if (PersistLib.IsNull(res) || string.IsNullOrEmpty(res as string)) { if (IcoIfNotFound) { return("IČO:" + ico); } else { return(string.Empty); } } else { return((string)res); } } }
public static IEnumerable <Firma> AllFromNameWildcards(string jmeno) { using (PersistLib p = new PersistLib()) { var sql = @"select * from Firma where jmeno like @jmeno"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("jmeno", Firma.JmenoBezKoncovky(jmeno) + "%") }); var found = new List <Firma>(); if (res.Tables.Count > 0 && res.Tables[0].Rows.Count > 0) { found.AddRange(res.Tables[0] .AsEnumerable() .Select(m => FromDataRow(m)) ); return(found); } else { return new Firma[] { } }; } }
public static void AddZahranicniFirma(string ico, string jmeno, string adresa) { /* * f.ICO = (string)dr["ico"]; * f.DIC = (string)PersistLib.IsNull(dr["dic"], string.Empty); * f.Datum_Zapisu_OR = (DateTime?)PersistLib.IsNull(dr["datum_zapisu_or"], null); * f.Stav_subjektu = Convert.ToInt32(PersistLib.IsNull(dr["Stav_subjektu"], 1)); * f.Jmeno = (string)PersistLib.IsNull(dr["jmeno"], string.Empty); * f.JmenoAscii = (string)PersistLib.IsNull(dr["jmenoascii"], string.Empty); * f.Kod_PF = (int?)PersistLib.IsNull(dr["Kod_PF"], null); * f.VersionUpdate = (int)dr["VersionUpdate"]; * //f.VazbyRaw = (string)PersistLib.IsNull(dr["vazbyRaw"], (string)"[]"); * f.IsInRS = (short?)PersistLib.IsNull(dr["IsInRS"], null); * f.KrajId = (string)PersistLib.IsNull(dr["krajid"], string.Empty); * f.OkresId = (string)PersistLib.IsNull(dr["okresid"], string.Empty); */ using (PersistLib p = new PersistLib()) { string sql = @"insert into firma(ico,dic,stav_subjektu, jmeno, jmenoascii, versionupdate, popis) values(@ico,@dic,@stav,@jmeno,@jmenoascii,0,@adresa)"; p.ExecuteNonQuery(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", ico), new System.Data.SqlClient.SqlParameter("dic", ico), new System.Data.SqlClient.SqlParameter("stav", (int)1), new System.Data.SqlClient.SqlParameter("jmeno", jmeno), new System.Data.SqlClient.SqlParameter("jmenoascii", Devmasters.TextUtil.RemoveDiacritics(jmeno)), new System.Data.SqlClient.SqlParameter("versionupdate", (long)0), new System.Data.SqlClient.SqlParameter("adresa", Devmasters.TextUtil.ShortenText(adresa, 100)), }); } }
private static Edge AngazovanostDataToEdge(AngazovanostData ang, Node fromNode, Node toNode, int distance) { var rel = new Edge(); rel.From = fromNode; rel.To = toNode; rel.Distance = distance; rel.RelFrom = (DateTime?)PersistLib.IsNull(ang.fromDate, null); if (rel.RelFrom < minDate) { rel.RelFrom = null; } rel.RelTo = (DateTime?)PersistLib.IsNull(ang.toDate, null); if (rel.RelTo < minDate) { rel.RelTo = null; } var relData = AngazovanostDataToRelationSimple(ang); rel.Descr = relData.Item2; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = relData.Item1.ToNiceDisplayName(); } rel.UpdateAktualnost(); return(rel); }
public static IEnumerable <Graph.Edge> GetDirectParentRelationsOsoby(string ico) { string sql = @"select OsobaID, datumOd, datumDo, typVazby, pojmenovaniVazby, podil from osobavazby where vazbakico=@ico "; string cnnStr = Devmasters.Config.GetWebConfigValue("CnnString"); List <Graph.Edge> relations = new List <Graph.Edge>(); //get zakladni informace o subj. //find politician in the DB var db = new Devmasters.PersistLib(); var sqlCall = HlidacStatu.Lib.DirectDB.GetRawSql(System.Data.CommandType.Text, sql, new IDataParameter[] { new SqlParameter("ico", ico) }); //string sqlFirma = "select top 1 stav_subjektu from firma where ico = @ico"; var ds = db.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sqlCall, null); if (ds.Tables[0].Rows.Count > 0) { var parents = ds.Tables[0].AsEnumerable() .Select(dr => new AngazovanostData() { subjId = ((int)dr["osobaId"]).ToString(), subjname = "", NodeType = Node.NodeType.Company, fromDate = (DateTime?)PersistLib.IsNull(dr["datumOd"], null), toDate = (DateTime?)PersistLib.IsNull(dr["datumDo"], null), kod_ang = Convert.ToInt32(dr["typVazby"]), descr = (string)PersistLib.IsNull(dr["PojmenovaniVazby"], ""), podil = (decimal?)PersistLib.IsNull(dr["podil"], null) }) .ToArray(); var ret = new List <Edge>(); for (int i = 0; i < parents.Length; i++) { AngazovanostData ang = parents[i]; var rel = AngazovanostDataToEdge(ang, new Node() { Type = Node.NodeType.Person, Id = ang.subjId }, new Node() { Type = Node.NodeType.Person, Id = ico }, -1 ); ret.Add(rel); } return(Edge.GetLongestEdges(ret)); } return(new Graph.Edge[] { }); }
public static IEnumerable <string> AllIcoInRS(bool includedIcosInHoldings = false) { using (PersistLib p = new PersistLib()) { string sql = @"select ico from Firma where IsInRS = 1"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, null); if (res.Tables.Count > 0 && res.Tables[0].Rows.Count > 0) { var allIcos = res.Tables[0] .AsEnumerable() .Where(r => Devmasters.TextUtil.IsNumeric((string)r["ICO"])) .Select(r => (string)r["ICO"]) .ToArray(); if (includedIcosInHoldings == false) { return(allIcos); } else { HashSet <string> holdingIcos = new HashSet <string>(); foreach (var i in allIcos) { if (!holdingIcos.Contains(i)) { holdingIcos.Add(i); } Firma f = Firmy.Get(i); foreach (var hi in f.IcosInHolding(Relation.AktualnostType.Nedavny)) { if (!holdingIcos.Contains(hi)) { holdingIcos.Add(hi); } } } return(holdingIcos); } } else { return new string[] { } }; } }
public static IEnumerable <Firma> AllFirmyInRS(bool skipDS_Nace = false) { using (PersistLib p = new PersistLib()) { string sql = @"select * from Firma where IsInRS = 1"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, null); if (res.Tables.Count > 0 && res.Tables[0].Rows.Count > 0) { return(res.Tables[0] .AsEnumerable() .Where(r => Devmasters.TextUtil.IsNumeric((string)r["ICO"])) .Select(r => FromDataRow(r, skipDS_Nace))); } else { return new Firma[] { } }; } }
public static IEnumerable <string> AllIcoInRS() { using (PersistLib p = new PersistLib()) { string sql = @"select ico from Firma where IsInRS = 1"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, null); if (res.Tables.Count > 0 && res.Tables[0].Rows.Count > 0) { return(res.Tables[0] .AsEnumerable() .Where(r => Devmasters.Core.TextUtil.IsNumeric((string)r["ICO"])) .Select(r => (string)r["ICO"])); } else { return new string[] { } }; } }
private static Firma FromDataRow(DataRow dr, bool skipDS_Nace = false) { Firma f = new Data.Firma(); f.ICO = (string)dr["ico"]; f.DIC = (string)PersistLib.IsNull(dr["dic"], string.Empty); f.Datum_Zapisu_OR = (DateTime?)PersistLib.IsNull(dr["datum_zapisu_or"], null); f.Stav_subjektu = Convert.ToInt32(PersistLib.IsNull(dr["Stav_subjektu"], 1)); f.Status = Convert.ToInt32(PersistLib.IsNull(dr["Status"], 1)); f.Jmeno = (string)PersistLib.IsNull(dr["jmeno"], string.Empty); f.JmenoAscii = (string)PersistLib.IsNull(dr["jmenoascii"], string.Empty); f.Kod_PF = (int?)PersistLib.IsNull(dr["Kod_PF"], null); f.VersionUpdate = (int)dr["VersionUpdate"]; //f.VazbyRaw = (string)PersistLib.IsNull(dr["vazbyRaw"], (string)"[]"); f.IsInRS = (short?)PersistLib.IsNull(dr["IsInRS"], null); f.KrajId = (string)PersistLib.IsNull(dr["krajid"], string.Empty); f.OkresId = (string)PersistLib.IsNull(dr["okresid"], string.Empty); f.Typ = (int?)PersistLib.IsNull(dr["Typ"], null); if (skipDS_Nace == false) { using (PersistLib p = new PersistLib()) { f.DatovaSchranka = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, "select DatovaSchranka from firma_DS where ico=@ico", new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", f.ICO) }).Tables[0] .AsEnumerable() .Select(m => m[0].ToString()) .ToArray(); f.NACE = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, "select NACE from firma_Nace where ico=@ico", new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", f.ICO) }).Tables[0] .AsEnumerable() .Select(m => m[0].ToString()) .ToArray(); } } return(f); }
public static Firma FromIco(string ico) { Firma f = new Data.Firma(); using (PersistLib p = new PersistLib()) { string sql = @"select * from Firma where ico = @ico"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", ico) }); if (res.Tables[0].Rows.Count > 0) { return(FromDataRow(res.Tables[0].Rows[0])); } else { return(Firma.NotFound); } } }
public static Firma FromDS(string ds) { Firma f = new Data.Firma(); using (PersistLib p = new PersistLib()) { string sql = @"select firma.* from Firma_ds fds inner join firma on firma.ico = fds.ico where DatovaSchranka = @ds"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ds", ds) }); if (res.Tables[0].Rows.Count > 0) { return(FromDataRow(res.Tables[0].Rows[0])); } else { return(Firma.NotFound); } } }
public static IEnumerable <Firma> AllFromName(string jmeno) { using (PersistLib p = new PersistLib()) { string sql = @"select * from Firma where jmeno = @jmeno"; var res = p.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("jmeno", jmeno) }); if (res.Tables.Count > 0 && res.Tables[0].Rows.Count > 0) { return(res.Tables[0] .AsEnumerable() .Where(r => Devmasters.TextUtil.IsNumeric((string)r["ICO"])) .Select(m => FromDataRow(m))); } else { return new Firma[] { } }; } }
public void Save() { this.JmenoAscii = Devmasters.Core.TextUtil.RemoveDiacritics(this.Jmeno); string sql = @"exec Firma_Save @ICO,@DIC,@Datum_zapisu_OR,@Stav_subjektu,@Jmeno,@Jmenoascii,@Kod_PF,@Source, @Popis, @VersionUpdate, @krajId, @okresId, @status "; string sqlNACE = @"INSERT into firma_NACE(ico, nace) values(@ico,@nace)"; string sqlDS = @"INSERT into firma_DS(ico, DatovaSchranka) values(@ico,@DatovaSchranka)"; string cnnStr = Devmasters.Core.Util.Config.GetConfigValue("CnnString"); try { using (PersistLib p = new PersistLib()) { p.ExecuteNonQuery(cnnStr, System.Data.CommandType.Text, sql, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", this.ICO), new System.Data.SqlClient.SqlParameter("dic", this.DIC), new System.Data.SqlClient.SqlParameter("Datum_zapisu_OR", this.Datum_Zapisu_OR), new System.Data.SqlClient.SqlParameter("Stav_subjektu", this.Stav_subjektu), new System.Data.SqlClient.SqlParameter("Jmeno", this.Jmeno), new System.Data.SqlClient.SqlParameter("Jmenoascii", this.JmenoAscii), new System.Data.SqlClient.SqlParameter("Kod_PF", this.Kod_PF), new System.Data.SqlClient.SqlParameter("Source", this.Source), new System.Data.SqlClient.SqlParameter("Popis", this.Popis), new System.Data.SqlClient.SqlParameter("VersionUpdate", this.VersionUpdate), new System.Data.SqlClient.SqlParameter("KrajId", this.KrajId), new System.Data.SqlClient.SqlParameter("OkresId", this.OkresId), new System.Data.SqlClient.SqlParameter("Status", this.Status), }); if (this.DatovaSchranka != null) { p.ExecuteNonQuery(cnnStr, System.Data.CommandType.Text, "delete from firma_DS where ico=@ico", new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", this.ICO) }); foreach (var ds in this.DatovaSchranka.Distinct()) { p.ExecuteNonQuery(cnnStr, System.Data.CommandType.Text, sqlDS, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", this.ICO), new System.Data.SqlClient.SqlParameter("DatovaSchranka", ds), }); } } if (this.NACE != null) { p.ExecuteNonQuery(cnnStr, System.Data.CommandType.Text, "delete from firma_NACE where ico=@ico", new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", this.ICO) }); foreach (var nace in this.NACE.Distinct()) { p.ExecuteNonQuery(cnnStr, System.Data.CommandType.Text, sqlNACE, new IDataParameter[] { new System.Data.SqlClient.SqlParameter("ico", this.ICO), new System.Data.SqlClient.SqlParameter("nace", nace), }); } } } } catch (Exception e) { Console.WriteLine(e.ToString()); //throw; } }
public static List <Edge> GetChildrenRelations(string sql, Node.NodeType nodeType, string nodeId, DateTime?datumOd, DateTime?datumDo, IDataParameter[] parameters, int level, bool goDeep, Edge parent, ExcludeDataCol excludeICO, decimal minPodil, Relation.AktualnostType aktualnost) { if (excludeICO == null) { excludeICO = new ExcludeDataCol(); } string cnnStr = Devmasters.Config.GetWebConfigValue("CnnString"); List <Edge> relations = new List <Edge>(); if (level == 0 && parent == null) { //add root node / edge relations.Add( new Edge() { From = null, Root = true, To = new Node() { Id = nodeId, Type = nodeType }, RelFrom = datumOd, RelTo = datumDo, Distance = 0 } ); } //get zakladni informace o subj. //find politician in the DB var db = new Devmasters.PersistLib(); var sqlCall = HlidacStatu.Lib.DirectDB.GetRawSql(System.Data.CommandType.Text, sql, parameters); //string sqlFirma = "select top 1 stav_subjektu from firma where ico = @ico"; var ds = db.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sqlCall, null); if (ds.Tables[0].Rows.Count > 0) { List <AngazovanostData> rows = new List <AngazovanostData>(); foreach (DataRow dr in ds.Tables[0].Rows) { AngazovanostData angaz = null; var ico = (string)dr["VazbakIco"]; if (string.IsNullOrEmpty(ico)) { if (dr.Table.Columns.Contains("vazbakOsobaId")) { var vazbakOsobaId = (int?)PersistLib.IsNull(dr["vazbakOsobaId"], null); if (vazbakOsobaId != null) { Osoba o = Osoby.GetById.Get(vazbakOsobaId.Value); angaz = new AngazovanostData() { subjId = vazbakOsobaId.Value.ToString(), NodeType = Node.NodeType.Person, fromDate = (DateTime?)PersistLib.IsNull(dr["datumOd"], null), toDate = (DateTime?)PersistLib.IsNull(dr["datumDo"], null), kod_ang = Convert.ToInt32(dr["typVazby"]), descr = (string)PersistLib.IsNull(dr["PojmenovaniVazby"], ""), podil = (decimal?)PersistLib.IsNull(dr["podil"], null) }; } } } else { angaz = new AngazovanostData() { subjId = ico, subjname = "", NodeType = Node.NodeType.Company, fromDate = (DateTime?)PersistLib.IsNull(dr["datumOd"], null), toDate = (DateTime?)PersistLib.IsNull(dr["datumDo"], null), kod_ang = Convert.ToInt32(dr["typVazby"]), descr = (string)PersistLib.IsNull(dr["PojmenovaniVazby"], ""), podil = (decimal?)PersistLib.IsNull(dr["podil"], null) }; } rows.Add(angaz); } List <AngazovanostData> filteredRels = new List <AngazovanostData>(); //delete vazby ve stejnem obdobi if (rows.Count > 0) { //per ico foreach (var gIco in rows.Select(m => m.subjId).Distinct()) { var relsForIco = rows.Where(m => m.subjId == gIco); //find longest, or separate relation foreach (var r in relsForIco) { if (relsForIco .Any(rr => rr != r && rr.fromDate < r.fromDate && (rr.toDate > r.toDate || rr.toDate.HasValue == false) ) ) { //skip } else { filteredRels.Add(r); } } } } foreach (AngazovanostData ang in filteredRels.OrderBy(m => m.kod_ang)) { if (ang.kod_ang == 100) //souhrny (casove) vztah, zkontroluj, zda uz tam neni jiny vztah se stejnym rozsahem doby { if ( relations.Any( r => r.To.Id == ang.subjId && r.To.Type == ang.NodeType && r.RelFrom == ang.fromDate && r.RelTo == ang.toDate ) ) { continue; } } var rel = AngazovanostDataToEdge(ang, new Node() { Type = nodeType, Id = nodeId }, new Node() { Type = ang.NodeType, Id = ang.subjId }, level + 1 ); if (excludeICO.Contains(rel)) { continue;//skip to the next } if (rel.Aktualnost >= aktualnost) { relations.Add(rel); } } } if (goDeep && relations.Count > 0) { level++; List <Edge> deeperRels = new List <Edge>(); List <Edge> excludeMore = new List <Edge>(); if (parent != null) { excludeMore = relations.ToList(); } ////navazej na ten, ktery je nejdelsi //var parentRels = relations.GroupBy(x => new { x.To.Id }, (key, rels) => //{ // DateTime? fromDate = rels.Any(m => m.FromDate == null) ? (DateTime?)null : rels.Min(m => m.FromDate); // DateTime? toDate = rels.Any(m => m.ToDate == null) ? (DateTime?)null : rels.Max(m => m.ToDate); // Relation bestRelation = Relation.GetLongestRelation(rels); // return new // { // SubjIco = key.To.Id, // FromDate = fromDate, // ToDate = toDate, // BestRelation = bestRelation, // }; //}); foreach (var rel in relations.Where(m => m.Root == false)) { //old deeperRels.AddRange( vsechnyDcerineVazbyInternal(rel.To.Id, level, goDeep, rel, excludeICO.AddItem(new ExcludeData(rel)), rel.RelFrom, rel.RelTo, minPodil, aktualnost) ); } relations.AddRange(deeperRels); } if (level == 0) { //remove inactive companies from last branches //TODO } return(relations); }
public static List <Edge> GetChildrenRelations(string sql, Node.NodeType nodeType, string nodeId, DateTime?datumOd, DateTime?datumDo, IDataParameter[] parameters, int level, bool goDeep, Edge parent, ExcludeDataCol excludeICO, Relation.AktualnostType aktualnost) { if (excludeICO == null) { excludeICO = new ExcludeDataCol(); } string cnnStr = Devmasters.Core.Util.Config.GetConfigValue("CnnString"); List <Edge> relations = new List <Edge>(); if (level == 0 && parent == null) { //add root node / edge relations.Add( new Edge() { From = null, Root = true, To = new Node() { Id = nodeId, Type = nodeType }, RelFrom = datumOd, RelTo = datumDo, Distance = 0 } ); } //get zakladni informace o subj. //find politician in the DB var db = new Devmasters.Core.PersistLib(); var sqlCall = HlidacStatu.Lib.DirectDB.GetRawSql(System.Data.CommandType.Text, sql, parameters); //string sqlFirma = "select top 1 stav_subjektu from firma where ico = @ico"; var ds = db.ExecuteDataset(cnnStr, System.Data.CommandType.Text, sqlCall, null); if (ds.Tables[0].Rows.Count > 0) { List <AngazovanostData> rows = new List <AngazovanostData>(); foreach (DataRow dr in ds.Tables[0].Rows) { AngazovanostData angaz = null; var ico = (string)dr["VazbakIco"]; if (string.IsNullOrEmpty(ico)) { if (dr.Table.Columns.Contains("vazbakOsobaId")) { var vazbakOsobaId = (int?)PersistLib.IsNull(dr["vazbakOsobaId"], null); if (vazbakOsobaId != null) { Osoba o = Osoby.GetById.Get(vazbakOsobaId.Value); angaz = new AngazovanostData() { subjId = vazbakOsobaId.Value.ToString(), NodeType = Node.NodeType.Person, fromDate = (DateTime?)PersistLib.IsNull(dr["datumOd"], null), toDate = (DateTime?)PersistLib.IsNull(dr["datumDo"], null), kod_ang = Convert.ToInt32(dr["typVazby"]), descr = (string)PersistLib.IsNull(dr["PojmenovaniVazby"], ""), podil = (decimal?)PersistLib.IsNull(dr["podil"], null) }; } } } else { angaz = new AngazovanostData() { subjId = ico, subjname = "", NodeType = Node.NodeType.Company, fromDate = (DateTime?)PersistLib.IsNull(dr["datumOd"], null), toDate = (DateTime?)PersistLib.IsNull(dr["datumDo"], null), kod_ang = Convert.ToInt32(dr["typVazby"]), descr = (string)PersistLib.IsNull(dr["PojmenovaniVazby"], ""), podil = (decimal?)PersistLib.IsNull(dr["podil"], null) }; } rows.Add(angaz); } List <AngazovanostData> filteredRels = new List <AngazovanostData>(); //delete vazby ve stejnem obdobi if (rows.Count > 0) { //per ico foreach (var gIco in rows.Select(m => m.subjId).Distinct()) { var relsForIco = rows.Where(m => m.subjId == gIco); //find longest, or separate relation foreach (var r in relsForIco) { if (relsForIco .Any(rr => rr != r && rr.fromDate < r.fromDate && (rr.toDate > r.toDate || rr.toDate.HasValue == false) ) ) { //skip } else { filteredRels.Add(r); } } } } foreach (AngazovanostData ang in filteredRels.OrderBy(m => m.kod_ang)) { if (ang.kod_ang == 100) //souhrny (casove) vztah, zkontroluj, zda uz tam neni jiny vztah se stejnym rozsahem doby { if ( relations.Any( r => r.To.Id == ang.subjId && r.To.Type == ang.NodeType && r.RelFrom == ang.fromDate && r.RelTo == ang.toDate ) ) { continue; } } var rel = new Edge(); rel.From = new Node() { Type = nodeType, Id = nodeId }; rel.To = new Node() { Type = ang.NodeType, Id = ang.subjId }; rel.Distance = level + 1; rel.RelFrom = (DateTime?)PersistLib.IsNull(ang.fromDate, null); if (rel.RelFrom < minDate) { rel.RelFrom = null; } rel.RelTo = (DateTime?)PersistLib.IsNull(ang.toDate, null); if (rel.RelTo < minDate) { rel.RelTo = null; } int kod_ang = ang.kod_ang; /* * 3 - prokura * 4 - člen dozorčí rady * 24 - spolecnik * 5 - Jediný akcionář * 1 - jednatel * */ rel.Descr = ang.descr; Firma.RelationSimpleEnum relRelationship = Firma.RelationSimpleEnum.Jiny; switch (kod_ang) { case 1: relRelationship = Firma.RelationSimpleEnum.Statutarni_organ; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Jednatel.ToNiceDisplayName(); } break; case 3: relRelationship = Firma.RelationSimpleEnum.Statutarni_organ; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Prokura.ToNiceDisplayName(); } break; case 4: case 7: case 2: case 18: case 25: case 26: case 28: case 31: relRelationship = Firma.RelationSimpleEnum.Statutarni_organ; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Dozorci_rada.ToNiceDisplayName(); } break; case 33: case 34: case 35: relRelationship = Firma.RelationSimpleEnum.Zakladatel; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Dozorci_rada.ToNiceDisplayName(); } break; case 5: case 9: case 10: case 15: case 19: case 24: relRelationship = Firma.RelationSimpleEnum.Spolecnik; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Spolecnik.ToNiceDisplayName(); } break; case 100: relRelationship = Firma.RelationSimpleEnum.Souhrnny; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Jednatel.ToNiceDisplayName(); } break; case 23: // case 29: // case 11: // case 12: // case 13: // case 16: // case 17: // case 37: // case 40: // case 41: // case 42: // case 99: relRelationship = Firma.RelationSimpleEnum.Jiny; break; default: if (kod_ang < 0) { relRelationship = (Firma.RelationSimpleEnum)kod_ang; } else { //rel.Relationship = Relation.RelationDescriptionEnum.Jednatel; relRelationship = Firma.RelationSimpleEnum.Jiny; if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = Firma.RelationSimpleEnum.Jednatel.ToNiceDisplayName(); } } break; } if (excludeICO.Contains(rel)) { continue;//skip to the next } if (string.IsNullOrEmpty(rel.Descr)) { rel.Descr = relRelationship.ToNiceDisplayName(); } rel.UpdateAktualnost(); if (rel.Aktualnost >= aktualnost) { relations.Add(rel); } } } if (goDeep && relations.Count > 0) { level++; List <Edge> deeperRels = new List <Edge>(); List <Edge> excludeMore = new List <Edge>(); if (parent != null) { excludeMore = relations.ToList(); } ////navazej na ten, ktery je nejdelsi //var parentRels = relations.GroupBy(x => new { x.To.Id }, (key, rels) => //{ // DateTime? fromDate = rels.Any(m => m.FromDate == null) ? (DateTime?)null : rels.Min(m => m.FromDate); // DateTime? toDate = rels.Any(m => m.ToDate == null) ? (DateTime?)null : rels.Max(m => m.ToDate); // Relation bestRelation = Relation.GetLongestRelation(rels); // return new // { // SubjIco = key.To.Id, // FromDate = fromDate, // ToDate = toDate, // BestRelation = bestRelation, // }; //}); foreach (var rel in relations.Where(m => m.Root == false)) { //old deeperRels.AddRange( vsechnyDcerineVazbyInternal(rel.To.Id, level, goDeep, rel, excludeICO.AddItem(new ExcludeData(rel)), rel.RelFrom, rel.RelTo, aktualnost) ); } relations.AddRange(deeperRels); } if (level == 0) { //remove inactive companies from last branches //TODO } return(relations); }