Advertisement
sokolova4

Untitled

Oct 11th, 2020
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4.  
  5. partial class Program
  6. {
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13. private static bool ValidateQuery(string query, out string[] queryParameters)
  14. {
  15. queryParameters = query.Split(' ');
  16. if (queryParameters.Length != 3)
  17. {
  18. return false;
  19. }
  20.  
  21.  
  22.  
  23. else if (!(queryParameters[0].ToLower() == "first_name" || (queryParameters[0].ToLower() == "last_name" || queryParameters[0].ToLower() == "group" ||
  24. queryParameters[0].ToLower() == "rating" || queryParameters[0].ToLower() == "gpa") || !(queryParameters[1] == "==" || queryParameters[1] == "<>")))
  25. {
  26. return false;
  27. }
  28.  
  29. else if (queryParameters[0].ToLower() == "rating" || queryParameters[0].ToLower() == "gpa")
  30. {
  31. if (!double.TryParse(queryParameters[2], out double k) || (queryParameters[1] != ">=" && queryParameters[1] != "<="))
  32. {
  33. return false;
  34. }
  35. }
  36. return true;
  37. }
  38.  
  39. private static List<string> ProcessQuery(string[] queryParameters, string pathToDatabase)
  40. {
  41. string[] str1 = File.ReadAllLines(pathToDatabase);//массив строк базы данных
  42.  
  43. List<string> list = new List<string>();
  44. for (int i = 1; i < str1.Length; i++)
  45. {
  46. string[] str = str1[i].Split(';');//массив элементов строки базы данных
  47. if (queryParameters[0] == "first_name")
  48. {
  49. if (queryParameters[1] == "==" && queryParameters[2].ToLower() == str[0].ToLower())
  50. {
  51. list.Add(str1[i]);
  52. }
  53. else if (queryParameters[1] == "<>" && queryParameters[2].ToLower() != str[0].ToLower())
  54. {
  55. list.Add(str1[i]);
  56. }
  57.  
  58.  
  59. }
  60. if (queryParameters[0].ToLower() == "last_name")
  61. {
  62. if (queryParameters[1] == "==" && queryParameters[2].ToLower() == str[1].ToLower())
  63. {
  64. list.Add(str1[i]);
  65. }
  66. else if (queryParameters[1] == "<>" && queryParameters[2].ToLower() != str[1].ToLower())
  67. {
  68. list.Add(str1[i]);
  69. }
  70. }
  71. if (queryParameters[0].ToLower() == "group")
  72. {
  73. if (queryParameters[1] == "==" && queryParameters[2].ToUpper() == str[2])
  74. {
  75. list.Add(str1[i]);
  76. }
  77. else if (queryParameters[1] == "<>" && queryParameters[2].ToUpper() != str[2])
  78. {
  79. list.Add(str1[i]);
  80. }
  81.  
  82. }
  83. if (queryParameters[0].ToLower() == "rating")
  84. {
  85. if (queryParameters[1] == "==" && queryParameters[2] == str[3])
  86. {
  87. list.Add(str1[i]);
  88. }
  89. else if (queryParameters[1] == "<>" && queryParameters[2] != str[3])
  90. {
  91. list.Add(str1[i]);
  92. }
  93. else if (queryParameters[1] == "<=" && double.Parse(queryParameters[2]) <= double.Parse(str[3]))
  94. {
  95. list.Add(str1[i]);
  96. }
  97. else if (queryParameters[1] == ">=" && double.Parse(queryParameters[2]) <= double.Parse(str[3]))
  98. {
  99. list.Add(str1[i]);
  100. }
  101.  
  102. }
  103. if (queryParameters[0].ToUpper() == "GPA")
  104. {
  105. if (queryParameters[1] == "==" && queryParameters[2] == str[4])
  106. {
  107. list.Add(str1[i]);
  108. }
  109. else if (queryParameters[1] == "<>" && queryParameters[2] != str[4])
  110. {
  111. list.Add(str1[i]);
  112. }
  113. else if (queryParameters[1] == "<=" && double.Parse(queryParameters[2]) <= double.Parse(str[4]))
  114. {
  115.  
  116. list.Add(str1[i]);
  117. }
  118. else if (queryParameters[1] == ">=" && double.Parse(queryParameters[2]) <= double.Parse(str[4]))
  119. {
  120. list.Add(str1[i]);
  121. }
  122.  
  123. }
  124.  
  125. }
  126. return list;
  127.  
  128.  
  129.  
  130. }
  131. }
  132.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement