예제 #1
0
        public async Task <Result <int> > Handle(UpdateJobApplicationCommand command, CancellationToken cancellationToken)
        {
            var userName = _authenticatedUser.Username;
            var user     = await _userManager.FindByNameAsync(userName);

            var rolesList = await _userManager.GetRolesAsync(user).ConfigureAwait(false);

            var item = await _repository.GetByIdAsync(command.Id);

            if (item != null && (rolesList.Contains("Admin") || rolesList.Contains("SuperAdmin") || userName == item.UserName))
            {
                item.Name              = command.Name ?? item.Name;
                item.CVFile            = command.CVFile ?? item.CVFile;
                item.CurrentPositionId = command.CurrentPositionId ?? item.CurrentPositionId;
                item.PositionId        = command.PositionId ?? item.PositionId;
                item.DegreeId          = command.DegreeId ?? item.DegreeId;
                item.ExperienceId      = command.ExperienceId ?? item.ExperienceId;
                item.MinExpectedSalary = command.MinExpectedSalary ?? item.MinExpectedSalary;
                item.Adrress           = command.Adrress ?? item.Adrress;
                item.JobTypeId         = command.JobTypeId ?? item.JobTypeId;
                item.IsSearchAllowed   = command.IsSearchAllowed ?? item.IsSearchAllowed;
                await _repository.UpdateAsync(item);

                await _unitOfWork.Commit(cancellationToken);

                return(Result <int> .Success(item.Id));
            }
            return(Result <int> .Fail("Lỗi!!!"));
        }