using System.Collections.Generic; using System.Xml.Linq; using Kreta.Framework.Entities; namespace Kreta.Framework.Util { public static class EntityUtils { /// /// Visszaadja az entitásokhoz tartozó aktív kapcsolatokat. /// /// /// /// public static Dictionary> GetEntitiesConnections(List entityIds, List entitasNevek) { // entityhistory szures XDocument xmlDoc = new XDocument(new XElement("EntitasNevek")); foreach (var entitasNev in entitasNevek) { xmlDoc.Root.Add(new XElement("Entitas", entitasNev)); } var EntitasNevek = xmlDoc.ToString(); xmlDoc = new XDocument(new XElement("Entitasok")); foreach (var entitasId in entityIds) { xmlDoc.Root.Add(new XElement("EntitasId", entitasId)); } var EntitasIdk = xmlDoc.ToString(); var result = new Dictionary>(); using (SDA.DataProvider.SDACommand command = UserContext.Instance.SDAConnection.CreateCommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.CommandText = @"sp_GetEntitasAktivKapcsolatai"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add("EntitasIDk", EntitasIdk); command.Parameters.Add("EntitasNevek", EntitasNevek); using (SDA.DataProvider.SDADataReader reader = command.ExecuteReader()) { while (reader.Read()) { var entitasId = reader.GetInt32(0); var targetTableName = reader.GetString(1); var targetColumnName = reader.GetString(2); var sorokSzama = reader.GetInt32(3); if (!result.ContainsKey(entitasId)) { result.Add(entitasId, new List()); } result[entitasId].Add(new EntityConnectionModel { TargetTableName = targetTableName, TargetColumnName = targetColumnName, RowsCount = sorokSzama }); } } } return result; } } }