public async Task <IActionResult> Create(Candidate candidate)
        {
            if (ModelState.IsValid)
            {
                if (candidate.Resume != null)
                {
                    var filePath = "Resumes\\" + candidate.Resume.FileName;
                    await using (var stream =
                                     new FileStream(Path.Combine(_webHost.WebRootPath, filePath), FileMode.Create))
                    {
                        await candidate.Resume.CopyToAsync(stream);
                    }

                    candidate.ResumeUrl = filePath;
                }

                candidate.CreateDate = DateTime.Now;
                _context.Add(candidate);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DepartmentId"] = await _context.Departments
                                       .Include(x => x.City)
                                       .Select(x => new SelectListItem($"{x.City.Name}, {x.Address}", x.DepartmentId.ToString()))
                                       .ToListAsync();

            return(View(candidate));
        }
        public async Task <IActionResult> Create([Bind("JobTitleId,Requirements,PositionsCount,CustomerId,TariffId,CompanyOfficeId")] Vacancy vacancy)
        {
            if (ModelState.IsValid)
            {
                vacancy.RecruiterId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));
                vacancy.StartDate   = vacancy.CreateDate = DateTime.Now;
                _context.Add(vacancy);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CompanyOffice"] = await _context.CompanyOffices
                                        .Include(x => x.City)
                                        .Select(x => new { x.CompanyId, Value = x.CompanyOfficeId, Text = $"{x.City.Name}, {x.Address}" })
                                        .ToListAsync();

            ViewData["Customer"] = await _context.Customers
                                   .Select(x => new { x.CompanyId, Value = x.CustomerId, Text = $"{x.FirstName} {x.LastName}" })
                                   .ToListAsync();

            ViewData["JobTitle"] = await _context.JobTitles
                                   .Select(x => new { x.JobCategoryId, Value = x.JobTitleId, Text = x.Name })
                                   .ToListAsync();

            ViewData["TariffId"] = new SelectList(_context.Tariffs.Where(x => x.BeginDate <= DateTime.Now && x.EndDate >= DateTime.Now), "TariffId", "Name");
            ViewData["Tariff"]   = await _context.Tariffs
                                   .Where(x => x.BeginDate <= DateTime.Now && x.EndDate >= DateTime.Now)
                                   .Select(x => new { Value = x.TariffId, Cost = x.PriceForCandidate })
                                   .ToListAsync();

            ViewData["CompanyId"]     = new SelectList(_context.Companies, "CompanyId", "Name");
            ViewData["JobCategoryId"] = new SelectList(_context.JobCategories, "JobCategoryId", "Name");
            return(View(vacancy));
        }
        public async Task <IActionResult> CreateRecruiter([Bind("EmployeeId,FirstName,LastName,DepartmentId,PersonalAccount")] Employee employee)
        {
            if (ModelState.IsValid)
            {
                employee.RoleId = await _context.Roles.Where(x => x.Name == "Recruiter").Select(x => x.RoleId).FirstOrDefaultAsync();

                employee.PersonalAccount.CreateDate = employee.CreateDate = DateTime.Now;
                _context.Add(employee);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Recruiters)));
            }
            ViewData["DepartmentId"] = await _context.Departments
                                       .Include(x => x.City)
                                       .Select(x => new SelectListItem($"{x.City.Name}, {x.Address}", x.DepartmentId.ToString()))
                                       .ToListAsync();

            return(View(employee));
        }
        public async Task <IActionResult> Create([Bind("PaymentId,VacancyId,Sum,TransactionDate,CreateDate,UpdateDate")] Payment payment)
        {
            if (ModelState.IsValid)
            {
                payment.CreateDate = DateTime.Now;
                _context.Add(payment);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index", "Vacancies"));
            }
            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> Create([Bind("CustomerId,FirstName,LastName,CompanyId,Email,PhoneNumber")] Customer customer)
        {
            if (ModelState.IsValid)
            {
                customer.CreateDate = DateTime.Now;
                _context.Add(customer);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CompanyId"] = new SelectList(_context.Companies, "CompanyId", "Name", customer.CompanyId);
            return(View(customer));
        }
        public async Task <IActionResult> Create([Bind("CandidateId,VacancyId")] Application application)
        {
            if (ModelState.IsValid)
            {
                application.ApplicationStatusId =
                    (await _context.ApplicationStatuses.FirstOrDefaultAsync(x => x.Name == "New")).ApplicationStatusId;
                application.CreateDate = DateTime.Now;
                _context.Add(application);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index", "Vacancies"));
            }
            return(BadRequest(ModelState));
        }