Пример #1
0
        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;
                }
                }
            }
        }
Пример #2
0
        public static string InputSalary()
        {
            Console.Clear();
            Console.WriteLine("Salary: ");
            ConsoleScreen.PrintMenu(FileHelper.Salaries, ConsoleColor.Blue);

            return(FileHelper.Salaries[ConsoleScreen.Input(FileHelper.Salaries.Count) - 1]);
        }
Пример #3
0
        public static string InputExperience()
        {
            Console.Clear();
            Console.WriteLine("Experience:");
            ConsoleScreen.PrintMenu(FileHelper.Experiences, ConsoleColor.Blue);

            return(FileHelper.Experiences[ConsoleScreen.Input(FileHelper.Experiences.Count) - 1]);
        }
Пример #4
0
        public static string InputEducation()
        {
            Console.Clear();
            Console.WriteLine("Education:");
            ConsoleScreen.PrintMenu(FileHelper.Educations, ConsoleColor.Blue);

            return(FileHelper.Educations[ConsoleScreen.Input(FileHelper.Educations.Count) - 1]);
        }
Пример #5
0
        public static SkillLevelEnum InputSkillLevel()
        {
            Console.WriteLine("Level: ");
            while (true)
            {
                ConsoleScreen.PrintMenu(ConsoleScreen.SkillLevels, ConsoleColor.Blue);

                return((SkillLevelEnum)(ConsoleScreen.Input(ConsoleScreen.SkillLevels.Count)));
            }
        }
Пример #6
0
        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;
                }
                }
            }
        }
Пример #7
0
        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;
                }
                }
            }
        }
Пример #8
0
        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;
                }
                }
            }
        }
Пример #9
0
        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;
                }
                }
            }
        }
Пример #10
0
        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();
            }
        }
Пример #11
0
        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;
                }
                }
            }
        }
Пример #12
0
        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();
                }
            }
        }
Пример #13
0
        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();
            }
        }
Пример #14
0
        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;
                }
                }
            }
        }