public async Task <IActionResult> Edit(int id, [Bind("ApplicationId,CandidateId,VacancyId,ApplicationStatusId,CreateDate,UpdateDate")] Application application)
        {
            if (id != application.ApplicationId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(application);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ApplicationExists(application.ApplicationId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ApplicationStatusId"] = new SelectList(_context.ApplicationStatuses, "ApplicationStatusId", "Name", application.ApplicationStatusId);
            ViewData["CandidateId"]         = new SelectList(_context.Candidates, "CandidateId", "FirstName", application.CandidateId);
            ViewData["VacancyId"]           = new SelectList(_context.Vacancies, "VacancyId", "Requirements", application.VacancyId);
            return(View(application));
        }
        public async Task <IActionResult> Edit(int id, [Bind("PaymentId,VacancyId,Sum,TransactionDate,CreateDate,UpdateDate")] Payment payment)
        {
            if (id != payment.PaymentId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(payment);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PaymentExists(payment.PaymentId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["VacancyId"] = new SelectList(_context.Vacancies, "VacancyId", "Requirements", payment.VacancyId);
            return(View(payment));
        }
        public async Task <IActionResult> Edit(int id, [Bind("CustomerId,FirstName,LastName,CompanyId,Email,PhoneNumber,Rating,CreateDate,UpdateDate")] Customer customer)
        {
            if (id != customer.CustomerId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    customer.UpdateDate = DateTime.Now;
                    _context.Update(customer);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CustomerExists(customer.CustomerId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CompanyId"] = new SelectList(_context.Companies, "CompanyId", "Name", customer.CompanyId);
            return(View(customer));
        }
        public async Task <IActionResult> Edit(int id, [Bind("VacancyId,JobTitleId,Requirements,PositionsCount,StartDate,EndDate,CustomerId,TariffId,RecruiterId,CreateDate,UpdateDate,CompanyOfficeId")] Vacancy vacancy)
        {
            if (id != vacancy.VacancyId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    vacancy.UpdateDate = DateTime.Now;
                    _context.Update(vacancy);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!VacancyExists(vacancy.VacancyId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CompanyOfficeId"] = await _context.CompanyOffices
                                          .Include(x => x.City)
                                          .Select(x => new SelectListItem($"{x.City.Name}, {x.Address}", x.CompanyOfficeId.ToString()))
                                          .ToListAsync();

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

            ViewData["JobTitleId"] = await _context.JobTitles
                                     .Select(x => new SelectListItem(x.Name, x.JobTitleId.ToString()))
                                     .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> Edit(int id, [Bind("EmployeeId,FirstName,LastName,DepartmentId,PersonalAccount,RoleId,Rating,CreateDate,UpdateDate")] Employee employee)
        {
            if (id != employee.EmployeeId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    employee.UpdateDate = employee.PersonalAccount.UpdateDate = DateTime.Now;
                    _context.Update(employee);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EmployeeExists(employee.EmployeeId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                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();

            ViewData["RoleId"] = new SelectList(_context.Roles, "RoleId", "Name");
            return(View(employee));
        }
        public async Task <IActionResult> Edit(int id, [Bind("CandidateId,FirstName,LastName,Rating,DepartmentId,Email,PhoneNumber,Resume,CreateDate")] Candidate candidate)
        {
            if (id != candidate.CandidateId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (candidate.Resume != null)
                    {
                        var filePath = "Resumes\\" + candidate.Resume.FileName;
                        await using (var stream =
                                         new FileStream(Path.Combine(_webHost.WebRootPath, filePath), FileMode.OpenOrCreate))
                        {
                            await candidate.Resume.CopyToAsync(stream);
                        }

                        candidate.ResumeUrl = filePath;
                    }

                    candidate.UpdateDate = DateTime.Now;
                    _context.Update(candidate);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CandidateExists(candidate.CandidateId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                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));
        }