first commit

This commit is contained in:
2021-07-30 23:37:22 +05:30
commit aa3496ec41
5 changed files with 234 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
using System;
using System.Diagnostics;
using System.Management;
using TestConsoleApp;
namespace databaseconnection
{
class Program
{
static string ProcessName = "AcroRd32";
static string UserID = "";
static void Main(string[] args)
{
var parser = new QueryParser();
var stopWatch = Stopwatch.StartNew();
var columns=parser.Parse();
var time = stopWatch.Elapsed.TotalMilliseconds;
Console.WriteLine(columns);
//var anInstanceofMyClass = new Program();
//anInstanceofMyClass.checkAcrobatProcess();
//Console.WriteLine("Hello World!");
//Console.WriteLine("localDate - " + localDate);
}
private void checkAcrobatProcess()
{
if (OperatingSystem.IsWindows())
{
try
{
//CatchStackOverflow1();
foreach (Process process in Process.GetProcessesByName(ProcessName))
{
if ((process.MainWindowTitle).Equals("Adobe Acrobat Reader DC (32-bit)"))
{
Console.WriteLine("checkAcrobatProcess DEBUG: Adobe Acrobat Standard DC (32-bit) is launched");
ObjectQuery objQuery = new ObjectQuery("Select * From Win32_Process where ProcessId='" + process.Id + "'");
ManagementObjectSearcher mos = new ManagementObjectSearcher(objQuery);
foreach (ManagementObject mo in mos.Get())
{
string[] s = new string[2];
mo.InvokeMethod("GetOwner", (object[])s);
UserID = s[0].ToLower().ToString();
Console.WriteLine("checkAcrobatProcess DEBUG: " + UserID + " launched the acrobat");
break;
}
Console.WriteLine("checkAcrobatProcess DEBUG: waitforexit");
process.WaitForExit();
break;
}
}
}
catch (Exception ex)
{
Console.WriteLine("checkAcrobatProcess DEBUG: Failed!! " + ex.Message);
}
}
checkAcrobatProcess();
}
public static void CatchStackOverflow1()
{
try
{
throw new StackOverflowException();
}
catch (StackOverflowException) //catch (StackOverflowException ex)
{
}
}
}
}
+88
View File
@@ -0,0 +1,88 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace TestConsoleApp
{
public class QueryParser
{
public List<string> Parse()
{
var totalQuery = File.ReadAllText(@"D:\empt.txt");
return _Parse(totalQuery);
}
List<string> _Parse(string actualQuery)
{
string columnString = GetColumnString(actualQuery);
List<string> resultColumnlist = new List<string>();
var commaSeperatedArray = columnString.Split(',');
for (int i = 0; i < commaSeperatedArray.Length; i++)
{
var column = commaSeperatedArray[i];
if (IsPredefinedFunction(column))
{
if (!IsPerfectPredefinedFunction(column))
{
column = MakeItPerfect(ref i, commaSeperatedArray, commaSeperatedArray[i]);
}
resultColumnlist.Add(column);
}
else
{
resultColumnlist.Add(column);
}
}
return resultColumnlist;
}
string GetColumnString(string actualQuery)
{
actualQuery = actualQuery.Replace(System.Environment.NewLine, " ");
var fromidex = actualQuery.ToLower().LastIndexOf("from ");
var splitted = actualQuery.Substring(0, fromidex);
splitted = splitted.TrimStart().Remove(0, "select".Length);
return splitted;
}
bool IsPredefinedFunction(string name)
{
var _name = name.ToLower();
bool result = false;
foreach (var function in PredefinedFunctions())
{
if (_name.Contains(function.ToLower()))
{
result = true;
break;
}
}
return result;
}
string[] PredefinedFunctions()
{
return new string[] {
"coalesce","concat","select","min","max","count"
};
}
bool IsPerfectPredefinedFunction(string name)
{
var opencount = name.Count(c => c == '(');
var closecount = name.Count(c => c == ')');
return opencount == closecount;
}
string MakeItPerfect(ref int index, string[] colArray, string columnName)
{
index = index + 1;
var column = columnName + "," + colArray[index];
if (!IsPerfectPredefinedFunction(column))
{
column = MakeItPerfect(ref index, colArray, column);
}
return column;
}
}
}
+27
View File
@@ -0,0 +1,27 @@
using System;
using System.Diagnostics;
namespace TestConsoleApp
{
class Test
{
public static void Execute()
{
var stopWatch = Stopwatch.StartNew();
for (int i = 0; i < 99999; i++)
{
var a = 0;a += i;a++;
}
Console.WriteLine("{0}", stopWatch.Elapsed.TotalMilliseconds);
var stopWatch2 = Stopwatch.StartNew();
for (int i = 0; i < 99999; i++)
{
var a = 0; a += i; a++;
}
Console.WriteLine("{0}", stopWatch2.Elapsed.TotalMilliseconds);
}
}
}
+12
View File
@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Management" Version="5.0.0" />
</ItemGroup>
</Project>
+25
View File
@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31321.278
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestConsoleApp", "TestConsoleApp.csproj", "{55803876-CE84-4F74-9B21-AEA5353EAC5B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{55803876-CE84-4F74-9B21-AEA5353EAC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55803876-CE84-4F74-9B21-AEA5353EAC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55803876-CE84-4F74-9B21-AEA5353EAC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55803876-CE84-4F74-9B21-AEA5353EAC5B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C2ADFE16-21AF-4DC6-B341-4AE0F9B528DD}
EndGlobalSection
EndGlobal