public static T Resolve <T>(this T candidateViewModel, ApplicationDetail apprenticeshipApplicationDetail) where T : CandidateViewModelBase { candidateViewModel.Id = apprenticeshipApplicationDetail.CandidateId; candidateViewModel.EmailAddress = apprenticeshipApplicationDetail.CandidateDetails.EmailAddress; candidateViewModel.FirstName = apprenticeshipApplicationDetail.CandidateDetails.FirstName; candidateViewModel.LastName = apprenticeshipApplicationDetail.CandidateDetails.LastName; candidateViewModel.DateOfBirth = apprenticeshipApplicationDetail.CandidateDetails.DateOfBirth; candidateViewModel.PhoneNumber = apprenticeshipApplicationDetail.CandidateDetails.PhoneNumber; candidateViewModel.Address = ApplicationConverter.GetAddressViewModel(apprenticeshipApplicationDetail.CandidateDetails.Address); candidateViewModel.Qualifications = ApplicationConverter.GetQualificationsViewModels(apprenticeshipApplicationDetail.CandidateInformation.Qualifications); candidateViewModel.HasQualifications = ApplicationConverter.GetQualificationsViewModels(apprenticeshipApplicationDetail.CandidateInformation.Qualifications) .Any(); candidateViewModel.WorkExperience = ApplicationConverter.GetWorkExperiencesViewModels(apprenticeshipApplicationDetail.CandidateInformation.WorkExperience); candidateViewModel.HasWorkExperience = ApplicationConverter.GetWorkExperiencesViewModels(apprenticeshipApplicationDetail.CandidateInformation.WorkExperience) .Any(); candidateViewModel.EmployerQuestionAnswers = new EmployerQuestionAnswersViewModel { CandidateAnswer1 = apprenticeshipApplicationDetail.AdditionalQuestion1Answer, CandidateAnswer2 = apprenticeshipApplicationDetail.AdditionalQuestion2Answer }; return(candidateViewModel); }
public static T Resolve <T>(this T candidateViewModel, ApplicationDetail applicationDetail) where T : CandidateViewModelBase { candidateViewModel.Id = applicationDetail.CandidateId; candidateViewModel.EmailAddress = applicationDetail.CandidateDetails.EmailAddress; candidateViewModel.FirstName = applicationDetail.CandidateDetails.FirstName; candidateViewModel.LastName = applicationDetail.CandidateDetails.LastName; candidateViewModel.DateOfBirth = applicationDetail.CandidateDetails.DateOfBirth; candidateViewModel.PhoneNumber = applicationDetail.CandidateDetails.PhoneNumber; candidateViewModel.Address = ApplicationConverter.GetAddressViewModel(applicationDetail.CandidateDetails.Address); candidateViewModel.Qualifications = ApplicationConverter.GetQualificationsViewModels(applicationDetail.CandidateInformation.Qualifications); candidateViewModel.HasQualifications = candidateViewModel.Qualifications.Any(); candidateViewModel.WorkExperience = ApplicationConverter.GetWorkExperiencesViewModels(applicationDetail.CandidateInformation.WorkExperience); candidateViewModel.HasWorkExperience = candidateViewModel.WorkExperience.Any(); candidateViewModel.TrainingCourses = ApplicationConverter.GetTrainingCourseViewModels(applicationDetail.CandidateInformation.TrainingCourses); candidateViewModel.HasTrainingCourses = candidateViewModel.TrainingCourses.Any(); candidateViewModel.MonitoringInformation = ApplicationConverter.GetMonitoringInformationViewModel(applicationDetail.CandidateInformation.AboutYou, applicationDetail.CandidateInformation.DisabilityStatus); candidateViewModel.EmployerQuestionAnswers = new EmployerQuestionAnswersViewModel { CandidateAnswer1 = applicationDetail.AdditionalQuestion1Answer, CandidateAnswer2 = applicationDetail.AdditionalQuestion2Answer }; return(candidateViewModel); }
private static RegistrationDetails GetCandidateDetails(CandidateViewModelBase modelBase) { return(new RegistrationDetails { EmailAddress = modelBase.EmailAddress, Address = ApplicationConverter.GetAddress(modelBase.Address), DateOfBirth = modelBase.DateOfBirth, PhoneNumber = modelBase.PhoneNumber, FirstName = modelBase.FirstName, LastName = modelBase.LastName, }); }
private static ApplicationTemplate GetCandidateInformation(TraineeshipCandidateViewModel modelBase) { return(new ApplicationTemplate { Qualifications = modelBase.HasQualifications ? ApplicationConverter.GetQualifications(modelBase.Qualifications) : new List <Qualification>(), WorkExperience = modelBase.HasWorkExperience ? ApplicationConverter.GetWorkExperiences(modelBase.WorkExperience) : new List <WorkExperience>(), }); }
private static ApplicationTemplate GetCandidateInformation(ApprenticeshipCandidateViewModel modelBase) { return(new ApplicationTemplate { AboutYou = ApplicationConverter.GetAboutYou(modelBase.AboutYou), EducationHistory = ApplicationConverter.GetEducation(modelBase.Education), Qualifications = modelBase.HasQualifications ? ApplicationConverter.GetQualifications(modelBase.Qualifications) : new List <Qualification>(), WorkExperience = modelBase.HasWorkExperience ? ApplicationConverter.GetWorkExperiences(modelBase.WorkExperience) : new List <WorkExperience>(), }); }
public BlockType(BlockService blockService, FieldTemplateService fieldTemplateService, NamedServiceFactory <IBlockDataBuilder> blockDataBuilderFactory, RouteInfoService routeInfoService) { Name = "Block"; Description = "Block data"; Field(p => p.SystemId, type: typeof(IdGraphType)).Description("The block Id"); Field <StringGraphType>(nameof(BlockModel.BlockType), "The block type", resolve: context => { var block = blockService.Get(context.Source.SystemId); var template = fieldTemplateService.Get <BlockFieldTemplate>(block.FieldTemplateSystemId); return(template.Id); }); FieldAsync <StringGraphType>(nameof(BlockModel.ValueAsJSON), "Value as JSON string", arguments: new QueryArguments( new QueryArgument <GlobalInputType> { Name = "global", Description = "The global object" } ), resolve: async context => { var block = blockService.Get(context.Source.SystemId); var template = fieldTemplateService.Get <BlockFieldTemplate>(block.FieldTemplateSystemId); // Special treatment for scoped services https://graphql-dotnet.github.io/docs/getting-started/dependency-injection/#scoped-services-with-a-singleton-schema-lifetime // and make sure it is thread safe https://graphql-dotnet.github.io/docs/getting-started/dependency-injection/#thread-safety-with-scoped-services using var scope = context.RequestServices.CreateScope(); var builder = scope.ServiceProvider.GetNamedService <IBlockDataBuilder>(template.Id); if (builder == null) { return(null); } var globalModel = context.GetArgument <GlobalModel>("global"); routeInfoService.Setup(globalModel, context.Source.PageSystemId); var buildMethod = builder.GetType().GetMethod(nameof(IBlockDataBuilder <IViewModel> .BuildAsync)); var value = await(dynamic) buildMethod.Invoke(builder, new object[] { scope, new Web.Models.Blocks.BlockModel(block, block.Fields) }); var jsonSerializerSettings = ApplicationConverter.JsonSerializerSettings(); // jsonSerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; return(JsonConvert.SerializeObject(value, jsonSerializerSettings)); }); }
public ApprenticeshipApplicationViewModel Convert(ResolutionContext context) { var application = (ApprenticeshipApplicationDetail)context.SourceValue; var model = new ApprenticeshipApplicationViewModel { Candidate = new ApprenticeshipCandidateViewModel().Resolve(application), DateUpdated = application.DateUpdated, VacancyId = application.Vacancy.Id, Status = application.Status }; model.Candidate.AboutYou = ApplicationConverter.GetAboutYouViewModel(application.CandidateInformation.AboutYou); model.Candidate.Education = ApplicationConverter.GetEducationViewModel(application.CandidateInformation.EducationHistory); return(model); }
private static ApplicationTemplate GetCandidateInformation(TraineeshipCandidateViewModel modelBase) { return new ApplicationTemplate { AboutYou = ApplicationConverter.GetAboutYou(modelBase.AboutYou, modelBase.MonitoringInformation), Qualifications = modelBase.HasQualifications ? ApplicationConverter.GetQualifications(modelBase.Qualifications) : new List<Qualification>(), WorkExperience = modelBase.HasWorkExperience ? ApplicationConverter.GetWorkExperiences(modelBase.WorkExperience) : new List<WorkExperience>(), TrainingCourses = modelBase.HasTrainingCourses ? ApplicationConverter.GetTrainingCourses(modelBase.TrainingCourses) : new List<TrainingCourse>(), DisabilityStatus = ApplicationConverter.GetDisabilityStatus(modelBase.MonitoringInformation.DisabilityStatus) }; }
public TraineeshipApplicationViewModel Convert(ResolutionContext context) { var application = (TraineeshipApplicationDetail)context.SourceValue; var model = new TraineeshipApplicationViewModel { Candidate = new TraineeshipCandidateViewModel().Resolve(application), DateUpdated = application.DateUpdated, VacancyId = application.Vacancy.Id, }; if (application.DateApplied.HasValue) { model.DateApplied = application.DateApplied.Value; } model.Candidate.AboutYou = ApplicationConverter.GetAboutYouViewModel(application.CandidateInformation.AboutYou); model.Candidate.MonitoringInformation = ApplicationConverter.GetMonitoringInformationViewModel(application.CandidateInformation.AboutYou, application.CandidateInformation.DisabilityStatus); return(model); }
public ApplicationService(IDataFacade facade) { _facade = facade; _applicationConv = new ApplicationConverter(); _userConv = new UserConverter(); }
public PageType(PageService pageService, BlockService blockService, UrlService urlService, FieldTemplateService fieldTemplateService, RouteInfoService routeInfoService) { Name = "Page"; Description = "Page data"; Field(p => p.SystemId, type: typeof(IdGraphType)).Description("The System Id"); Field(p => p.Slug, nullable: true).Description("The slug") .Argument <GlobalInputType>("global") .Resolve(context => { var globalModel = context.GetArgument <GlobalModel>("global"); var page = pageService.Get(context.Source.SystemId); return(urlService.GetUrl(page, new PageUrlArgs(globalModel.ChannelSystemId))); }); Field <ListGraphType <BlockAreaType> >(nameof(PageModel.Areas), "Block areas", resolve: context => { var page = pageService.Get(context.Source.SystemId); return(page.Blocks.Items.Select(container => new BlockAreaModel() { Id = container.Id, Blocks = blockService.Get(container.Items.Select(block => ((BlockItemLink)block).BlockSystemId)) .MapEnumerableTo <BlockModel>() .Select(b => { b.PageSystemId = context.Source.SystemId; return b; }).ToList() }).ToList()); }); Field <StringGraphType>(nameof(PageModel.TemplateId), "Template id", resolve: context => { var page = pageService.Get(context.Source.SystemId); var template = fieldTemplateService.Get <PageFieldTemplate>(page.FieldTemplateSystemId); return(template.Id); }); Field <StringGraphType>(nameof(PageModel.Name), "The page name", arguments: new QueryArguments( new QueryArgument <GlobalInputType> { Name = "global", Description = "The global object" } ), resolve: context => { var page = pageService.Get(context.Source.SystemId); var globalModel = context.GetArgument <GlobalModel>("global"); return(page.GetEntityName(true, CultureInfo.GetCultureInfo(globalModel.CurrentCulture)) ?? page.Id ?? "general.NameIsMissing".AsAngularResourceString()); }); Field <PageInfoPageType>(nameof(PageModel.Children), description: "Sub pages", arguments: new QueryArguments( new QueryArgument <IntGraphType> { Name = "offset" }, new QueryArgument <IntGraphType> { Name = "take" } ), resolve: context => new PageInfoModel <Page, PageModel>(pageService.GetChildPages(context.Source.SystemId), context.GetArgument("offset", 0), context.GetArgument("take", 10))); FieldAsync <StringGraphType>(nameof(PageModel.ValueAsJSON), "Value as JSON string", arguments: new QueryArguments( new QueryArgument <GlobalInputType> { Name = "global", Description = "The global object" } ), resolve: async context => { var page = pageService.Get(context.Source.SystemId); var template = fieldTemplateService.Get <PageFieldTemplate>(page.FieldTemplateSystemId); // Special treatment for scoped services https://graphql-dotnet.github.io/docs/getting-started/dependency-injection/#scoped-services-with-a-singleton-schema-lifetime // and make sure it is thread safe https://graphql-dotnet.github.io/docs/getting-started/dependency-injection/#thread-safety-with-scoped-services using var scope = context.RequestServices.CreateScope(); var builder = scope.ServiceProvider.GetNamedService <IPageDataBuilder>(template.Id); if (builder == null) { return(null); } var globalModel = context.GetArgument <GlobalModel>("global"); routeInfoService.Setup(globalModel, context.Source.SystemId); var buildMethod = builder.GetType().GetMethod(nameof(IPageDataBuilder <IViewModel> .BuildAsync)); var value = await(dynamic) buildMethod.Invoke(builder, new object[] { scope, new Web.Models.Websites.PageModel(page, page.Fields) }); // ((IDictionary<string, object>)value).Remove("blocks"); var jsonSerializerSettings = ApplicationConverter.JsonSerializerSettings(); return(JsonConvert.SerializeObject(value, jsonSerializerSettings)); }); }