public async Task <ActionResult> New(NewJobOpportunityViewModel model, bool captchaValid)
        {
            if (!ModelState.IsValid)
            {
                return(View(model)
                       .WithError("Han ocurrido errores de validación que no permiten continuar el proceso"));
            }

            if (string.IsNullOrWhiteSpace(model.LocationPlaceId))
            {
                ModelState.AddModelError(nameof(model.LocationName), "");
                return(View(model).WithError("Debe seleccionar una Localidad."));
            }

            if (!string.IsNullOrWhiteSpace(model.CompanyLogoUrl) && !UrlHelperExtensions.IsImageAvailable(model.CompanyLogoUrl))
            {
                return(View(model).WithError("La url del logo debe ser a una imagen en formato png o jpg"));
            }

            var jobOpportunity = model.ToEntity();
            var userId         = User.Identity.GetUserId();

            _jobOpportunityService.CreateNewJobOpportunity(jobOpportunity, userId);

            await _twitterService.PostNewJobOpportunity(jobOpportunity, Url).ConfigureAwait(false);

            return(RedirectToAction(nameof(Detail), new
            {
                id = UrlHelperExtensions.SeoUrl(jobOpportunity.Id, jobOpportunity.Title)
            }));
        }