Ejemplo n.º 1
0
        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("");
            }
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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("");
            }
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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
     };
 }
Ejemplo n.º 7
0
        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
        }
Ejemplo n.º 8
0
 public virtual string OtherAttributes(IRowReceive parent)
 {
     return(null);
 }