public static void Start(Database.Database db) { var userAccessLoop = true; while (userAccessLoop) { Console.Title = "UpWork"; ConsoleScreen.PrintMenu(ConsoleScreen.UserAccess, ConsoleColor.DarkGreen); var userAccess = (UserAccessEnum)ConsoleScreen.Input(ConsoleScreen.UserAccess.Count); Console.Clear(); switch (userAccess) { case UserAccessEnum.Login: { LoginSide(db); break; } case UserAccessEnum.Register: { RegisterSide(db); break; } case UserAccessEnum.Exit: { userAccessLoop = false; break; } } } }
public static string InputSalary() { Console.Clear(); Console.WriteLine("Salary: "); ConsoleScreen.PrintMenu(FileHelper.Salaries, ConsoleColor.Blue); return(FileHelper.Salaries[ConsoleScreen.Input(FileHelper.Salaries.Count) - 1]); }
public static string InputExperience() { Console.Clear(); Console.WriteLine("Experience:"); ConsoleScreen.PrintMenu(FileHelper.Experiences, ConsoleColor.Blue); return(FileHelper.Experiences[ConsoleScreen.Input(FileHelper.Experiences.Count) - 1]); }
public static string InputEducation() { Console.Clear(); Console.WriteLine("Education:"); ConsoleScreen.PrintMenu(FileHelper.Educations, ConsoleColor.Blue); return(FileHelper.Educations[ConsoleScreen.Input(FileHelper.Educations.Count) - 1]); }
public static SkillLevelEnum InputSkillLevel() { Console.WriteLine("Level: "); while (true) { ConsoleScreen.PrintMenu(ConsoleScreen.SkillLevels, ConsoleColor.Blue); return((SkillLevelEnum)(ConsoleScreen.Input(ConsoleScreen.SkillLevels.Count))); } }
public static void Start(Worker worker, Database.Database db) { var workerSideMainLoop = true; while (workerSideMainLoop) { Console.Title = $"Worker: {worker.Name}"; if (Database.Database.Changes) { FileHelper.WriteToJson(db); Database.Database.Changes = false; } Console.Clear(); ConsoleScreen.PrintMenu(ConsoleScreen.WorkerSideMainMenu, ConsoleColor.DarkGreen); var mainChoice = (WorkerSideMainMenu)ConsoleScreen.Input(ConsoleScreen.WorkerSideMainMenu.Count); Console.Clear(); switch (mainChoice) { case WorkerSideMainMenu.SEEADS: { AdsSection.Start(worker, db); break; } case WorkerSideMainMenu.YOURCV: { CvSection.Start(worker); break; } case WorkerSideMainMenu.CvNotifications: { while (true) { Console.Clear(); if (!ExceptionHandle.Handle(worker.ShowAllCvWithRequestCount)) { break; } var cvId = UserHelper.InputGuid(); Cv cv = null; try { cv = worker.GetCv(cvId); if (cv.RequestFromEmployers.Count == 0) { LoggerPublisher.OnLogError("There is no request!"); ConsoleScreen.Clear(); } var vacancies = db.GetAllVacanciesFromRequests(cv.RequestFromEmployers); while (true) { Console.Clear(); if (!ExceptionHandle.Handle(WorkerHelper.ShowVacancies, vacancies)) { break; } var vacancyId = UserHelper.InputGuid(); var vacancy = vacancies.SingleOrDefault(v => v.Guid == vacancyId); if (vacancy == null) { LoggerPublisher.OnLogError($"There is no vacancy associated this id -> {vacancyId}"); ConsoleScreen.Clear(); continue; } var employer = DatabaseHelper.GetUser( cv.RequestFromEmployers.SingleOrDefault(r => r.Value == vacancy.Guid).Key, db.Users) as Entities.Employer; Console.Clear(); Console.WriteLine(vacancy); ConsoleScreen.PrintMenu(ConsoleScreen.CvAdsChoices, ConsoleColor.DarkGreen); var choice = (CvAdsChoices)ConsoleScreen.Input(ConsoleScreen.CvAdsChoices.Count); if (choice == CvAdsChoices.Back) { break; } Database.Database.Changes = true; switch (choice) { case CvAdsChoices.Accept: { cv.RemoveRequest(employer.Guid); NotificationSender.NotificationPublisher.OnSend(employer, new Notification() { Title = "From worker", Message = $"Congratilations. Your request accepted.\n Cv info:\n{cv}" }); LoggerPublisher.OnLogInfo("Accepted."); break; } case CvAdsChoices.Decline: { cv.RemoveRequest(employer.Guid); NotificationSender.NotificationPublisher.OnSend(employer, new Notification() { Title = "From worker", Message = $"We are sorry! Your request declined.\n Cv info:\n{cv}" }); LoggerPublisher.OnLogInfo("Declined."); break; } } Database.Database.Changes = true; if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to see other Vacancies?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); } if (cv == null && ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case WorkerSideMainMenu.AllNotifications: { NotificationSide.AllNotificationsStart(worker); break; } case WorkerSideMainMenu.UnreadNotifications: { NotificationSide.OnlyUnReadNotificationsStart(worker); break; } case WorkerSideMainMenu.Logout: { workerSideMainLoop = false; break; } } } }
public static void Start(Worker worker, Database.Database db) { var logger = new Logger.ConsoleLogger(); var seeAdsLoop = true; var mainVacancies = db.GetVacancies(); IList <Vacancy> vacancies = mainVacancies; while (seeAdsLoop) { Console.Clear(); ExceptionHandle.Handle(VacancyHelper.SeeAds, vacancies); ConsoleScreen.PrintMenu(ConsoleScreen.FilterMenu, ConsoleColor.Blue); var filterMenuChoice = (FilterMenuEnum)ConsoleScreen.Input(ConsoleScreen.FilterMenu.Count); switch (filterMenuChoice) { case FilterMenuEnum.Select: { var loop2 = true; while (loop2) { Console.Clear(); if (!ExceptionHandle.Handle(VacancyHelper.SeeAds, vacancies)) { break; } Console.WriteLine("Vacancy id: "); var vacId = UserHelper.InputGuid(); try { var vacancy = VacancyHelper.GetVacancy(vacId, vacancies); while (true) { var requestFromWorker = vacancy.CheckWorkerRequest(worker.Guid); Console.Clear(); Console.WriteLine(vacancy++); // increase vacancy view count and print Database.Database.Changes = true; Console.WriteLine(); Console.WriteLine($"1. {(requestFromWorker ? "Cancel" : "Request")}");; Console.WriteLine("2. Back"); var choice = ConsoleScreen.Input(2); if (choice == 1) { if (requestFromWorker) { vacancy.RemoveRequest(worker.Guid); } else { Cv cv = null; while (true) { Console.Clear(); if (!ExceptionHandle.Handle(worker.ShowAllCv, true)) { LoggerPublisher.OnLogInfo("Please add public Cv!"); ConsoleScreen.Clear(); break; } var cvId = UserHelper.InputGuid(); try { cv = CvHelper.GetCv(cvId, worker.Cvs); break; } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); ConsoleScreen.Clear(); } } if (cv != null) { vacancy.SendRequest(worker.Guid, cv.Guid); } } } else if (choice == 2) { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to see other Ads?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { loop2 = false; } break; } } if (loop2) { continue; } } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); ConsoleScreen.Clear(); } if (!loop2 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case FilterMenuEnum.ByCategory: { Console.Clear(); vacancies = ExceptionHandle.Handle(VacancyFilter.FilterByCategory, UserHelper.InputCategory(), vacancies); break; } case FilterMenuEnum.ByEducation: { Console.Clear(); vacancies = ExceptionHandle.Handle(VacancyFilter.FilterByEducation, UserHelper.InputEducation(), vacancies); break; } case FilterMenuEnum.ByExperience: { Console.Clear(); vacancies = ExceptionHandle.Handle(VacancyFilter.FilterByExperience, UserHelper.InputExperience(), vacancies); break; } case FilterMenuEnum.ByRegion: { Console.Clear(); vacancies = ExceptionHandle.Handle(VacancyFilter.FilterByRegion, UserHelper.InputRegion(), vacancies); break; } case FilterMenuEnum.BySalary: { Console.Clear(); var input = UserHelper.InputSalary(); var salary = UserHelper.ParseSalary(input); vacancies = ExceptionHandle.Handle(VacancyFilter.FilterBySalary, salary, vacancies); break; } case FilterMenuEnum.Reset: { vacancies = mainVacancies; break; } case FilterMenuEnum.Back: { seeAdsLoop = false; break; } } } }
public static void Start(Entities.Employer employer, Database.Database db) { var logger = new Logger.ConsoleLogger(); var seeCvsLoop = true; var mainCvs = db.GetCvs(); IList <Cv> cvs = mainCvs; while (seeCvsLoop) { Console.Clear(); ExceptionHandle.Handle(CvHelper.SeeCvs, cvs); ConsoleScreen.PrintMenu(ConsoleScreen.FilterMenu, ConsoleColor.Blue); var filterMenuChoice = (FilterMenuEnum)ConsoleScreen.Input(ConsoleScreen.FilterMenu.Count); switch (filterMenuChoice) { case FilterMenuEnum.Select: { var loop3 = true; while (loop3) { Console.Clear(); if (!ExceptionHandle.Handle(CvHelper.SeeCvs, cvs)) { break; } Console.WriteLine("Cv id: "); var cvId = UserHelper.InputGuid(); try { var cv = CvHelper.GetCv(cvId, cvs); Console.Clear(); while (true) { var requestFromEmployer = cv.CheckEmployerRequest(employer.Guid); Console.Clear(); Console.WriteLine(cv++); // increase view count and print. Database.Database.Changes = true; Console.WriteLine(); Console.WriteLine($"1. {(requestFromEmployer ? "Cancel" : "Request")}"); Console.WriteLine("2. Back"); var choice = ConsoleScreen.Input(2); if (choice == 1) { if (requestFromEmployer) { cv.RemoveRequest(employer.Guid); } else { Vacancy vacancy = null; while (true) { Console.Clear(); if (!ExceptionHandle.Handle(employer.ShowAllAds, true)) { LoggerPublisher.OnLogInfo("Please add public Vacancy!"); ConsoleScreen.Clear(); break; } var vacancyId = UserHelper.InputGuid(); try { vacancy = VacancyHelper.GetVacancy(vacancyId, employer.Vacancies); break; } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); ConsoleScreen.Clear(); } } if (vacancy != null) { cv.SendRequest(employer.Guid, vacancy.Guid); } } } else if (choice == 2) { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to see other Cvs?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { loop3 = false; } break; } } if (loop3) { continue; } } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); } } break; } case FilterMenuEnum.ByCategory: { Console.Clear(); cvs = ExceptionHandle.Handle(CvFilter.FilterByCategory, UserHelper.InputCategory(), cvs); break; } case FilterMenuEnum.ByEducation: { Console.Clear(); cvs = ExceptionHandle.Handle(CvFilter.FilterByEducation, UserHelper.InputEducation(), cvs); break; } case FilterMenuEnum.ByExperience: { Console.Clear(); cvs = ExceptionHandle.Handle(CvFilter.FilterByExperience, UserHelper.InputExperience(), cvs); break; } case FilterMenuEnum.ByRegion: { Console.Clear(); cvs = ExceptionHandle.Handle(CvFilter.FilterByRegion, UserHelper.InputRegion(), cvs); break; } case FilterMenuEnum.BySalary: { Console.Clear(); var input = UserHelper.InputSalary(); var salary = UserHelper.ParseSalary(input); cvs = ExceptionHandle.Handle(CvFilter.FilterBySalary, salary, cvs); break; } case FilterMenuEnum.Reset: { cvs = mainCvs; break; } case FilterMenuEnum.Back: { seeCvsLoop = false; break; } } } }
public static void Start(Entities.Employer employer, Database.Database db) { var employerSideMainLoop = true; while (employerSideMainLoop) { Console.Title = $"Employer: {employer.Name}"; if (Database.Database.Changes) { FileHelper.WriteToJson(db); Database.Database.Changes = false; } Console.Clear(); ConsoleScreen.PrintMenu(ConsoleScreen.EmployerSideMainMenu, ConsoleColor.DarkGreen); var employerSideChoice = (EmployerSideMainMenu)ConsoleScreen.Input(ConsoleScreen.EmployerSideMainMenu.Count); Console.Clear(); switch (employerSideChoice) { case EmployerSideMainMenu.YourAds: { AdsSection.Start(employer); break; } case EmployerSideMainMenu.SeeCvs: { CvSection.Start(employer, db); break; } case EmployerSideMainMenu.AdsNotifications: { while (true) { Console.Clear(); if (!ExceptionHandle.Handle(employer.ShowAllAdsWithRequestCount)) { break; } var vacancyId = UserHelper.InputGuid(); Vacancy vacancy = null; try { vacancy = employer.GetVacancy(vacancyId); if (vacancy.RequestsFromWorkers.Count != 0) { var cvs = db.GetAllCvFromRequests(vacancy.RequestsFromWorkers); while (true) { Console.Clear(); if (!ExceptionHandle.Handle(EmployerHelper.ShowCvs, cvs)) { break; } var cvId = UserHelper.InputGuid(); var cv = cvs.SingleOrDefault(c => c.Guid == cvId); if (cv == null) { LoggerPublisher.OnLogError($"There is no cv associated this id -> {cvId}"); ConsoleScreen.Clear(); continue; } var worker = DatabaseHelper.GetUser(vacancy.RequestsFromWorkers .SingleOrDefault(r => r.Value == cv.Guid).Key, db.Users) as Worker; Console.Clear(); Console.WriteLine(cv); ConsoleScreen.PrintMenu(ConsoleScreen.CvAdsChoices, ConsoleColor.DarkGreen); var choice = (CvAdsChoices)ConsoleScreen.Input(ConsoleScreen.CvAdsChoices.Count); if (choice == CvAdsChoices.Back) { break; } try { switch (choice) { case CvAdsChoices.Accept: { vacancy.RemoveRequest(worker.Guid); NotificationPublisher.OnSend(worker, new Notification() { Title = "Your apply result", Message = $"Congratilations. Your cv accepted.\n Vacancy info:\n{vacancy}" }); LoggerPublisher.OnLogInfo("Accepted."); break; } case CvAdsChoices.Decline: { vacancy.RemoveRequest(worker.Guid); NotificationPublisher.OnSend(worker, new Notification() { Title = "Your apply result", Message = $"We are sorry! Your cv declined.\n Vacancy info:\n{vacancy}" }); LoggerPublisher.OnLogInfo("Declined."); break; } } } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); ConsoleScreen.Clear(); } Database.Database.Changes = true; if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to see other Cvs?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } else { LoggerPublisher.OnLogError("There is no request!"); ConsoleScreen.Clear(); } } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); ConsoleScreen.Clear(); } if (vacancy == null && ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case EmployerSideMainMenu.AllNotifications: { NotificationSide.AllNotificationsStart(employer); break; } case EmployerSideMainMenu.UnreadNotifications: { NotificationSide.OnlyUnReadNotificationsStart(employer); break; } case EmployerSideMainMenu.Logout: { employerSideMainLoop = false; break; } } } }
private static void CvUpdateSideStart(Cv cv) { while (true) { Console.Clear(); Console.WriteLine(cv); Console.WriteLine(); ConsoleScreen.PrintMenu(ConsoleScreen.CvUpdateMenu, ConsoleColor.Blue); var updateChoice = (CvUpdateChoices)ConsoleScreen.Input(ConsoleScreen.CvUpdateMenu.Count); if (updateChoice == CvUpdateChoices.Back) { break; } switch (updateChoice) { case CvUpdateChoices.ChangeVisibility: { cv.IsPublic = !cv.IsPublic; LoggerPublisher.OnLogInfo($"Visibility changed to {(cv.IsPublic ? "Public":"Private")}"); break; } case CvUpdateChoices.Name: { Console.Clear(); cv.Name = CvHelper.InputData("Name"); LoggerPublisher.OnLogInfo("Name updated!"); break; } case CvUpdateChoices.Surname: { Console.Clear(); cv.Surname = CvHelper.InputData("Surname"); LoggerPublisher.OnLogInfo("Surname updated!"); break; } case CvUpdateChoices.Category: { cv.Category = UserHelper.InputCategory(); LoggerPublisher.OnLogInfo("Category updated!"); break; } case CvUpdateChoices.Region: { cv.Region = UserHelper.InputRegion(); LoggerPublisher.OnLogInfo("Region updated!"); break; } case CvUpdateChoices.Salary: { Console.Clear(); Console.WriteLine("Salary: "); cv.Salary = UserHelper.GetNumeric(NumericTypes.INT); LoggerPublisher.OnLogInfo("Salary updated!"); break; } case CvUpdateChoices.Education: { cv.Education = UserHelper.InputEducation(); LoggerPublisher.OnLogInfo("Education updated"); break; } case CvUpdateChoices.Experience: { cv.Experience = UserHelper.InputExperience(); LoggerPublisher.OnLogInfo("Experience updated!"); break; } case CvUpdateChoices.WorkPlaces: { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add workplace or delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { Console.WriteLine("Add workplaces: "); while (true) { var companyName = CvHelper.InputData("Company"); var timeline = new Timeline() { Start = CvHelper.InputDateTime("Start time(ex mm/dd/yyyy): "), }; while (true) { var endTime = CvHelper.InputDateTime("End time(ex mm/dd/yyyy): "); if (timeline.Start < endTime) { timeline.End = endTime; break; } LoggerPublisher.OnLogError("End time must be greater than start time!"); } cv.WorkPlaces.Add(new WorkPlace() { Company = companyName, Timeline = timeline }); LoggerPublisher.OnLogInfo("Workplace added"); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more WorkPlaces?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } Database.Database.Changes = true; } } else { if (cv.WorkPlaces.Count > 0) { while (true) { Console.Clear(); Console.WriteLine("Delete workplace: "); foreach (var workPlace in cv.WorkPlaces) { Console.WriteLine(workPlace); } var workplaceId = UserHelper.InputGuid(); if (ExceptionHandle.Handle(cv.DeleteWorkplace, workplaceId)) { LoggerPublisher.OnLogInfo("Workplace deleted"); if (cv.WorkPlaces.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete more WorkPlaces?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } } } break; } case CvUpdateChoices.Skills: { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add skill or delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { Console.WriteLine("Add skill: "); while (true) { cv.Skills.Add(new Skill() { Name = CvHelper.InputData("Name"), Level = CvHelper.InputSkillLevel(), }); LoggerPublisher.OnLogInfo("Skill added"); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more Skills?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } else { if (cv.Skills.Count > 0) { while (true) { Console.Clear(); Console.WriteLine("Delete skill: "); foreach (var skill in cv.Skills) { Console.WriteLine(skill); } var skillId = UserHelper.InputGuid(); if (ExceptionHandle.Handle(cv.DeleteSkill, skillId)) { LoggerPublisher.OnLogInfo("Skill deleted"); if (cv.Skills.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete more Skill?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } } } break; } case CvUpdateChoices.Languages: { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add language or delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { Console.WriteLine("Add languages: "); while (true) { cv.Languages.Add(new Language() { Name = CvHelper.InputData("Name"), Level = CvHelper.InputSkillLevel(), }); LoggerPublisher.OnLogInfo("Language added"); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more Languages?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } else { if (cv.Languages.Count > 0) { while (true) { Console.Clear(); Console.WriteLine("Delete language: "); foreach (var language in cv.Languages) { Console.WriteLine(language); } var skillId = UserHelper.InputGuid(); if (ExceptionHandle.Handle(cv.DeleteLanguage, skillId)) { LoggerPublisher.OnLogInfo("Language deleted"); if (cv.Languages.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete more Language?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } } } break; } case CvUpdateChoices.HonorsDiploma: { cv.HonorsDiploma = CvHelper.InputHonorsDiplomaStatus(); LoggerPublisher.OnLogInfo("Honors diploma updated!"); break; } case CvUpdateChoices.Socials: { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add Social or delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { Console.WriteLine("Add socials: "); while (true) { cv.Socials.Add(new Social() { Name = CvHelper.InputData("Name"), Link = CvHelper.InputLink() }); LoggerPublisher.OnLogInfo("Social added"); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more Socials?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } else { if (cv.Socials.Count > 0) { while (true) { Console.Clear(); Console.WriteLine("Delete social: "); foreach (var social in cv.Socials) { Console.WriteLine(social); } var socialId = UserHelper.InputGuid(); if (ExceptionHandle.Handle(cv.DeleteSocial, socialId)) { LoggerPublisher.OnLogInfo("Social deleted"); if (cv.Socials.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete more Social?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } } } break; } } Database.Database.Changes = true; ConsoleScreen.Clear(); } }
public static void Start(Worker worker) { var cvSectionLoop = true; while (cvSectionLoop) { Console.Clear(); ConsoleScreen.PrintMenu(ConsoleScreen.CvSectionMenu, ConsoleColor.DarkGreen); var cvSectionChoice = (CvSectionEnum)ConsoleScreen.Input(ConsoleScreen.CvSectionMenu.Count); Console.Clear(); switch (cvSectionChoice) { case CvSectionEnum.Show: { ExceptionHandle.Handle(worker.ShowAllCv, false); ConsoleScreen.Clear(); break; } case CvSectionEnum.Add: { var addCvLoop = true; while (addCvLoop) { worker.Cvs.Add(CreateNewCv()); Database.Database.Changes = true; LoggerPublisher.OnLogInfo("Cv added!"); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more Cv?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { addCvLoop = false; } Console.Clear(); } break; } case CvSectionEnum.Update: { while (true) { Console.Clear(); if (!ExceptionHandle.Handle(worker.ShowAllCv, false)) { ConsoleScreen.Clear(); break; } var id = UserHelper.InputGuid(); try { var cv = worker.GetCv(id); CvUpdateSideStart(cv); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to update another Cv?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } continue; } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); } if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case CvSectionEnum.Delete: { while (true) { Console.Clear(); if (!ExceptionHandle.Handle(worker.ShowAllCv, false)) { ConsoleScreen.Clear(); break; } var id = UserHelper.InputGuid(); if (ExceptionHandle.Handle(worker.DeleteCv, id)) { LoggerPublisher.OnLogInfo("Cv deleted!"); Database.Database.Changes = true; if (worker.Cvs.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete another Cv?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } continue; } if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case CvSectionEnum.Back: { cvSectionLoop = false; break; } } } }
private static void RegisterSide(Database.Database db) { while (true) { Console.Title = "Register"; GetUserData(db, out string name, out string surname, out string mail, out string phone, out string username, out string password, out int age, out string city); User newUser = null; Console.Clear(); Console.WriteLine("Who are you?"); ConsoleScreen.PrintMenu(ConsoleScreen.UserType, ConsoleColor.Blue); var userType = (UserTypeEnum)(ConsoleScreen.Input(ConsoleScreen.UserType.Count)); Console.Clear(); if (userType == UserTypeEnum.Worker) { newUser = new Worker() { Name = name, Surname = surname, Mail = mail, Phone = phone, Username = username, Password = password, City = city, Age = age, } } ; else { newUser = new Entities.Employer() { Name = name, Surname = surname, Mail = mail, Phone = phone, Username = username, Password = password, City = city, Age = age, } }; try { UpWork.UserAccess.UserAccess.SendConfirmationCode(newUser.Mail); while (true) { Console.Clear(); Console.WriteLine("Confirmation code: "); if (UpWork.UserAccess.UserAccess.ConfirmationCode == UserHelper.GetNumeric(NumericTypes.INT).ToString()) { break; } LoggerPublisher.OnLogError("Confirmation code is wrong!"); } UpWork.UserAccess.UserAccess.Register(newUser, db.Users); FileHelper.WriteToJson(db); LoggerPublisher.OnLogInfo("Successfully created account. You can login now."); ConsoleScreen.Clear(); break; } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); ConsoleScreen.Clear(); } } }
private static void VacancyUpdateSideStart(Vacancy vacancy) { while (true) { Console.Clear(); Console.WriteLine(vacancy); Console.WriteLine(); ConsoleScreen.PrintMenu(ConsoleScreen.VacancyUpdateMenu, ConsoleColor.DarkGreen); var updateChoice = (VacancyUpdateChoices)ConsoleScreen.Input(ConsoleScreen.VacancyUpdateMenu.Count); if (updateChoice == VacancyUpdateChoices.Back) { break; } switch (updateChoice) { case VacancyUpdateChoices.ChangeVisibility: { vacancy.IsPublic = !vacancy.IsPublic; LoggerPublisher.OnLogInfo($"Visibility changed to {(vacancy.IsPublic ? "Public" : "Private")}"); break; } case VacancyUpdateChoices.Mail: { while (true) { var mail = VacancyHelper.InputData("Mail"); if (ExceptionHandle.Handle(UserHelper.ValidateMail, mail)) { vacancy.Contact.Mail = mail; break; } } LoggerPublisher.OnLogInfo("Mail updated!"); break; } case VacancyUpdateChoices.Phones: { if (vacancy.Contact.Phones.Count != 3 && ConsoleScreen.DisplayMessageBox("Info", "Do you want to add phone number or delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { Console.WriteLine("Add phone number: "); var maxPhoneNumbers = 3 - vacancy.Contact.Phones.Count; while (maxPhoneNumbers > 0) { var phone = VacancyHelper.InputData("Phone"); if (ExceptionHandle.Handle(UserHelper.ValidatePhone, phone)) { vacancy.Contact.Phones.Add(phone); maxPhoneNumbers--; if (maxPhoneNumbers == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more phone number?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } continue; } if (maxPhoneNumbers != 3 && ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } else { if (vacancy.Contact.Phones.Count > 0) { while (true) { Console.Clear(); Console.WriteLine("Delete phone number: "); for (var i = 0; i < vacancy.Contact.Phones.Count; i++) { Console.WriteLine($"{i + 1}. {vacancy.Contact.Phones[i]}"); } var phoneIndex = ConsoleScreen.Input(vacancy.Contact.Phones.Count) - 1; vacancy.Contact.Phones.RemoveAt(phoneIndex); LoggerPublisher.OnLogInfo("Phone number deleted"); if (vacancy.Contact.Phones.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete more phone number?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } } } break; } case VacancyUpdateChoices.Category: { vacancy.Ad.Category = UserHelper.InputCategory(); LoggerPublisher.OnLogInfo("Category updated"); break; } case VacancyUpdateChoices.Position: { vacancy.Ad.Position = VacancyHelper.InputData("Position"); LoggerPublisher.OnLogInfo("Position updated"); break; } case VacancyUpdateChoices.Region: { vacancy.Ad.Region = UserHelper.InputRegion(); LoggerPublisher.OnLogInfo("Region updated"); break; } case VacancyUpdateChoices.Salary: { vacancy.Ad.SalaryRange = UserHelper.InputSalaryRange(); LoggerPublisher.OnLogInfo("Salary updated"); break; } case VacancyUpdateChoices.Education: { vacancy.Ad.Education = UserHelper.InputEducation(); LoggerPublisher.OnLogInfo("Education updated"); break; } case VacancyUpdateChoices.Experience: { vacancy.Ad.Experience = UserHelper.InputExperience(); LoggerPublisher.OnLogInfo("Experience updated"); break; } case VacancyUpdateChoices.Requirements: { vacancy.Ad.Requirements = VacancyHelper.InputData("Requirements"); LoggerPublisher.OnLogInfo("Requirements updated"); break; } case VacancyUpdateChoices.JobDescription: { vacancy.Ad.JobDescription = VacancyHelper.InputData("Job Description"); LoggerPublisher.OnLogInfo("Job Description updated"); break; } case VacancyUpdateChoices.Company: { vacancy.Ad.Company = VacancyHelper.InputData("Company"); LoggerPublisher.OnLogInfo("Company updated"); break; } case VacancyUpdateChoices.Contact: { vacancy.Ad.Contact = VacancyHelper.InputData("Contact"); LoggerPublisher.OnLogInfo("Contact updated"); break; } } Database.Database.Changes = true; ConsoleScreen.Clear(); } }
public static void Start(Entities.Employer employer) { var adsSectionLoop = true; while (adsSectionLoop) { Console.Clear(); ConsoleScreen.PrintMenu(ConsoleScreen.AdsSectionMenu, ConsoleColor.DarkGreen); var adsSectionChoice = (AdsSectionEnum)ConsoleScreen.Input(ConsoleScreen.AdsSectionMenu.Count); Console.Clear(); switch (adsSectionChoice) { case AdsSectionEnum.Show: { ExceptionHandle.Handle(employer.ShowAllAds, false); ConsoleScreen.Clear(); break; } case AdsSectionEnum.Add: { var addCvLoop = true; while (addCvLoop) { employer.Vacancies.Add(CreateNewVacancy()); LoggerPublisher.OnLogInfo("Vacancy added!"); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to add more Vacancy?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { addCvLoop = false; } Console.Clear(); } Database.Database.Changes = true; break; } case AdsSectionEnum.Update: { while (true) { Console.Clear(); if (!ExceptionHandle.Handle(employer.ShowAllAds, false)) { ConsoleScreen.Clear(); break; } var id = UserHelper.InputGuid(); try { var vacancy = employer.GetVacancy(id); VacancyUpdateSideStart(vacancy); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to update another Vacancy?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } continue; } catch (Exception e) { LoggerPublisher.OnLogError(e.Message); } if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case AdsSectionEnum.Delete: { while (true) { Console.Clear(); if (!ExceptionHandle.Handle(employer.ShowAllAds, false)) { ConsoleScreen.Clear(); break; } var vacancyId = UserHelper.InputGuid(); if (ExceptionHandle.Handle(employer.DeleteVacancy, vacancyId)) { LoggerPublisher.OnLogInfo("Cv deleted!"); Database.Database.Changes = true; if (employer.Vacancies.Count == 0 || ConsoleScreen.DisplayMessageBox("Info", "Do you want to delete another Vacancy?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } continue; } if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } break; } case AdsSectionEnum.Back: { adsSectionLoop = false; break; } } } }