public FilterViewModel Create(string additionalCssClass) { string url = string.Format("/{0}", this.RequestHandler.HttpContext.GetRouteValue("url")); Catalog catalog = this.RequestHandler.Storage.GetRepository <ICatalogRepository>().WithUrl(url); IProductProvider productProvider = StringActivator.CreateInstance <IProductProvider>(catalog.CSharpClassName); IEnumerable <SerializedAttribute> serializedAttributes = null; if (productProvider != null) { serializedAttributes = productProvider.GetAttributes(this.RequestHandler, catalog); } List <FeatureViewModel> features = new List <FeatureViewModel>(); foreach (SerializedAttribute serializedAttribute in serializedAttributes) { SerializedAttribute.Feature serializedFeature = JsonConvert.DeserializeObject <SerializedAttribute.Feature>(serializedAttribute.SerializedFeature); FeatureViewModel feature = features.FirstOrDefault(f => f.Code == serializedFeature.Code); if (feature == null) { feature = new FeatureViewModelFactory(this.RequestHandler).Create(serializedFeature); feature.Attributes = new List <AttributeViewModel>(); features.Add(feature); } (feature.Attributes as List <AttributeViewModel>).Add(new AttributeViewModelFactory(this.RequestHandler).Create(serializedAttribute)); } return(new FilterViewModel() { Features = features, AdditionalCssClass = additionalCssClass }); }
protected override dynamic GetData() { string url = string.Format("/{0}", this.requestHandler.HttpContext.GetRouteValue("url")); Catalog catalog = this.requestHandler.Storage.GetRepository <ICatalogRepository>().WithUrl(url); if (catalog == null) { throw new HttpException(404, "Not found."); } ExpandoObjectBuilder expandoObjectBuilder = new ExpandoObjectBuilder(); expandoObjectBuilder.AddProperty("Name", this.requestHandler.GetLocalizationValue(catalog.NameId)); IProductProvider productProvider = StringActivator.CreateInstance <IProductProvider>(catalog.CSharpClassName); if (productProvider != null) { expandoObjectBuilder.AddProperty( "Products", productProvider.GetProducts(this.requestHandler, catalog).Select(p => this.CreateProductViewModel(p)).ToList() ); } return(expandoObjectBuilder.Build()); }
private async Task <IEnumerable <ProductViewModel> > GetProductsAsync(HttpContext httpContext, Category category) { IProductProvider productProvider = StringActivator.CreateInstance <IProductProvider>(category.ProductProviderCSharpClassName); return((await productProvider.GetProductsAsync(httpContext, category)).Select( p => new ProductViewModelFactory().Create(p) )); }
private IEnumerable <dynamic> CreateDataSourceViewModel(IRequestHandler requestHandler, SerializedObject serializedPage, DataSource dataSource) { IDataSource dataSourceInstance = StringActivator.CreateInstance <IDataSource>(dataSource.CSharpClassName); return(dataSourceInstance.GetSerializedObjects(requestHandler, serializedPage, this.GetParameters(dataSource.Parameters)).Select( so => this.CreateObjectViewModel(requestHandler, so) )); }
private dynamic CreateDataSourceViewModel(IRequestHandler requestHandler, DataSource dataSource) { IDataSource dataSourceInstance = StringActivator.CreateInstance <IDataSource>(dataSource.CSharpClassName); if (dataSourceInstance is ISingleObjectDataSource) { return((dataSourceInstance as ISingleObjectDataSource).GetSerializedObject( requestHandler, this.GetParameters(dataSource.Parameters) )); } if (dataSourceInstance is IMultipleObjectsDataSource) { return((dataSourceInstance as IMultipleObjectsDataSource).GetSerializedObjects( requestHandler, this.GetParameters(dataSource.Parameters) )); } return(null); }
public IActionResult Send() { Form form = this.Storage.GetRepository <IFormRepository>().WithKey(int.Parse(this.Request.Form["formId"])); IDictionary <Field, string> valuesByFields = this.GetValuesByFields(form); IDictionary <string, byte[]> attachmentsByFilenames = this.GetAttachmentsByFilenames(form); if (form.ProduceCompletedForms) { this.ProduceCompletedForms(form, valuesByFields, attachmentsByFilenames); } IFormHandler formHandler = StringActivator.CreateInstance <IFormHandler>(form.CSharpClassName); if (formHandler != null) { return(formHandler.Handle(this, form, valuesByFields, attachmentsByFilenames)); } return(this.NotFound()); }
public async Task <IActionResult> SendAsync(int formId, string origin) { Form form = await this.Storage.GetRepository <int, Form, FormFilter>().GetByIdAsync( formId, new Inclusion <Form>(f => f.Name.Localizations), new Inclusion <Form>("Fields.FieldType"), new Inclusion <Form>("Fields.Name.Localizations") ); IDictionary <Field, string> valuesByFields = this.GetValuesByFields(form); foreach (Field field in valuesByFields.Keys) { if (!string.IsNullOrEmpty(field.FieldType.ValidatorCSharpClassName)) { if (!await this.CreateFieldValidator(field.FieldType).ValidateAsync(this.HttpContext, form, field, valuesByFields[field])) { return(this.BadRequest()); } } } IDictionary <string, byte[]> attachmentsByFilenames = this.GetAttachmentsByFilenames(form); if (form.ProduceCompletedForms) { await this.ProduceCompletedForms(form, valuesByFields, attachmentsByFilenames); } IFormHandler formHandler = StringActivator.CreateInstance <IFormHandler>(form.FormHandlerCSharpClassName); if (formHandler != null) { return(await formHandler.HandleAsync(this.HttpContext, origin, form, valuesByFields, attachmentsByFilenames)); } return(this.NotFound()); }
private dynamic CreateDataSourceViewModel(DataSource dataSource) { IDataSource dataSourceInstance = StringActivator.CreateInstance <IDataSource>(dataSource.CSharpClassName); return(dataSourceInstance.GetData(this.requestHandler, dataSource)); }
private IEndpoint GetEndpointInstance(Endpoint endpoint) { return(StringActivator.CreateInstance <IEndpoint>(endpoint.CSharpClassName)); }
private IMicrocontroller GetMicrocontrollerInstance(Microcontroller microcontroller) { return(StringActivator.CreateInstance <IMicrocontroller>(microcontroller.CSharpClassName)); }
private IDataProvider GetDataProvider(DataSource dataSource) { return(StringActivator.CreateInstance <IDataProvider>(dataSource.DataProviderCSharpClassName)); }
private IResponseCache CreateResponseCache(Data.Entities.Endpoint endpoint) { return(StringActivator.CreateInstance <IResponseCache>(endpoint.ResponseCacheCSharpClassName)); }
private IRequestProcessor CreateRequestProcessor(Data.Entities.Endpoint endpoint) { return(StringActivator.CreateInstance <IRequestProcessor>(endpoint.RequestProcessorCSharpClassName)); }
private IFieldValidator CreateFieldValidator(FieldType fieldType) { return(StringActivator.CreateInstance <IFieldValidator>(fieldType.ValidatorCSharpClassName)); }