Advertisement
Guest User

5. Parking Validation

a guest
Jul 10th, 2017
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.90 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. class Program
  8. {
  9.     static void Main()
  10.     {
  11.         int linesCount = int.Parse(Console.ReadLine());
  12.         Dictionary<string,string> registeredUsers = new Dictionary<string, string>();
  13.  
  14.         for (int i = 0; i < linesCount; i++)
  15.         {
  16.             string input = Console.ReadLine();
  17.             string action = input.Split()[0];
  18.  
  19.             if (action == "register")
  20.             {
  21.                 RegisterUser(input, registeredUsers);
  22.             }
  23.             else if (action == "unregister")
  24.             {
  25.                 UnRegisterUser(input, registeredUsers);
  26.             }
  27.         }
  28.  
  29.         foreach (var registeredUser in registeredUsers)
  30.         {
  31.             Console.WriteLine($"{registeredUser.Key} => {registeredUser.Value}");
  32.         }
  33.     }
  34.  
  35.     private static bool LicensePlateIsValid(string licensePlate)
  36.     {
  37.         if (licensePlate.Length != 8)
  38.         {
  39.             return false;
  40.         }
  41.        
  42.         string middle = licensePlate.Substring(2, 4);
  43.         string ends = licensePlate.Substring(0, 2) + licensePlate.Substring(licensePlate.Length - 2, 2);
  44.  
  45.         int value = 0;
  46.         bool endsAreLetters = ends.All(l => l >= 65 && l <= 90);
  47.         bool middleIsNumbers = int.TryParse(middle, out value);
  48.  
  49.         if (!(endsAreLetters && middleIsNumbers))
  50.         {
  51.             return false;
  52.         }
  53.  
  54.         return true;
  55.     }
  56.  
  57.     private static void RegisterUser(string input, Dictionary<string, string> registeredUsers)
  58.     {
  59.         string username = input.Split()[1];
  60.         string licensePlate = input.Split()[2];
  61.  
  62.         if (LicensePlateIsValid(licensePlate))
  63.         {
  64.             if (registeredUsers.ContainsKey(username))
  65.             {
  66.                 Console.WriteLine($"ERROR: already registered with plate number {registeredUsers[username]}");
  67.             }
  68.             else if (registeredUsers.ContainsValue(licensePlate))
  69.             {
  70.                 Console.WriteLine($"ERROR: license plate {licensePlate} is busy");
  71.             }
  72.             else
  73.             {
  74.                 Console.WriteLine($"{username} registered {licensePlate} successfully");
  75.                 registeredUsers[username] = licensePlate;
  76.             }
  77.         }
  78.         else
  79.         {
  80.             Console.WriteLine($"ERROR: invalid license plate {licensePlate}");
  81.         }
  82.     }
  83.  
  84.     private static void UnRegisterUser(string input, Dictionary<string, string> registeredUsers)
  85.     {
  86.         string username = input.Split()[1];
  87.         if (!registeredUsers.ContainsKey(username))
  88.         {
  89.             Console.WriteLine($"ERROR: user {username} not found");
  90.         }
  91.         else
  92.         {
  93.             Console.WriteLine($"user {username} unregistered successfully");
  94.             registeredUsers.Remove(username);
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement