public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (IsCustomFieldAvailable(apiClient) && IsCustomFieldValueValid(value, apiClient)) { var customField = GetCustomField(apiClient); var parameter = new CustomFieldValueParameter { CustomField = customField.Name }; switch (customField.Type) { case CustomFieldResponse.CustomFieldType.TextMultiLine: case CustomFieldResponse.CustomFieldType.TextSingleLine: case CustomFieldResponse.CustomFieldType.DropdownList: parameter.Value = value; break; case CustomFieldResponse.CustomFieldType.CheckBox: parameter.Value = value.Is("X").ToString().ToLower(); break; case CustomFieldResponse.CustomFieldType.CheckboxList: parameter.Values = (value ?? "").Split(',').Select(x => x.Trim()).Where(x => x.HasValue()); break; case CustomFieldResponse.CustomFieldType.Date: var date = ParseDate(value); parameter.Value = date.HasValue ? date.Value.ToString(CultureInfo.InvariantCulture) : null; break; } new ApplicantCustomFieldPostRequest(applicant.Id, parameter).LoadResult(apiClient); } }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (value.HasValue()) { new ApplicantHistoryPutRequest(applicant.Id, BuildHistoryParameter(value)).LoadResult(apiClient); } }
internal async Task <ApplicantIdDocs> CreateApplicantIdDocs(ApplicantResponse applicant) { var idDocs = _fixture.Create <ApplicantIdDocs>(); var applicantIdDocs = await Client.SetApplicantIdDocsAsync(applicant.Id, idDocs); return(applicantIdDocs); }
public ApplicantCompleteness(ApplicantResponse applicantResponse, IEnumerable <ApplicantDocumentResponse> documents, IEnumerable <string> jobProfiles, IEnumerable <ApplicantActivityResponse> activities) { CalculatePersonalInformation(applicantResponse); CalculateFiles(documents); CalculateJobProfiles(jobProfiles); CalculateActivities(activities); }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (IsCustomFieldAvailable(apiClient) && IsCustomFieldValueValid(value, apiClient)) { var customField = GetCustomField(apiClient); var parameter = new CustomFieldValueParameter { CustomField = customField.Name }; switch (customField.Type) { case CustomFieldResponse.CustomFieldType.TextMultiLine: case CustomFieldResponse.CustomFieldType.TextSingleLine: case CustomFieldResponse.CustomFieldType.DropdownList: parameter.Value = value; break; case CustomFieldResponse.CustomFieldType.CheckBox: parameter.Value = value.Is("X").ToString().ToLower(); break; case CustomFieldResponse.CustomFieldType.CheckboxList: parameter.Values = (value ?? "").Split(',').Select(x => x.Trim()).Where(x => x.HasValue()); break; case CustomFieldResponse.CustomFieldType.Date: var date = ParseDate(value); parameter.Value = date.HasValue ? date.Value.ToString(CultureInfo.InvariantCulture) : null; break; } new ApplicantCustomFieldPostRequest(applicant.Id, parameter).LoadResult(apiClient); } }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (value.HasValue()) { new ApplicantHistoryPutRequest(applicant.Id, BuildHistoryParameter(value)).LoadResult(apiClient); } }
private ActionResult SetAuthCookieOrRedirectToErrorPage(ApplicantResponse applicantResponse, ActionResult onSuccessRedirectTo) { if (applicantResponse != null) { FormsAuthentication.SetAuthCookie(applicantResponse.Id.ToString(CultureInfo.InvariantCulture), false); return(onSuccessRedirectTo); } return(RedirectToAction("Login", "Account")); }
public ApplicantParameter(ApplicantResponse applicantResponse) { // just copy the value of each property foreach ( var property in typeof(ApplicantParameter).GetProperties(BindingFlags.Instance | BindingFlags.Public)) { property.SetValue(this, typeof(ApplicantResponse).GetProperty(property.Name).GetValue(applicantResponse)); } }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (IsKnowledgeAvailable(apiClient) && IsKnowledgeLevelAvailable(value, apiClient)) { new ApplicantKnowledgePutRequest(applicant.Id, new ApplicantKnowledgeParameter { Knowledge = SubType, Level = value }).LoadResult(apiClient); } }
public async Task <ActionResult <Envelope <ApplicantResponse> > > RemoveApplicant(int applicantId) { var removeApplicant = await _applicantService.RemoveApplicant(applicantId); if (removeApplicant.IsSuccess) { return(Ok(Envelope.Ok(ApplicantResponse.Map(removeApplicant.Value)))); } return(BadRequest(Envelope.Error(removeApplicant.Error))); }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (IsKnowledgeAvailable(apiClient) && IsKnowledgeLevelAvailable(value, apiClient)) { new ApplicantKnowledgePutRequest(applicant.Id, new ApplicantKnowledgeParameter { Knowledge = SubType, Level = value }).LoadResult(apiClient); } }
private void SetFile(string filePath, ApplicantResponse applicant, ApiHttpClient apiClient) { var bytes = File.ReadAllBytes(filePath); new ApplicantDocumentPutRequest(applicant.Id, new ApplicantDocumentParameter { Content = bytes, Name = Path.GetFileName(filePath), FileExtension = Path.GetExtension(filePath), Type = SubType, IsPublic = false }).LoadResult(apiClient); }
public async Task AddPhoto(ApiHttpClient apiClient, ApplicantResponse applicantResponse, HttpPostedFileBase file) { using (var reader = new BinaryReader(file.InputStream)) { var document = new ApplicantDocumentParameter { Content = reader.ReadBytes(file.ContentLength), FileExtension = (Path.GetExtension(file.FileName) ?? "").Trim('.') }; await new ApplicantPhotoPostRequest(applicantResponse.Id, document).LoadResult(apiClient); } }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (value.HasValue() && File.Exists(value)) { var bytes = File.ReadAllBytes(value); new ApplicantCvPutRequest(applicant.Id, new ApplicantCvParameter { Content = bytes, FileExtension = Path.GetExtension(value) }).LoadResult(apiClient); } }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (value.HasValue() && File.Exists(value)) { var bytes = File.ReadAllBytes(value); new ApplicantPhotoPutRequest(applicant.Id, new ApplicantPhotoParameter { Content = bytes, FileExtension = Path.GetExtension(value) }).LoadResult(apiClient); } }
public async Task <ActionResult <Envelope <ApplicantResponse> > > ModifyApplicant(int applicantId, [FromBody] ApplicantDto dto) { var modifyApplicant = await _applicantService.ModifyApplicant(applicantId, dto); if (modifyApplicant.IsSuccess) { return(Ok(Envelope.Ok(ApplicantResponse.Map(modifyApplicant.Value)))); } return(BadRequest(Envelope.Error(modifyApplicant.Error))); }
private void CalculatePersonalInformation(ApplicantResponse applicantResponse) { PersonalInformation = 100; PersonalInformation -= applicantResponse.FirstName.IsNoE() ? 15 : 0; PersonalInformation -= applicantResponse.LastName.IsNoE() ? 15 : 0; PersonalInformation -= applicantResponse.Email.IsNoE() ? 15 : 0; PersonalInformation -= applicantResponse.Phone.IsNoE() && applicantResponse.MobilePhone.IsNoE() ? 15 : 0; PersonalInformation -= !applicantResponse.Gender.HasValue ? 15 : 0; PersonalInformation -= !applicantResponse.BirthDate.HasValue ? 10 : 0; PersonalInformation -= applicantResponse.Street.IsNoE() ? 5 : 0; PersonalInformation -= applicantResponse.ZipCode.IsNoE() ? 5 : 0; PersonalInformation -= applicantResponse.City.IsNoE() ? 5 : 0; }
private void SetFile(string filePath, ApplicantResponse applicant, ApiHttpClient apiClient) { var bytes = File.ReadAllBytes(filePath); new ApplicantDocumentPutRequest(applicant.Id, new ApplicantDocumentParameter { Content = bytes, Name = Path.GetFileName(filePath), FileExtension = Path.GetExtension(filePath), Type = SubType, IsPublic = false }).LoadResult(apiClient); }
public async Task <ActionResult <Envelope <ApplicantResponse> > > RegisterApplicant([FromBody] ApplicantDto dto) { var registerApplicant = await _applicantService.RegisterApplicant(dto); if (registerApplicant.IsSuccess) { return(CreatedAtAction(nameof(GetApplicant), new { applicantId = registerApplicant.Value.Id }, Envelope.Ok(ApplicantResponse.Map(registerApplicant.Value)))); } return(BadRequest(Envelope.Error(registerApplicant.Error))); }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (value != null && value.HasValue() && IsDocumentTypeAvailable(apiClient)) { if (File.Exists(value)) { SetFile(value, applicant, apiClient); } else if (Directory.Exists(value)) { foreach (var file in Directory.GetFiles(value)) SetFile(file, applicant, apiClient); } } }
public ApplicantResponse GetMultiple(SearchRequest request) { var response = new ApplicantResponse() { Applicants = new List <ApplicantInfo>() }; var query = GetAll <Applicant>(includeProperties: $"{nameof(User)},"); var selected = _mapper.ProjectTo <ApplicantInfo>(query) .Applyfilters(request).ToList(); response.Applicants.AddRange(selected); response.MaxApplicants = GetCount <Applicant>(); return(response); }
public override void SetValueAfterCreate(string value, ApplicantResponse applicant, ApiHttpClient apiClient) { if (value != null && value.HasValue() && IsDocumentTypeAvailable(apiClient)) { if (File.Exists(value)) { SetFile(value, applicant, apiClient); } else if (Directory.Exists(value)) { foreach (var file in Directory.GetFiles(value)) { SetFile(file, applicant, apiClient); } } } }
public ApplicantParameter(ApplicantResponse applicantResponse) { FirstName = applicantResponse.FirstName; LastName = applicantResponse.LastName; Gender = applicantResponse.Gender; Email = applicantResponse.Email; TitleBeforeName = applicantResponse.TitleBeforeName; TitleAfterName = applicantResponse.TitleAfterName; BirthDate = applicantResponse.BirthDate; Street = applicantResponse.Street; City = applicantResponse.City; ZipCode = applicantResponse.ZipCode; Country = applicantResponse.Country; Nationality = applicantResponse.Nationality; Phone = applicantResponse.Phone; MobilePhone = applicantResponse.MobilePhone; IsActive = applicantResponse.IsActive; EnableNewsletter = applicantResponse.EnableNewsletter; EnableMatchingJobsAutoMail = applicantResponse.EnableMatchingJobsAutoMail; }
public async Task <IActionResult> CreateAsync([FromBody] CreateApplicantRequest applicantRequest) { var isValid = await _countryLookupService.IsValidCountry(applicantRequest.CountryOfOrigin); if (!isValid) { return(BadRequest("Invalid country name")); } var isExists = await _applicantService.GetApplicantByEmailAsync(applicantRequest.EmailAddress); if (isExists) { return(BadRequest("User with this email already exists")); } //TODO: externlize conversions, using AutoMapper var applicant = new Applicant { Id = Guid.NewGuid(), Name = applicantRequest.Name, FamilyName = applicantRequest.FamilyName, Address = applicantRequest.Address, CountryOfOrigin = applicantRequest.CountryOfOrigin, EmailAddress = applicantRequest.EmailAddress, Age = applicantRequest.Age, Hired = applicantRequest.Hired }; await _applicantService.CreateApplicantAsync(applicant); var baseUri = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var locationUri = baseUri + "/" + ApiRoutes.Applicants.Get.Replace("{ApplicantId}", applicant.Id.ToString()); var response = new ApplicantResponse { Id = applicant.Id }; return(Created(locationUri, response)); }
public IndexViewModel(ApplicantResponse applicantResponse, IEnumerable <ApplicantDocumentResponse> documents, IEnumerable <string> jobProfiles, IEnumerable <ApplicantActivityResponse> activities) { ApplicantResponse = applicantResponse; Completeness = new ApplicantCompleteness(applicantResponse, documents, jobProfiles, activities); }
public async Task <ApplicantResponse> UpdatePersonalInformation(ApiHttpClient apiClient, ApplicantResponse applicantResponse, PersonalInformationViewModel model) { //set the remaining applicant data by updating it var updateParameter = new ApplicantParameter(applicantResponse) { BirthDate = model.BirthDate, City = model.City, Country = model.Country, Nationality = model.Nationality, Phone = model.Phone, Street = model.Street, TitleBeforeName = model.TitleBeforeName, TitleAfterName = model.TitleAfterName, ZipCode = model.ZipCode, Email = model.Email }; return(await new ApplicantPostRequest(applicantResponse.Id, updateParameter).LoadResult(apiClient)); }
public virtual void SetValueAfterCreate([CanBeNull] string value, [NotNull] ApplicantResponse applicant, [NotNull] ApiHttpClient apiClient) { }
public virtual PersonalInformationViewModel Prepare([NotNull] MandatorResponse mandatorResponse, [CanBeNull] ApplicantResponse applicantResponse) { AllowEmptyGender = mandatorResponse.PortalSettings.AllowEmptyGender; AvailableTitlesBeforeName = from x in mandatorResponse.TitlesBeforeName select new SelectListItem { Value = x.Name, Text = x.Name }; AvailableTitlesAfterName = from x in mandatorResponse.TitlesAfterName select new SelectListItem { Value = x.Name, Text = x.Name }; AvailableCountries = from x in mandatorResponse.Countries select new SelectListItem { Value = x, Text = x }; AvailableNationalities = from x in mandatorResponse.Countries select new SelectListItem { Value = x, Text = x }; if (applicantResponse != null) { AutoMapper.Mapper.DynamicMap(applicantResponse, this); } return(this); }
public async Task <ApplicantResponse> LinkProfileToApplicant([NotNull] ApiHttpClient apiClient, [NotNull] MandatorResponse mandatorResponse, [CanBeNull] ApplicantResponse loggedInApplicantResponse, [NotNull] IProfile profile, ThirdParty thirdParty) { if (profile == null) { throw new ArgumentNullException("profile"); } ApplicantResponse applicant; try { applicant = loggedInApplicantResponse ?? await new ApplicantGetRequest(profile.Id, thirdParty).LoadResult(apiClient); } catch { applicant = null; } //we don't have an applicant that is logged in or has a matching profile //so, lets create a new applicant if (applicant == null) { //this should never happen, because we catch this case earlier, before calling this method //this is just to make absolutely sure ;) if (await IsEmailAddressAlreadyInUse(apiClient, mandatorResponse, profile.Email)) { return(null); } bool?gender = null; if (profile.Gender == Gender.Female) { gender = false; } else if (profile.Gender == Gender.Male) { gender = true; } var parameter = new ApplicantParameter { Email = profile.Email, FirstName = profile.FirstName, LastName = profile.LastName, Gender = gender }; applicant = await new ApplicantPutRequest(parameter).LoadResult(apiClient); } //now link the profile var linkRequest = thirdParty == ThirdParty.Xing ? new LinkXingRequest(applicant.Id, profile.Id, profile.Url) : (HttpRequestMessage <ApplicantResponse>) new LinkLinkedInRequest(applicant.Id, profile.Id, profile.Url); applicant = await linkRequest.LoadResult(apiClient); return(applicant); }