private AutoDispatchResourceHandlerTemplateData(CodeGenerationContext context, CodeGenerationParameter autoDispatchParameter) { _restResourceName = ClassFormatter.SimpleNameOf(autoDispatchParameter.value); var queryStoreProviderParameters = TemplateParameters.With(TemplateParameter.StorageType, StorageType.StateStore).And(TemplateParameter.Model, ModelType.Query); var queryStoreProviderName = new TemplateStandard(TemplateStandardType.StoreProvider).ResolveClassname(queryStoreProviderParameters); var aggregateProtocolClassName = ClassFormatter.SimpleNameOf(autoDispatchParameter.RetrieveRelatedValue(Label.ModelProtocol)); _parameters = TemplateParameters.With(TemplateParameter.PackageName, ClassFormatter.PackageOf(autoDispatchParameter.value)) .And(TemplateParameter.StateName, new TemplateStandard(TemplateStandardType.AggregateState).ResolveClassname(aggregateProtocolClassName)) .And(TemplateParameter.Queries, QueriesParameter.From(autoDispatchParameter)) .And(TemplateParameter.RestResourceName, Standard().ResolveClassname(_restResourceName)) .And(TemplateParameter.UriRoot, autoDispatchParameter.RetrieveRelatedValue(Label.UriRoot)) .And(TemplateParameter.RouteDeclarations, RouteDeclarationParameter.From(autoDispatchParameter)) .And(TemplateParameter.ModelProtocol, autoDispatchParameter.RetrieveRelatedValue(Label.ModelProtocol)) .And(TemplateParameter.ModelActor, autoDispatchParameter.RetrieveRelatedValue(Label.ModelActor)) .And(TemplateParameter.HandlersConfigName, autoDispatchParameter.RetrieveRelatedValue(Label.HandlersConfigName)) .And(TemplateParameter.StoreProviderName, queryStoreProviderName).And(TemplateParameter.RouteMethod, new List <string>()) .And(TemplateParameter.AutoDispatchMappingName, _restResourceName).And(TemplateParameter.UseAutoDispatch, true) .And(TemplateParameter.DataObjectName, new TemplateStandard(TemplateStandardType.DataObject).ResolveClassname(aggregateProtocolClassName)) .And(TemplateParameter.UseCqrs, context.ParameterOf <bool>(Label.Cqrs, x => bool.TrueString.ToLower() == x)) .AddImports(ResolveImports(context, autoDispatchParameter, queryStoreProviderName)); DependOn(RouteMethodTemplateData.From(autoDispatchParameter, _parameters)); }
private string Resolve(Label invocationLabel, Label customParamsLabel, string defaultParameter, CodeGenerationParameter parentParameter, CodeGenerationParameter routeSignatureParameter) { if (!routeSignatureParameter.HasAny(customParamsLabel)) { return(string.Empty); } var handlersConfigQualifiedName = parentParameter.RetrieveRelatedValue(Label.HandlersConfigName); var handlersConfigClassName = ClassFormatter.SimpleNameOf(handlersConfigQualifiedName); var invocation = routeSignatureParameter.RetrieveRelatedValue(invocationLabel); if (routeSignatureParameter.RetrieveRelatedValue(customParamsLabel, x => bool.TrueString.ToLower() == x)) { return(string.Format(_handlerInvocationPattern, handlersConfigClassName, invocation)); } return(string.Format(_handlerInvocationWithDefaultParamsPattern, handlersConfigClassName, invocation, defaultParameter)); }
private QueriesParameter(string protocolQualifiedName, string actorQualifiedName) : this(ClassFormatter.PackageOf(protocolQualifiedName), ClassFormatter.SimpleNameOf(protocolQualifiedName), ClassFormatter.PackageOf(actorQualifiedName), ClassFormatter.SimpleNameOf(actorQualifiedName)) { }