Ejemplo n.º 1
0
 /// <summary>
 /// Determines if the specified user has authorization to a specific position
 /// </summary>
 /// <param name="procParams"></param>
 /// <returns></returns>
 public AuthorizationResultViewModel Execute(PositionAuthorizationParams procParams)
 {
     return(new AuthorizationResultViewModel
     {
         UserAuthorized = _context.Positions
                          .Any(x => x.Id == procParams.PositionId && x.Company.JobSearch.User.Id == procParams.RequestingUserId)
     });
 }
Ejemplo n.º 2
0
        public PositionDisplayViewModel Execute(EditPositionParams procParams)
        {
            // Verify the user is authorized for the position
            var authParams = new PositionAuthorizationParams {
                PositionId = procParams.Id, RequestingUserId = procParams.RequestingUserId
            };

            if (!_positionAuthProcess.Execute(authParams).UserAuthorized)
            {
                throw new UserNotAuthorizedForEntityException(typeof(Position), procParams.Id, procParams.RequestingUserId);
            }

            Position position = _context.Positions.SingleOrDefault(x => x.Id == procParams.Id);

            if (position == null)
            {
                throw new MJLEntityNotFoundException(typeof(Position), procParams.Id);
            }

            position.Title      = procParams.Title;
            position.HasApplied = procParams.HasApplied;
            position.Notes      = procParams.Notes;

            position.History.Add(new PositionHistory
            {
                Title      = procParams.Title,
                HasApplied = procParams.HasApplied,
                Notes      = procParams.Notes,
                LinkedInId = position.LinkedInId,

                AuthoringUserId = procParams.RequestingUserId,
                DateModified    = DateTime.Now,
                HistoryAction   = MJLConstants.HistoryUpdate
            });

            _context.SaveChanges();

            return(Mapper.Map <Position, PositionDisplayViewModel>(position));
        }