/// <summary> /// Initialize /// </summary> private static void Initialize() { var configuration = (TranslatorProviderConfiguration)ConfigurationManager.GetSection("translatorProvider"); if (configuration == null) { throw new ConfigurationErrorsException ("SampleProvider configuration section is not set correctly."); } _providers = new TranslatorProviderCollection(); ProvidersHelper.InstantiateProviders(configuration.Providers, _providers, typeof(TranslatorProvider)); _providers.SetReadOnly(); foreach (TranslatorProvider p in _providers) { p.CacheFilePath = configuration.CacheFilePath; } _defaultProvider = _providers[configuration.Default]; if (_defaultProvider == null) { throw new Exception("defaultProvider"); } }
static XpandSystemModule() { ParametersFactory.RegisterParameter(new MonthAgoParameter()); TranslatorProvider.RegisterProvider(new GoogleTranslatorProvider()); if (!InterfaceBuilder.RuntimeMode) { new XpandXpoTypeInfoSource((TypesInfo)XafTypesInfo.Instance).AssignAsPersistentEntityStore(); } }
private static JavaScriptTranslator CreateTranslator(object[] translators) { var translatorProvider = new TranslatorProvider(); translatorProvider.MethodCallTranslators.Add(new RegexTranslator()); translatorProvider.MethodCallTranslators.Add(new DryvResultTranslator()); translatorProvider.MethodCallTranslators.Add(new StringTranslator()); translatorProvider.MethodCallTranslators.Add(new EnumerableTranslator()); translatorProvider.GenericTranslators.Add(new RegexTranslator()); translatorProvider.GenericTranslators.Add(new DryvResultTranslator()); translatorProvider.GenericTranslators.Add(new ObjectTranslator()); if (translators != null) { translatorProvider.MethodCallTranslators.AddRange(translators.OfType <IMethodCallTranslator>()); translatorProvider.GenericTranslators.AddRange(translators.OfType <ICustomTranslator>()); } return(new JavaScriptTranslator(translatorProvider)); }
/// <summary> /// Initialize /// </summary> private static void Initialize() { var configuration = (TranslatorProviderConfiguration)ConfigurationManager.GetSection("translatorProvider"); if (configuration == null) throw new ConfigurationErrorsException ("SampleProvider configuration section is not set correctly."); _providers = new TranslatorProviderCollection(); ProvidersHelper.InstantiateProviders(configuration.Providers, _providers, typeof (TranslatorProvider)); _providers.SetReadOnly(); foreach (TranslatorProvider p in _providers) { p.CacheFilePath = configuration.CacheFilePath; } _defaultProvider = _providers[configuration.Default]; if (_defaultProvider == null) throw new Exception("defaultProvider"); }
/// <summary> /// Creates a new instance of the class. /// </summary> public TranslationContext() { _namespaces = new List<string>(); _provider = new TranslatorProvider(null); }
public async Task <IHttpActionResult> Post(CancellationToken ct) { /** * - TenantFinder: HttpRequest x HttpRequestContext -> Tenant * - CommandParser: Tenant -> HttpRequest -> ParsedCommand x CommandType x Version * - Translator: Tenant -> ParsedCommand x CommandType x Version -> CommandEnvelope * - Sender: Tenant -> CommandEnvelope -> HttpResult */ // Get tenantId for current request var tenantId = await TenantFinder.FindTenantAsync(Request, RequestContext, ct); if (tenantId == null) { return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.Forbidden, "Unknown Tenant".ToModelStateErrors()))); } //var multi = await Request.Content.ReadAsMultipartAsync(); // Parse incomming request as a command schema var parser = await ParserProvider.GetParserAsync(tenantId, ct); if (parser == null) { return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, "Can not parse request".ToModelStateErrors()))); } var parsedCommandResult = await parser.ParseAsync(Request, RequestContext, ct); if (!parsedCommandResult.Success) { return(BadRequest(parsedCommandResult.Errors.ToModelStateErrors())); } // Validate parsed command var translator = await TranslatorProvider.GetTranslatorAsync(tenantId, ct); if (translator == null) { return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, "Can not recognize command".ToModelStateErrors()))); } var translation = await translator.TranslateAsync(parsedCommandResult, ct); if (translation.Success) { // Now send command through the ICommandSender var sender = await CommandSenderProvider.GetSenderAsync(tenantId, ct); if (sender == null) { return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, "Can not start processing command".ToModelStateErrors()))); } var sendResult = await sender.SendCommandAsync(translation.CommandEnvelope, ct); if (sendResult.Success) { switch (sendResult.Type) { case SendCommandResultType.Completed: return(Ok()); case SendCommandResultType.Accepted: return(StatusCode(HttpStatusCode.Accepted)); default: return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, "Invalid response processing command".ToModelStateErrors()))); } } else { switch (sendResult.Type) { case SendCommandResultType.ValidationFailed: return(BadRequest(sendResult.Errors.ToModelStateErrors())); case SendCommandResultType.BusinessPreconditionFailed: return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.Forbidden, sendResult.Errors.ToModelStateErrors()))); case SendCommandResultType.ProcessingError: return(InternalServerError(sendResult.Exception)); case SendCommandResultType.BusinessPostconditionFailed: return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.Forbidden, sendResult.Errors.ToModelStateErrors()))); case SendCommandResultType.PersistenceFailed: return(InternalServerError(sendResult.Exception)); default: return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, "Invalid response processing command".ToModelStateErrors()))); } } } else { switch (translation.Type) { case TranslationResultType.BadRequest: return(BadRequest(translation.ModelState.ToModelStateErrors())); case TranslationResultType.NotFound: return(NotFound()); case TranslationResultType.Obsolete: return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.Gone, translation.ModelState.ToModelStateErrors()))); default: return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, "Invalid response translating command".ToModelStateErrors()))); } } }
static XpandSystemModule() { ParametersFactory.RegisterParameter(new MonthAgoParameter()); TranslatorProvider.RegisterProvider(new GoogleTranslatorProvider()); }