示例#1
0
        public ActionResult Details(int applicationId)
        {
            // get application
            Application application = _applicationsRepository.GetApplicationById(applicationId);

            // get current user logged in
            int userIdCurrentlyLoggedIn = Int32.Parse(User.Claims.FirstOrDefault(uc => uc.Type == ClaimTypes.NameIdentifier).Value);

            // check if application does not exists
            if (application == null)
            {
                return(NotFound());
            }

            // check if application is not made by the applicant
            if (User.IsInRole("candidate"))
            {
                ViewBag.SelectedNav = "Profile";
                if (application.JobFinderUser.UserId != userIdCurrentlyLoggedIn)
                {
                    return(NotFound());
                }
            }

            // check if company user is not assigned to see the job listing
            if (User.IsInRole("hr"))
            {
                ViewBag.SelectedNav = "Dashboard";
                int companyId = application.JobListing.Company.CompanyId;
                if (!_companyUsersRepository.CompanyUserExists(userIdCurrentlyLoggedIn, companyId))
                {
                    return(NotFound());
                }
            }

            // retrieve data for application
            ApplicationEducation      applicationEducation      = _applicationEducationsRepository.GetApplicationEducationForApplication(applicationId);
            ApplicationWorkExperience applicationWorkExperience = _applicationWorkExperience.GetApplicationWorkExperienceForApplication(applicationId);
            ApplicationSkill          applicationSkill          = _applicationSkillsRepository.GetApplicationSkillForApplication(applicationId);

            // build a list for potential application statuses
            List <string> ApplicationStatuses = new List <string> {
                "Pending", "Contacted", "Accepted", "Rejected"
            };

            // build up a view model with all the data required to see an application
            ViewApplicationViewModel viewApplicationViewModel = new ViewApplicationViewModel
            {
                Application               = application,
                ApplicationEducation      = applicationEducation,
                ApplicationSkill          = applicationSkill,
                ApplicationWorkExperience = applicationWorkExperience,
                OtherNotes           = application.OtherNotes,
                Status               = application.Status,
                ApplicationWrittenAt = application.ApplicationWrittenAt
            };

            ViewBag.ApplicationStatuses = new SelectList(ApplicationStatuses, ApplicationStatuses);
            return(View(viewApplicationViewModel));
        }
        public async Task <IActionResult> DeclineApplication(ViewApplicationViewModel model)
        {
            VendorApplication application = await _vendorApplicationRepository.GetApplicationByIdAsync(model.VendorApplicationId);

            application.Status        = "Declined";
            application.RejectMessage = model.RejectMessage;

            await _vendorApplicationRepository.UpdateApplicationAsync(application);

            return(RedirectToAction("ListApplications", "VendorApplication"));
        }
示例#3
0
 public void UpdateStatus(ViewApplicationViewModel viewmodel)
 {
     using (UnitOfWork.UnitOfWork uow = new UnitOfWork.UnitOfWork())
     {
         var application = uow.Repository <Application>().GetById(viewmodel.IdNumber);
         if (application != null)
         {
             application.Status = viewmodel.Status;
             uow.Repository <Application>().Update(application);
             uow.Save();
         }
     }
 }
        public async Task <IActionResult> ViewApplicationAsync(int applicationId)
        {
            VendorApplication application = await _vendorApplicationRepository.GetApplicationByIdAsync(applicationId);

            //Currency currency = await _currencyRepository.GetCurrencyByNameAsync(purchase.PaymentMethods.First().PaymentMethodName);
            //PaymentMethod paymentMethod = purchase.PaymentMethods.First();
            ApplicationUser user = await _userManager.FindByIdAsync(application.ApplicantId);


            var vm = new ViewApplicationViewModel
            {
                VendorApplicationId = application.VendorApplicationId,
                Applicant           = user,
                IdProofUrl          = application.IdProofUrl,
                ResidenceProof      = application.ResidencyProofUrl,
                ApplicationDate     = application.ApplicationDate,
                RejectMessage       = application.RejectMessage
            };

            return(View(vm));
        }