public override string OtherAttributes(IRowReceive row) { if (!(row?.Values?.ContainsKey("RowType") ?? false)) { string message = $"no key for RowType"; //@class.Log(LogLevel.Information, 0, $"media transform dot job : {message}", null, null); message += ""; return(null); } var str = row.Values["RowType"]?.ToString(); switch (str.ToLowerInvariant()) { case "sender": return("shape=signature color=lime"); case "filter_transformer": case "filter": case "transformer": return("shape=invhouse color=lightgrey"); case "receiver": return("shape=cylinder color=lightblue"); default: string message = $"no shape defined for {str}"; //@class.Log(LogLevel.Information, 0, $"media transform dot job: {message}", null, null); message += ""; return(""); } }
IRowReceiveHierarchicalParent[] RecursiveFromDirectory(DirectoryInfo di, IRowReceive parent) { if (ExcludeFolderNames?.Length > 0) { //TODO: case insensitive if (ExcludeFolderNames.Contains(di.Name)) { return(null); } } var ret = new List <IRowReceiveHierarchicalParent>(); //var di = new DirectoryInfo(FolderName); try { var rh = DirectoryRow(di); if (parent != null) { rh.Parent = parent as IRowReceiveHierarchicalParent; } ret.Add(rh); var files = Files(di, rh); if (files?.Length > 0) { ret.AddRange(files); } rh.Values.Add("nrfiles", files?.Length); foreach (var dir in di.EnumerateDirectories()) { var filesFolders = RecursiveFromDirectory(dir, rh); if (filesFolders?.Length > 0) { ret.AddRange(filesFolders.Where(it => it != null).ToArray()); } } } catch (UnauthorizedAccessException ex) { string message = ex.Message; //@class.Log(LogLevel.Warning,0,$"unauthorized {message}",ex,null); message += "text"; } return(ret.ToArray()); }
public override string OtherAttributes(IRowReceive parent) { var str = parent.Values["RowType"]?.ToString(); switch (str) { case "folder": return("shape=folder color=lightblue"); case "file": return("shape=now color=lightgrey"); default: string message = $"no shape defined for {str}"; //@class.Log(LogLevel.Information, 0, $"media dot folder and files: {message}", null, null); message += ""; return(""); } }
RowReadHierarchical[] Files(DirectoryInfo di, IRowReceive parent) { var ret = new List <RowReadHierarchical>(); foreach (var searchSplitPattern in SearchPattern.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { foreach (var file in di.EnumerateFiles(searchSplitPattern)) { var item = new RowReadHierarchical(); item.Values.Add("Name", file.Name); item.Values.Add("FullName", file.FullName); item.Values.Add("RowType", "file"); item.Values.Add("CreationTimeUtc", file.CreationTimeUtc); item.Values.Add("LastAccessTimeUtc", file.LastAccessTimeUtc); item.Values.Add("LastWriteTimeUtc", file.LastWriteTimeUtc); item.Parent = parent as IRowReceiveHierarchicalParent; ret.Add(item); } } return(ret.ToArray()); }
public async Task LoadData() { //@class.Log(LogLevel.Information,0,$"loading from {solutionFileName}",null,null); int x = (int)Microsoft.CodeAnalysis.CSharp.Formatting.BinaryOperatorSpacingOptions.Ignore; var _ = typeof(Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions); var rr = new Dictionary <Guid, RowReadRelation>(); var dictAssemblyNames = new Dictionary <string, List <RowReadRelation> >(); var msWorkspace = MSBuildWorkspace.Create(); //var sol = msWorkspace.OpenSolutionAsync(@"D:\TFS\stankins\stankins.sln").Result; var sol = await msWorkspace.OpenSolutionAsync(SolutionFileName); var rrhSol = new RowReadRelation(); rrhSol.Values.Add("Name", Path.GetFileNameWithoutExtension(sol.FilePath)); rrhSol.Values.Add("FilePath", sol.FilePath); rrhSol.Values.Add("Type", sol.GetType().Name); var listProjects = new List <IRowReceiveRelation>(); rrhSol.Relations.Add("projects", listProjects); rr.Add(sol.Id.Id, rrhSol); var projectGraph = sol.GetProjectDependencyGraph(); var q = projectGraph.GetTopologicallySortedProjects().ToArray(); //@class.Log(LogLevel.Information,0,$"loading from {SolutionFileName} projects: {q.Length}",null,null); foreach (var projectId in q) { var project = sol.GetProject(projectId); var rrProject = new RowReadRelation(); listProjects.Add(rrProject); rrProject.Values.Add("ID", projectId.Id); rrProject.Values.Add("Name", project.Name); rrProject.Values.Add("FilePath", project.FilePath); rrProject.Values.Add("Type", project.GetType().Name); //rrProject.Add("Solution", rrhSol); rr.Add(projectId.Id, rrProject); var refProjects = projectGraph.GetProjectsThatThisProjectDirectlyDependsOn(projectId); var listRefProjects = new List <IRowReceiveRelation>(); rrProject.Relations.Add("referencedIn", listRefProjects); foreach (var item in refProjects) { var refItem = rr[item.Id]; listRefProjects.Add(refItem); } var c = project.GetCompilationAsync().Result; var listAssemblyReferenced = new List <IRowReceiveRelation>(); rrProject.Relations.Add("assemblyReferenced", listAssemblyReferenced); var refAssembly = c.ReferencedAssemblyNames.ToArray(); foreach (var item in refAssembly) { if (!dictAssemblyNames.ContainsKey(item.Name)) { dictAssemblyNames.Add(item.Name, new List <RowReadRelation>()); } var list = dictAssemblyNames[item.Name]; var rrAssFound = list.FirstOrDefault(it => it.Values["Version"].ToString() == item.Version.ToString()); if (rrAssFound == null) { rrAssFound = new RowReadRelation(); rrAssFound.Values.Add("Name", item.Name); rrAssFound.Values.Add("DisplayNameToken", item.GetDisplayName(true)); rrAssFound.Values.Add("DisplayName", item.GetDisplayName(false)); rrAssFound.Values.Add("Version", item.Version.ToString()); list.Add(rrAssFound); } listAssemblyReferenced.Add(rrAssFound); } //var x = project.MetadataReferences.ToArray(); //var y = x.Length; valuesRead = new IRowReceive[] { rrhSol }; } }
public override void EndLoadingAssembly(Assembly assembly) { valuesRead = new IRowReceive[1] { rr }; }
public async Task MySqlTestLoadDataWithLatestValueInt() { #region Arrange //ADD A DATABASE AND PUT nrPostsToAdd data into table string sqlcommand; string testName1 = "TEST"; bool equality = true; RowRead valLoop = null; ISerializeData sd = new SerializeDataInMemory(); IRowReceive[] valuesRead1 = new IRowReceive[100]; var values = new List <IRowReceive>(); var ConnString = @"server=localhost;Database=new_schema ;user id=george95; Pwd=1234;"; Dictionary <int, string> FieldNameToMarks1 = new Dictionary <int, string>(); DBTableData <int, MySqlConnection> tab2 = new DBTableData <int, MySqlConnection>(sd) { ConnectionString = ConnString, FieldNameToMark = "id", TableName = "employees_test;" }; var mysql_obj = new ReceiverTableMySQLInt(tab2); using (MySqlConnection connection = new MySqlConnection(ConnString)) { sqlcommand = "CREATE TABLE Employees_test(ID INT(6), Name VARCHAR(50));"; connection.Open(); using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) { command.ExecuteNonQuery(); } for (int Emp_ID = 1; Emp_ID < 10; Emp_ID++) { sqlcommand = "INSERT INTO Employees_test (ID, Name) VALUES (" + Emp_ID + ", '" + testName1 + "');"; using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) { command.ExecuteNonQuery(); } } #endregion #region Act sqlcommand = "SELECT * FROM Employees_test;"; using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) using (MySqlDataReader reader = (MySqlDataReader)command.ExecuteReader()) { var nrFields1 = reader.FieldCount; for (int i = 0; i < nrFields1; i++) { FieldNameToMarks1.Add(i, reader.GetName(i)); } while (reader.Read()) { valLoop = new RowRead(); for (int i = 0; i < nrFields1; i++) { object val; val = reader.GetValue(i); if (val != null && val == DBNull.Value) { val = null; } valLoop.Values.Add(FieldNameToMarks1[i], val); } values.Add(valLoop); } } connection.Close(); } await mysql_obj.LoadData(); using (MySqlConnection connection = new MySqlConnection(ConnString)) { sqlcommand = "DROP TABLE Employees_test;"; connection.Open(); using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) { command.ExecuteNonQuery(); } connection.Close(); } #endregion #region Assert var MySqlLoadResult = mysql_obj.valuesRead.Select(o => o.Values).ToList(); var AdoNetResult = values.Select(o => o.Values).ToList(); //AdoNetResult[7]["Name"] = 999; for (int index = 0; index < MySqlLoadResult.Count; index++) { if (!MySqlLoadResult[index].SequenceEqual(AdoNetResult[index])) { equality = false; } } Assert.IsTrue(equality); #endregion }
public virtual string OtherAttributes(IRowReceive parent) { return(null); }