public async Task <ActionResult> Add() { var newOffer = new HR_Project_Database.Models.JobOffer() { JobTitle = "", Description = "", Status = HR_Project_Database.Models.JobOfferStatus.Inactive }; context.JobOffer.Add(newOffer); await context.SaveChangesAsync(); if (User.IsInRole(UserRole.HR)) { var newResponsibility = new HR_Project_Database.Models.Responsibility() { JobOfferId = newOffer.IdJobOffer, UserId = User.GetId(context) }; context.Responsibility.Add(newResponsibility); await context.SaveChangesAsync(); } return(RedirectToAction("Details", new { id = newOffer.IdJobOffer, isEditing = true })); }
public static bool CanManageJobOffer(this ClaimsPrincipal user, HR_Project_Database.Models.JobOffer jobOffer) { return(user.IsInRole(UserRole.Admin) || (user.IsInRole(UserRole.HR) && jobOffer.Responsibility.Any(responsibility => responsibility.User.ExternalId == user.GetExternalId()))); }