public IActionResult Edit([Bind] VacancyResponse vacancyData)
        {
            if (!ModelState.IsValid)
            {
                var vacancy = VacancyService.Get(vacancyData.Id);
                vacancyData.Organization = vacancy.Organization.ToResponse();
                return(View(vacancyData));
            }

            var storedModel   = VacancyService.Get(vacancyData.Id);
            var updateRequest = storedModel.ToUpdateCommandBy(vacancyData);

            var updated = VacancyService.Update(vacancyData.Id, updateRequest);

            var expectedUpdated = vacancyData.ToModel();
            var success         = updated.IsIdenticTo(expectedUpdated);

            var model = new IndexPageStatusModel
            {
                StatusId  = $"{nameof(Edit)}:{success}",
                VacancyId = vacancyData.Id
            };

            return(RedirectToAction(nameof(Index), model));
        }
        public async Task GetTest()
        {
            int vacancyId = 15;

            var vacancy = new Vacancy()
            {
                Id = 15,

                VacancyName = "iOS Developer"
            };

            mockVacancyRepository.Setup(x => x.Read(It.IsAny <int>())).Returns(vacancy);

            var candidateRepository = mockCandidateRepository.Object;

            var unitOfWork = mockUnitOfWork.Object;

            var candidateService = mockCandidateService.Object;

            var techSkillRepository = mockTechSkillRepository.Object;

            var vacancyRepository = mockVacancyRepository.Object;

            var eventService = mockEventService.Object;

            var vacancyService = new VacancyService(unitOfWork, vacancyRepository, candidateRepository, techSkillRepository,
                                                    candidateService, eventService);

            var result = await vacancyService.Get(vacancyId);

            Assert.AreEqual(vacancy, result);
        }
Example #3
0
        public void AddControlForProbation(SimplePageVM model)
        {
            var vacancies = VacancyService.GetAll().IsActive().Where(v => v.Type == CenterVacancyType.Probation)
                            .OrderByDescending(v => v.PublishDate).Take(50).ToList();

            model.Controls.Add(
                new SimplePageVM.Control(Views.Page.PartnerVacancies,
                                         vacancies));
        }
Example #4
0
 public ExportController(
     VacancyExportTaskStorage storage,
     VacancyService resumeService,
     IVacancyExporter exporter)
 {
     _storage       = storage;
     _resumeService = resumeService;
     _exporter      = exporter;
 }
        public VacancyModel Get(string id)
        {
            var result = VacancyService.Get(id);

            if (result != null)
            {
                result.Organization = OrganizationService.Get(result.OrganizationId);
            }

            return(result);
        }
        public IActionResult DeleteComfirmed([Bind] string id)
        {
            var success = VacancyService.Delete(id);

            var model = new IndexPageStatusModel
            {
                StatusId  = $"{nameof(Edit)}:{success}",
                VacancyId = id
            };

            return(RedirectToAction(nameof(Index), model));
        }
Example #7
0
        public ActionResult VacanciesFor()
        {
            var vacancies = VacancyService.GetAll().IsActive().OrderByDescending(v =>
                                                                                 v.IsHot
                                                                                 ).OrderByDescending(v => v.PublishDate).Take(CommonConst.MaxHotVacansyCount);

            if (vacancies.Any(v => v.IsHot))
            {
                vacancies = vacancies.Where(v => v.IsHot);
            }
            return(View(PartialViewNames.VacanciesBlock, vacancies));
        }
Example #8
0
        public ActionResult Vacancy(int vacancyID)
        {
            var vacancy = VacancyService.GetByPK(vacancyID);

            if (vacancy == null || !vacancy.IsActive)
            {
                return(null);
            }
            return(View(new VacancyVM {
                Career = GetCareer(), Vacancy = vacancy
            }));
        }
Example #9
0
        public void AddControlForCareer(SimplePageVM model)
        {
//            var vacancies = VacancyService.GetAll().IsActive().OrderByDescending(v =>
//                v.IsHot
//                ).OrderByDescending(v => v.PublishDate).Take(CommonConst.MaxHotVacansyCount);
            var vacancies = VacancyService.GetAll().IsActive().Where(v => v.IsHot && !v.IsPartner &&
                                                                     v.Type != CenterVacancyType.Probation)
                            .OrderByDescending(v => v.PublishDate);

//            if (vacancies.Any(v => v.IsHot))
//                vacancies = vacancies.Where(v => v.IsHot);
            model.RightColumnControls.Add(
                new SimplePageVM.Control(PartialViewNames.VacanciesBlock, vacancies));
        }
Example #10
0
        private static void OnTimedEvent(object sender, ElapsedEventArgs e)
        {
            //Log before
            DateTime timeBeginLoad       = DateTime.Now;
            string   stringTimeBeginLoad = timeBeginLoad.ToString();

            //_logger.Log("New load engaged: " + stringTimeBeginLoad);

            VacancyService.LoadListFromDB();

            //Log after
            DateTime timeEndLoad       = DateTime.Now;
            string   stringTimeEndLoad = timeEndLoad.ToString();
            //   _logger.Log("Load completed: " + stringTimeEndLoad);
        }
        public bool Delete(string id)
        {
            var  organizationId = Get(id)?.OrganizationId;
            bool success        = VacancyService.Delete(id);

            if (success && organizationId != null)
            {
                var organization = OrganizationService.GetWithVacancies(organizationId);
                if (organization.Vacancies.Count == 0)
                {
                    OrganizationService.Delete(organizationId);
                }
            }

            return(success);
        }
Example #12
0
        public ActionResult VacanciesForEmployee(int?index)
        {
            if (!index.HasValue)
            {
                return(RedirectToAction(() => VacanciesForEmployee(1)));
            }

            var vacancies = VacancyService.GetAll().IsActive().Where(x => !x.IsPartner)
                            .Where(v => v.Type == CenterVacancyType.Emloyee)
                            .OrderByDescending(v => v.PublishDate).ToPagedList(index.Value - 1);

            return(View(ViewNames.Vacancies, new VacancyListVM {
                Vacancies = vacancies,
                Career = GetCareer(),
            }));
        }
        public SearchResponse Search(SearchRequest request)
        {
            var result = new SearchResponse
            {
                Result = new List <VacancyResponse>()
            };

            var searchFilter = new SearchFilter(request.FromRequest(), OrganizationService);
            var predicate    = searchFilter.GetPredicate();

            var resultList = VacancyService.GetRangeBy(predicate);

            result.Result = resultList.ConvertAll(
                (vacancyModel) => vacancyModel.ToResponse(OrganizationService));

            return(result);
        }
        public IActionResult Create([Bind] VacancyCreateModel vacancyData)
        {
            if (!ModelState.IsValid)
            {
                return(View(vacancyData));
            }

            var id      = VacancyService.Add(vacancyData.ToModel(OrganizationService));
            var success = id != null && id != Guid.Empty.ToString();

            var model = new IndexPageStatusModel
            {
                StatusId  = $"{nameof(Create)}:{success}",
                VacancyId = id
            };

            return(RedirectToAction(nameof(Index), model));
        }
        public async Task UpdateVacancyStatusTest()
        {
            int status = 4;

            var vacancy = new Vacancy()
            {
                Id = 18,

                Status = 1,

                HRM = 2
            };

            var newVacancy = new Vacancy()
            {
                Id = 18,

                Status = 4,

                HRM = 2
            };

            mockVacancyRepository.Setup(x => x.Read(It.IsAny <int>())).Returns(vacancy);

            var candidateRepository = mockCandidateRepository.Object;

            var unitOfWork = mockUnitOfWork.Object;

            var candidateService = mockCandidateService.Object;

            var techSkillRepository = mockTechSkillRepository.Object;

            var vacancyRepository = mockVacancyRepository.Object;

            var eventService = mockEventService.Object;

            var vacancyService = new VacancyService(unitOfWork, vacancyRepository, candidateRepository, techSkillRepository,
                                                    candidateService, eventService);

            var result = await vacancyService.UpdateStatus(vacancy.Id, status, vacancy.HRM);

            Assert.AreEqual(newVacancy.Status, result.Status);
        }
Example #16
0
        //      private string DBLoadString = "https://api.catsone.com/api/get_joborders?save_user_values=1&subdomain=sentimus&transaction_code=fd20aba59b0968107547f1107ff78fd4&search=%22C%23%22&rows_per_page=50&page_number=0&sort=id%2C+title%2C+description%2C+is_hot%2C+company&sort_direction=&display_column=&list=&filter=";

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();

            _logger = new BackendLogger();
            timer   = new Timer();

            //1 hour (60s * 60m)
            //timer.Interval = 60000 * 60;

            //Test
            // timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
            //// timer.Interval = 60000;
            // timer.Enabled = true;
            // timer.AutoReset = true;

            VacancyService.LoadListFromDB();
        }
 public VacancyController(VacancyService service)
 {
     this.service = service;
 }
Example #18
0
 public ParseResultForm()
 {
     InitializeComponent();
     _seleniumService = new SeleniumService();
     _vacancyService  = new VacancyService();
 }
Example #19
0
        public void VacancyServiceSetUp()
        {
            var users = new List <User>
            {
                new User(
                    "*****@*****.**",
                    "Admin",
                    UserType.Administrator),
                new User(
                    "*****@*****.**",
                    "Ivan",
                    UserType.Candidate),
                new User(
                    "*****@*****.**",
                    "Shepherd",
                    UserType.Recruiter),
                new User(
                    "*****@*****.**",
                    "Alex",
                    UserType.Candidate),
                new User(
                    "*****@*****.**",
                    "Max",
                    UserType.Candidate),
                new User(
                    "*****@*****.**",
                    "Roman",
                    UserType.Recruiter),
                new User(
                    "*****@*****.**",
                    "Nick",
                    UserType.Recruiter)
            };
            var skills = new List <Skill>
            {
                new Skill("Skill1"),
                new Skill("Skill2"),
                new Skill("Skill3"),
                new Skill("Skill4")
            };
            var specializations = new List <Specialization>
            {
                new Specialization("Spec1"),
                new Specialization("Spec2")
            };
            var vacancies = new List <Vacancy>
            {
                new Vacancy(
                    users[2],
                    new Specialization("Spec1"),
                    new List <Skill> {
                    new Skill("Skill1"), new Skill("Skill2")
                },
                    "Info"),
                new Vacancy(
                    users[5],
                    new Specialization("Spec2"),
                    new List <Skill> {
                    new Skill("Skill3"), new Skill("Skill4")
                },
                    "Info")
            };

            _userRepository           = new UserRepositoryMock(users);
            _skillRepository          = new SkillRepositoryMock(skills);
            _specializationRepository = new SpecializationRepositoryMock(specializations);
            _vacancyRepository        = new VacancyRepositoryMock(vacancies);
            _vacancyService           = new VacancyService(_vacancyRepository, _userRepository, _skillRepository,
                                                           _specializationRepository);
        }
 public string Add(VacancyModel vacancy)
 => VacancyService.Add(vacancy);
        public async Task UnassignCandidateTest()
        {
            var vacancy = new Vacancy()
            {
                Id = 18,

                Status = 1,

                HRM = 2
            };

            Candidate candidate1 = new Candidate()
            {
                Id = 22,

                FirstNameEng = "David",

                LastNameEng = "Fraller",

                FirstNameRus = "Давид",

                LastNameRus = "Фраллер",

                Status = 1
            };

            Candidate candidate2 = new Candidate()
            {
                Id = 2,

                FirstNameEng = "Victor",

                LastNameEng = "Toll",

                FirstNameRus = "Виктор",

                LastNameRus = "Толл",

                Status = 3
            };

            vacancy.Candidates.Add(candidate1);

            vacancy.Candidates.Add(candidate2);

            mockCandidateRepository.Setup(x => x.Read(It.IsAny <int>())).Returns(candidate1);

            mockVacancyRepository.Setup(x => x.Read(It.IsAny <int>())).Returns(vacancy);

            var candidateRepository = mockCandidateRepository.Object;

            var unitOfWork = mockUnitOfWork.Object;

            var candidateService = mockCandidateService.Object;

            var techSkillRepository = mockTechSkillRepository.Object;

            var vacancyRepository = mockVacancyRepository.Object;

            var eventService = mockEventService.Object;

            var vacancyService = new VacancyService(unitOfWork, vacancyRepository, candidateRepository, techSkillRepository,
                                                    candidateService, eventService);

            var result = await vacancyService.UnassignCandidate(vacancy.Id, candidate1.Id, vacancy.HRM);

            Assert.AreEqual(1, result.Candidates.Count);
        }
        public async Task SearchTest()
        {
            Vacancy vacancy1 = new Vacancy()
            {
                Id = 22,

                Status = 1,

                ProjectName = "Some project name",

                City = 4
            };

            Vacancy vacancy2 = new Vacancy()
            {
                Id = 2,

                Status = 4,

                ProjectName = "Another project name",

                City = 2
            };

            VacancySearchModel searchModel = new VacancySearchModel()
            {
                VacancyName = "JavaScript Junior Developer",

                City = 3,

                Status = 2,

                RequestDate = new DateTime(2017, 8, 8)
            };

            IQueryable <Vacancy> vacancyFindList = new List <Vacancy>().AsQueryable();

            IQueryable <Vacancy> vacancyReadList = new List <Vacancy>()
            {
                vacancy1, vacancy2
            }.AsQueryable();

            mockVacancyRepository.Setup(x => x.Find(It.IsAny <VacancySearchModel>())).Returns(vacancyFindList);

            mockVacancyRepository.Setup(x => x.ReadAll()).Returns(vacancyReadList);

            var candidateRepository = mockCandidateRepository.Object;

            var unitOfWork = mockUnitOfWork.Object;

            var candidateService = mockCandidateService.Object;

            var techSkillRepository = mockTechSkillRepository.Object;

            var vacancyRepository = mockVacancyRepository.Object;

            var eventService = mockEventService.Object;

            var vacancyService = new VacancyService(unitOfWork, vacancyRepository, candidateRepository, techSkillRepository,
                                                    candidateService, eventService);

            var result = await vacancyService.Search(0, 5, searchModel, null);

            Assert.AreEqual(0, result.Count);

            var actual = await vacancyService.Search(0, 5, null, null);

            Assert.AreEqual(2, actual.Count);
        }
 public VacancyController(VacancyService services)
 {
     _services = services;
 }
 public VacancyModel Update(string id, VacancyUpdateModel vacancyUpdate)
 => VacancyService.Update(id, vacancyUpdate);
 private VacancyResponse GetVacancy(string id)
 => VacancyService.Get(id)?.ToResponse(OrganizationService);
 private ICollection <VacancyResponse> GetAllVacancies()
 => VacancyService.Get().ConvertAll((v) => v.ToResponse(OrganizationService));
 public List <VacancyModel> Get()
 => VacancyService.GetRangeBy((vacancy) => true);