public IActionResult AddNewSkill(JobSeekerDto jobSeeker)
 {
     jobSeeker.Skills.Add("");
     if (jobSeeker.Id != null)
     {
         return(View("EditJobSeeker", jobSeeker));
     }
     return(View("AddJobSeeker", jobSeeker));
 }
        public async Task <IActionResult> EditJobSeeker(JobSeekerDto jobSeeker)
        {
            if (ModelState.IsValid && jobSeeker.UserId == int.Parse(User.Identity.Name))
            {
                await jobSeekerFacade.EditInfoAsync(jobSeeker);

                return(RedirectToAction("Index", "Home"));
            }

            throw new ArgumentException();
        }
        public async Task <IActionResult> AddJobSeeker(JobSeekerDto jobSeeker)
        {
            if (ModelState.IsValid)
            {
                await jobSeekerFacade.RegisterAsync(jobSeeker);

                return(RedirectToAction("Login", "User"));
            }

            throw new ArgumentException();
        }
Example #4
0
        public async Task RegisterAsync(JobSeekerDto jobSeekerDto)
        {
            var jobSeeker = mapper.Map <JobSeeker>(jobSeekerDto);

            jobSeekerService.RegisterJobSeeker(jobSeeker);
            await unitOfWork.SaveChangesAsync();

            var user = await userService.GetByIdAsync(jobSeeker.UserId.Value);

            user.JobSeekerId = jobSeeker.Id;
            await unitOfWork.SaveChangesAsync();

            jobSeekerDto.Id = jobSeeker.Id; // this helps with unit tests
        }
Example #5
0
        private void btnEditSeeker_Click(object sender, RoutedEventArgs e)
        {
            JobSeekerDto item = dgJobSeeker.SelectedItem as JobSeekerDto;

            if (item == null)
            {
                MessageBox.Show("Выберите запись для редактирования", "Редактирование соискателей");
            }
            AddJobSeekerWindow window = new AddJobSeekerWindow();

            window.Load(item);
            window.ShowDialog();
            btnRefresh_Click(sender, e);
        }
Example #6
0
        public void JobSeekerFacadeTest()
        {
            var unit = new UnitOfWork(GetInMemoryOptions());

            Seeder.Seed(unit);

            var userService      = new UserService(unit, new UserQueryObject(unit));
            var jobSeekerService = new JobSeekerService(unit);
            var jobSeekerFacade  = new JobSeekerFacade(unit, mapper, jobSeekerService, userService);

            var s = new JobSeekerDto()
            {
                Name = "Lol"
            };

            jobSeekerFacade.RegisterAsync(s).Wait();
            Assert.NotNull(s.Id);
            Assert.NotNull(jobSeekerService.GetJobSeeker(s.Id ?? -1).Result);
            s.Id   = null;
            s.Name = "new lol";
            // Null ID get
            var excp1 = Assert.Throws <AggregateException>(() =>
                                                           jobSeekerFacade.GetInfoAsync(s).Wait());

            Assert.Contains("JobSeekerDto.Id can't be null!", excp1.Message);

            // Null ID edit/update
            var excp2 = Assert.Throws <AggregateException>(() =>
                                                           jobSeekerFacade.EditInfoAsync(mapper.Map <JobSeekerDto>(s)).Wait());

            Assert.Contains("Attempted to update or delete an entity that does not exist in the store.",
                            excp2.Message);

            // Addition with conflicting ID
            // This invalidates the database
            var id1 = unit.JobSeekerRepository.GetById(1);

            Assert.NotNull(id1); // makes sure company with id 1 is already in database
            var excp = Assert.Throws <AggregateException>(() =>
                                                          jobSeekerFacade.RegisterAsync(new JobSeekerDto()
            {
                Id = 1
            }).Wait());

            Assert.Contains("The instance of entity type 'JobSeeker' cannot be tracked " +
                            "because another instance with the same key value for {'Id'} is already being tracked.",
                            excp.Message);

            unit.Dispose();
        }
Example #7
0
        private void btnDeleteSeeker_Click(object sender, RoutedEventArgs e)
        {
            JobSeekerDto item = dgJobSeeker.SelectedItem as JobSeekerDto;

            if (item == null)
            {
                MessageBox.Show("Выберите запись для удаления", "Удаление соискателей");
            }
            MessageBoxResult result = MessageBox.Show("Удалить соискателя: " + item.FirstName + " " + item.SecondName + "?", "Удаление соискателей", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            if (result != MessageBoxResult.Yes)
            {
                return;
            }
            ProcessFactory.GetSeekerProcess().Delete(item.SeekerID);
            btnRefresh_Click(sender, e);
        }
        public static JobSeeker Convert(JobSeekerDto seekerDto)
        {
            if (seekerDto == null)
            {
                return(null);
            }
            JobSeeker seeker = new JobSeeker();

            seeker.SeekerID      = seekerDto.SeekerID;
            seeker.FirstName     = seekerDto.FirstName;
            seeker.SecondName    = seekerDto.SecondName;
            seeker.ThirdName     = seekerDto.ThirdName;
            seeker.Qualification = seekerDto.Qualification;
            seeker.AssumedSalary = seekerDto.AssumedSalary;
            seeker.Misc          = seekerDto.Misc;
            seeker.WorkID        = seekerDto.Work.WorkID;
            return(seeker);
        }
        //
        // JOBSEEKER
        //
        public static JobSeekerDto Convert(JobSeeker seeker)
        {
            if (seeker == null)
            {
                return(null);
            }
            JobSeekerDto seekerDto = new JobSeekerDto();

            seekerDto.SeekerID      = seeker.SeekerID;
            seekerDto.FirstName     = seeker.FirstName;
            seekerDto.SecondName    = seeker.SecondName;
            seekerDto.ThirdName     = seeker.ThirdName;
            seekerDto.Qualification = seeker.Qualification;
            seekerDto.AssumedSalary = seeker.AssumedSalary;
            seekerDto.Misc          = seeker.Misc;
            seekerDto.Work          = Convert(DaoFactory.GetTypeOfWorkDao().Get(seeker.WorkID));
            return(seekerDto);
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(tbFirstName.Text))
            {
                MessageBox.Show("Имя не должно быть пустым", "Проверка");
                return;
            }
            if (string.IsNullOrEmpty(tbSecondName.Text))
            {
                MessageBox.Show("Фамилия не должна быть пустой", "Проверка");
                return;
            }
            decimal salary;

            decimal.TryParse(tbAssumedSalary.Text, out salary);
            JobSeekerDto jobSeeker = new JobSeekerDto();

            jobSeeker.FirstName     = tbFirstName.Text;
            jobSeeker.SecondName    = tbSecondName.Text;
            jobSeeker.ThirdName     = tbThirdName.Text;
            jobSeeker.Qualification = tbQualification.Text;
            jobSeeker.AssumedSalary = salary;
            jobSeeker.Misc          = tbMisc.Text;
            jobSeeker.Work          = cbTypeOfWork.SelectedItem as TypeOfWorkDto;
            IJobSeekerProcess seekerProcess = ProcessFactory.GetSeekerProcess();

            if (_seekerid == 0)
            {
                seekerProcess.Add(jobSeeker);
            }
            else
            {
                jobSeeker.SeekerID = _seekerid;
                seekerProcess.Update(jobSeeker);
            }
            Close();
        }
 public void Load(JobSeekerDto jobSeeker)
 {
     if (jobSeeker == null)
     {
         return;
     }
     _seekerid         = jobSeeker.SeekerID;
     tbFirstName.Text  = jobSeeker.FirstName;
     tbSecondName.Text = jobSeeker.SecondName;
     if (string.IsNullOrEmpty(jobSeeker.ThirdName) == false)
     {
         tbThirdName.Text = jobSeeker.ThirdName;
     }
     if (string.IsNullOrEmpty(jobSeeker.Qualification) == false)
     {
         tbQualification.Text = jobSeeker.Qualification;
     }
     if (jobSeeker.AssumedSalary.HasValue)
     {
         tbAssumedSalary.Text = jobSeeker.AssumedSalary.ToString();
     }
     if (string.IsNullOrEmpty(jobSeeker.Misc) == false)
     {
         tbMisc.Text = jobSeeker.Misc;
     }
     if (jobSeeker.Work != null)
     {
         foreach (TypeOfWorkDto workDto in Works)
         {
             if (jobSeeker.Work.WorkID == workDto.WorkID)
             {
                 this.cbTypeOfWork.SelectedItem = workDto;
                 break;
             }
         }
     }
 }
Example #12
0
 public async Task EditInfoAsync(JobSeekerDto jobSeekerDto)
 {
     jobSeekerService.UpdateJobSeeker(mapper.Map <JobSeeker>(jobSeekerDto));
     await unitOfWork.SaveChangesAsync();
 }
Example #13
0
 public async Task <JobSeekerDto> GetInfoAsync(JobSeekerDto jobSeekerDto)
 {
     return(mapper.Map <JobSeeker, JobSeekerDto>(await jobSeekerService.GetJobSeeker(
                                                     jobSeekerDto.Id ?? throw new NullReferenceException("JobSeekerDto.Id can't be null!"))));
 }
 public void Update(JobSeekerDto seekerDto)
 {
     seekerDao.Update(DtoConverter.Convert(seekerDto));
 }
 public void Add(JobSeekerDto seekerDto)
 {
     seekerDao.Add(DtoConverter.Convert(seekerDto));
 }
        public void fillExcelByType(IEnumerable <object> grid, string status, FileInfo xlsxFile)
        {
            try
            {
                if (grid != null)
                {
                    ExcelPackage pck         = new ExcelPackage(xlsxFile);
                    var          excel       = pck.Workbook.Worksheets.Add(status);
                    int          x           = 1;
                    int          y           = 1;
                    CultureInfo  cultureInfo = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
                    Thread.CurrentThread.CurrentCulture             = cultureInfo;
                    cultureInfo.NumberFormat.NumberDecimalSeparator = ".";
                    // Первая строка (шапка таблицы) – жирным стилем.
                    excel.Cells["A1:Z1"].Style.Font.Bold = true;
                    // Выравнивание текста в ячейках – по левому краю.
                    excel.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
                    // Устанавливает формат ячеек.
                    excel.Cells.Style.Numberformat.Format = "General";

                    Object dtObj = new Object();
                    switch (status)
                    {
                    case "JobSeeker":
                        dtObj = new JobSeekerDto();
                        break;

                    case "TypeOfWork":
                        dtObj = new TypeOfWorkDto();
                        break;

                    case "Employer":
                        dtObj = new EmployerDto();
                        break;

                    case "Position":
                        dtObj = new PositionDto();
                        break;

                    case "Deal":
                        dtObj = new DealDto();
                        break;
                    }
                    // Генерация шапки таблицы
                    foreach (var prop in dtObj.GetType().GetProperties())
                    {
                        excel.Cells[y, x].Value = prop.Name.Trim();
                        x++;
                    }
                    // Генерация строк-записей таблицы.
                    foreach (var item in grid)
                    {
                        y++;
                        Object itemObj = item;
                        x = 1;
                        foreach (var prop in itemObj.GetType().GetProperties())
                        {
                            object t = prop.GetValue(itemObj, null);
                            object val;
                            if (t == null)
                            {
                                val = "";
                            }
                            else
                            {
                                val = t.ToString();
                                if (t is TypeOfWorkDto)
                                {
                                    val = ((TypeOfWorkDto)t).Name;
                                }
                                if (t is JobSeekerDto)
                                {
                                    val = ((JobSeekerDto)t).FullName;
                                }
                                if (t is EmployerDto)
                                {
                                    val = ((EmployerDto)t).Name;
                                }
                                if (t is PositionDto)
                                {
                                    val = ((PositionDto)t).PositionName;
                                }
                            }
                            excel.Cells[y, x].Value = val;
                            x++;
                        }
                    }
                    excel.Cells.AutoFitColumns();
                    pck.Save();
                }
                else
                {
                    MessageBox.Show("Данные не загружены!");
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.ToString(), "ERROR");
                throw new Exception();
            }
        }