public static string InputLink() { Console.WriteLine("Link: "); while (true) { var link = UserHelper.GetString("Link can not be empty"); if (ExceptionHandle.Handle(UserHelper.ValidateLink, link)) { return(link); } } }
private static void Start(User user, bool notificationStatus) { while (true) { if (!ExceptionHandle.Handle(user.ShowShortNotfInfo, notificationStatus)) { ConsoleScreen.Clear(); break; } var notificationId = UserHelper.InputGuid(); var notification = user.Notifications.SingleOrDefault(n => n.Guid == notificationId); if (notification == null) { if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to try again?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } continue; } Console.Clear(); Console.WriteLine(notification++); Database.Database.Changes = true; Console.ReadLine(); if (ConsoleScreen.DisplayMessageBox("Info", "Do you want to see other notifications?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { break; } } }
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 GetUserData(Database.Database 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) { Console.WriteLine("Name: "); name = UserHelper.GetString("Name can not be empty!"); Console.WriteLine("Surname: "); surname = UserHelper.GetString("Surname can not be empty"); Console.WriteLine("Mail: "); mail = string.Empty; while (true) { mail = UserHelper.GetString("Mail can not be empty"); if (ExceptionHandle.Handle(UserHelper.ValidateMail, mail)) { if (db.CheckMail(mail)) { break; } LoggerPublisher.OnLogError($"User exists associated this mail -> {mail}!"); } } Console.WriteLine("Phone: "); phone = string.Empty; while (true) { phone = UserHelper.GetString("Phone can not be empty!"); if (ExceptionHandle.Handle(UserHelper.ValidatePhone, phone)) { break; } } Console.WriteLine("Username: "******"Username can not be empty"); if (db.CheckUsername(username)) { break; } LoggerPublisher.OnLogError($"User exists associated this username -> {username} "); } Console.WriteLine("Password: "******"Password can not be empty!")); Console.WriteLine("City: "); city = UserHelper.GetString("City can not be empty"); Console.WriteLine("Age: "); age = UserHelper.GetNumeric(NumericTypes.INT); }
private static Vacancy CreateNewVacancy() { var newVacancy = new Vacancy { Contact = new Contact() }; // contact initialize while (true) { var mail = VacancyHelper.InputData("Mail"); if (ExceptionHandle.Handle(UserHelper.ValidateMail, mail)) { newVacancy.Contact.Mail = mail; break; } } var maxPhoneNumbers = 3; while (maxPhoneNumbers > 0) { var phone = VacancyHelper.InputData("Phone"); if (ExceptionHandle.Handle(UserHelper.ValidatePhone, phone)) { newVacancy.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; } } // add initialize newVacancy.Ad = new Advert(); newVacancy.Ad.Category = UserHelper.InputCategory(); Console.Clear(); newVacancy.Ad.Position = VacancyHelper.InputData("Position"); newVacancy.Ad.Region = UserHelper.InputRegion(); newVacancy.Ad.Education = UserHelper.InputEducation(); newVacancy.Ad.Experience = UserHelper.InputExperience(); Console.Clear(); newVacancy.Ad.Requirements = VacancyHelper.InputData("Requirements"); Console.Clear(); newVacancy.Ad.JobDescription = VacancyHelper.InputData("Job Description"); Console.Clear(); newVacancy.Ad.Company = VacancyHelper.InputData("Company"); Console.Clear(); newVacancy.Ad.Contact = VacancyHelper.InputData("Contact"); newVacancy.Ad.SalaryRange = UserHelper.InputSalaryRange(); return(newVacancy); }
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; } } } }