private void SignIn() { string username, password; View.Write("Username: "******"Password: "******"Username or password incorrect."); } else if (user.Type == UserType.Employee) { View.Clear(); new EmployeeAction().Initialize(user as Employee); } else { View.Clear(); new EmployerAction().Initialize(user as Employer); } View.Clear(); }
private void SignUp() { string input; bool @break = true; AbstractUser user = null; #region Status while (true) { View.WriteLine("Do you want to hire people or get a job? (hire/get)"); @break = true; View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); if (input == "hire" || input == "h") { user = new Employer(); } else if (input == "get" || input == "g") { user = new Employee(); } else { @break = false; View.WriteErrorAndClear("Oh I don't have any other options, sorry. Choose hire or get."); } if (@break) { break; } } #endregion View.Clear(); #region Username while (true) { View.WriteLine("Enter a username that is at least 5 characters"); View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); try { user.Username = input; if (DBUserUtils.UsernameCheck(input) != null) { throw new Exception("This username is already taken."); } break; } catch (Exception ex) { View.WriteErrorAndClear(ex.Message); } } #endregion View.Clear(); #region Email while (true) { View.WriteLine("Enter a valid email address (it's better to enter your own email address)"); View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); try { user.EmailAddress = input; if (DBUserUtils.EmailAddressCheck(input) != null) { throw new Exception("This email address is already taken."); } break; } catch (Exception ex) { View.WriteErrorAndClear(ex.Message); } } #endregion View.Clear(); #region Password while (true) { View.WriteLine("Enter a password that is between 5 and 15 characters and contains at least one uppercase letter, one lowercase letter, one digit, one non-alphabetic symbol"); View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); try { user.Password = input; } catch (Exception ex) { View.WriteErrorAndClear(ex.Message); continue; } View.WriteLine(); View.WriteLine("Repeat your password"); View.Write("> "); input = Console.ReadLine().Trim(); if (input == user.Password) { break; } else { View.WriteErrorAndClear("That does not match your password."); } } #endregion View.Clear(); #region PIN verification while (true) { string pin = PinGenerator.NewPin(); View.WriteLine("Rewrite the symbols."); View.WriteLine(pin); View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); if (input == pin) { break; } else { View.WriteErrorAndClear("Not correct. Try again."); } } #endregion View.Clear(); #region Summary while (true) { View.WriteLine(user.ToString()); View.WriteLine("Sign up? (y/n)"); View.WriteLine(); View.Write("> "); @break = true; input = Console.ReadLine().Trim().ToLower(); switch (input) { case "y": case "yes": View.WriteSuccess("You have been successfully registered"); break; case "n": case "no": View.WriteLineAndWait("You have not been registered."); View.Clear(); return; default: View.WriteErrorAndClear("You need to choose either yes(y) or no(n)."); @break = false; break; } if (@break) { break; } } #endregion View.Clear(); Database db = Database.GetInstance(); if (user.Type == UserType.Employee) { db.Employees.Add(user as Employee); db.Save(); } else { db.Employers.Add(user as Employer); db.Save(); } }
private void RecommendedJobs() { ShowJobs(DBUserUtils.GetRecommendedJobs(user.CV)); }
private void AllJobs() { ShowJobs(DBUserUtils.GetJobPosts()); }
private void Search() { List <JobPost> jobs = new List <JobPost>(); string input; bool @break; while (true) { jobs.Clear(); View.WriteLine("1. Heading"); View.WriteLine("2. Company name"); View.WriteLine("3. Category"); View.WriteLine("4. City"); View.WriteLine("5. Salary"); View.WriteLine("6. Age"); View.WriteLine("7. Study degree"); View.WriteLine("8. Work experience"); View.WriteLine("Write e to exit"); View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); switch (input) { case "1": View.Clear(); View.WriteLine("Heading"); View.WriteLine(); View.Write("> "); input = Console.ReadLine(); foreach (var job in DBUserUtils.GetJobPosts()) { if (job.Heading == input) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "2": View.Clear(); View.WriteLine("Company name"); View.WriteLine(); View.Write("> "); input = Console.ReadLine(); foreach (var job in DBUserUtils.GetJobPosts()) { if (job.CompanyName == input) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "3": View.Clear(); JobCategory category; while (true) { View.WriteLine("Choose one of the job categories"); // Getting names of Job Categories and displaying them string[] names = Enum.GetNames(typeof(JobCategory)); for (int i = 1; i <= names.Length; i++) { View.WriteLine($"{i}. {names[i - 1]}"); } View.WriteLine(); View.Write("> "); input = Console.ReadLine(); int n = 0; //checking if input is a number try { int.TryParse(input, out n); n--; if (n < 0 || n >= names.Length) { throw new Exception(); } category = (JobCategory)n; break; } catch (Exception) { View.WriteErrorAndClear("Invalid option."); } } foreach (var job in DBUserUtils.GetJobPosts()) { if (job.Category == category) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "4": View.Clear(); View.WriteLine("City"); View.WriteLine(); View.Write("> "); input = Console.ReadLine(); foreach (var job in DBUserUtils.GetJobPosts()) { if (job.City == input) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "5": uint salary; while (true) { View.WriteLine("Salary"); View.WriteLine(); View.Write("> "); input = Console.ReadLine(); try { salary = uint.Parse(input); break; } catch (FormatException) { View.WriteErrorAndClear("That is not a number."); } catch (OverflowException) { View.WriteErrorAndClear("That is either too big or less than zero."); } catch (Exception ex) { View.WriteErrorAndClear(ex.Message); } } foreach (var job in DBUserUtils.GetJobPosts()) { if (job.Salary == salary) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "6": uint age; while (true) { View.WriteLine("Age"); View.WriteLine(); View.Write("> "); input = Console.ReadLine(); try { age = uint.Parse(input); break; } catch (FormatException) { View.WriteErrorAndClear("That is not a number."); } catch (OverflowException) { View.WriteErrorAndClear("Your age is either too big or less than zero."); } catch (Exception ex) { View.WriteErrorAndClear(ex.Message); } } foreach (var job in DBUserUtils.GetJobPosts()) { if (job.Age == age) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "7": StudyDegree?studyDegree = StudyDegree.Graduate; //random declaration while (true) { @break = true; View.WriteLine("Choose your study degree."); View.WriteLine("1. Undergraduate"); View.WriteLine("2. Graduate"); View.WriteLine("3. Postgraduate"); View.WriteLine(); View.Write("> "); input = Console.ReadLine(); switch (input) { case "1": studyDegree = StudyDegree.Undergraduate; break; case "2": studyDegree = StudyDegree.Graduate; break; case "3": studyDegree = StudyDegree.Postgraduate; break; default: @break = false; View.WriteErrorAndClear("Invalid option."); break; } if (@break) { break; } } foreach (var job in DBUserUtils.GetJobPosts()) { if (job.StudyDegree == studyDegree) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "8": WorkExperience workExperience = WorkExperience.FourToEightYears; //random declaration while (true) { @break = true; View.WriteLine("Work experience"); View.WriteLine(); View.WriteLine("1. Less than 1 year"); View.WriteLine("2. 1 to 3 years"); View.WriteLine("3. 4 to 8 years"); View.WriteLine("4. More than 8 years"); View.WriteLine(); View.Write("> "); input = Console.ReadLine().Trim(); switch (input) { case "1": workExperience = WorkExperience.LessThanOneYear; break; case "2": workExperience = WorkExperience.OneToFourYears; break; case "3": workExperience = WorkExperience.FourToEightYears; break; case "4": workExperience = WorkExperience.MoreThanEightYears; break; default: @break = false; View.WriteError("Invalid option."); break; } if (@break) { break; } } foreach (var job in DBUserUtils.GetJobPosts()) { if (job.WorkExperience == workExperience) { jobs.Add(job); } } View.Clear(); ShowJobs(jobs); break; case "e": View.Clear(); return; default: View.WriteErrorAndClear("Invalid option"); break; } } }