public async Task <IActionResult> ChangeProjectPosition(ProjectParticipantChangeViewModel input)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView("_ChangeProjectPositionPartial", input));
            }

            var participantToChange = input.To <ProjectParticipantChangeDto>();

            var checkIsEmployeeParticipantLastManager = await this.projectsService.CheckIsParticipantLastManagerAsync(participantToChange);

            if (checkIsEmployeeParticipantLastManager)
            {
                ModelState.AddModelError(string.Empty, ErrorMessages.INVALID_PARTICIPANTS_MANAGER);

                return(PartialView("_ChangeProjectPositionPartial", input));
            }

            await this.employeesProjectsPositionsService.ChangeEmployeeProjectPositionAsync(participantToChange);

            var newPositionName = await this.projectPositionsService.GetProjectPositionNameByIdAsync(participantToChange.ProjectPositionId);

            var participantFullName = participantToChange.EmployeeFullName;

            return(Json(new { success = true, participantName = participantFullName, position = newPositionName }));
        }
        public async Task <IActionResult> RemoveParticipant([FromQuery] string projectId, [FromQuery] string participantId, [FromQuery] int projectPositionId)
        {
            var currentUserId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

            var IsEmployeeAuthorizedToChangeProject = await this.projectsService.IsEmployeeAuthorizedToChangeProject(projectId, currentUserId);

            if (!IsEmployeeAuthorizedToChangeProject)
            {
                return(Forbid());
            }

            var employeeFullName = await this.employeesService.GetEmployeeFullNameByIdAsync(participantId);

            var model = new ProjectParticipantChangeViewModel
            {
                ProjectId         = projectId,
                EmployeeId        = participantId,
                EmployeeFullName  = employeeFullName,
                ProjectPositionId = projectPositionId
            };

            return(PartialView("_RemoveProjectParticipantPartial", model));
        }