Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- partial class Program
- {
- private static bool ValidateQuery(string query, out string[] queryParameters)
- {
- queryParameters = query.Split(' ');
- if (queryParameters.Length != 3)
- {
- return false;
- }
- else if (!(queryParameters[0].ToLower() == "first_name" || (queryParameters[0].ToLower() == "last_name" || queryParameters[0].ToLower() == "group" ||
- queryParameters[0].ToLower() == "rating" || queryParameters[0].ToLower() == "gpa") || !(queryParameters[1] == "==" || queryParameters[1] == "<>")))
- {
- return false;
- }
- else if (queryParameters[0].ToLower() == "rating" || queryParameters[0].ToLower() == "gpa")
- {
- if (!double.TryParse(queryParameters[2], out double k) || (queryParameters[1] != ">=" && queryParameters[1] != "<="))
- {
- return false;
- }
- }
- return true;
- }
- private static List<string> ProcessQuery(string[] queryParameters, string pathToDatabase)
- {
- string[] str1 = File.ReadAllLines(pathToDatabase);//массив строк базы данных
- List<string> list = new List<string>();
- for (int i = 1; i < str1.Length; i++)
- {
- string[] str = str1[i].Split(';');//массив элементов строки базы данных
- if (queryParameters[0] == "first_name")
- {
- if (queryParameters[1] == "==" && queryParameters[2].ToLower() == str[0].ToLower())
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<>" && queryParameters[2].ToLower() != str[0].ToLower())
- {
- list.Add(str1[i]);
- }
- }
- if (queryParameters[0].ToLower() == "last_name")
- {
- if (queryParameters[1] == "==" && queryParameters[2].ToLower() == str[1].ToLower())
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<>" && queryParameters[2].ToLower() != str[1].ToLower())
- {
- list.Add(str1[i]);
- }
- }
- if (queryParameters[0].ToLower() == "group")
- {
- if (queryParameters[1] == "==" && queryParameters[2].ToUpper() == str[2])
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<>" && queryParameters[2].ToUpper() != str[2])
- {
- list.Add(str1[i]);
- }
- }
- if (queryParameters[0].ToLower() == "rating")
- {
- if (queryParameters[1] == "==" && queryParameters[2] == str[3])
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<>" && queryParameters[2] != str[3])
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<=" && double.Parse(queryParameters[2]) <= double.Parse(str[3]))
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == ">=" && double.Parse(queryParameters[2]) <= double.Parse(str[3]))
- {
- list.Add(str1[i]);
- }
- }
- if (queryParameters[0].ToUpper() == "GPA")
- {
- if (queryParameters[1] == "==" && queryParameters[2] == str[4])
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<>" && queryParameters[2] != str[4])
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == "<=" && double.Parse(queryParameters[2]) <= double.Parse(str[4]))
- {
- list.Add(str1[i]);
- }
- else if (queryParameters[1] == ">=" && double.Parse(queryParameters[2]) <= double.Parse(str[4]))
- {
- list.Add(str1[i]);
- }
- }
- }
- return list;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement