public async Task <Result <int> > Handle(CreateRecruitmentCommand request, CancellationToken cancellationToken)
        {
            var id = _authenticatedUser.Username;

            CreatePlaceCommand place = new CreatePlaceCommand {
                PlaceName = request.PlaceName, ProvinceId = request.ProvinceId, DistrictId = request.DistrictId, CommuneId = request.CommuneId, PlaceTypeId = 23, Latitude = request.Latitude, Longitude = request.Longitude
            };
            var itemPlace = _mapper.Map <Place>(place);

            await _placeRepository.InsertAsync(itemPlace);

            await _unitOfWork.Commit(cancellationToken);

            var company = await _companyRepository.GetByUserNameAsync(id);

            Throw.Exception.IfNull(company, "Company", "No Company Found");

            CultureInfo provider = CultureInfo.InvariantCulture;

            /* DateTime? ResumeApplyExpired = null;
             * try { ResumeApplyExpired = DateTime.ParseExact(request.ResumeApplyExpired, "dd/MM/yyyy", provider); } catch { }*/

            var item = _mapper.Map <Recruitment>(request);

            item.PlaceId   = itemPlace.Id;
            item.UserName  = id;
            item.CompanyId = company.Id;

            await _repository.InsertAsync(item);

            await _unitOfWork.Commit(cancellationToken);

            if (request.ListBenefit != null)
            {
                foreach (var _item in request.ListBenefit)
                {
                    try
                    {
                        RecruitmentBenefit tmp = new RecruitmentBenefit {
                            BenefitId = _item.BenefitId, Name = _item.Name, RecruitmentId = item.Id
                        };
                        await _recruitmentBenefitRepository.InsertAsync(tmp);
                    }
                    catch
                    {
                    }
                }
            }


            await _unitOfWork.Commit(cancellationToken);

            return(Result <int> .Success(item.Id));
        }