public TypedViewMetaDetailsResponse GetTypedViewMetaDetails(ServiceStack.ServiceInterface.Service service) { // The entity meta details don't change per type, so cache these for performance var cacheKey = string.Format("{0}-typedview-meta-details", TypedViewType.ToString().ToLower()); var metaDetails = CacheClient.Get <TypedViewMetaDetailsResponse>(cacheKey); if (metaDetails != null) { return(metaDetails); } var request = service.RequestContext.Get <IHttpRequest>(); var appUri = request.GetApplicationUrl().TrimEnd('/'); var baseServiceUri = appUri + request.PathInfo.Replace("/meta", ""); var queryString = request.QueryString["format"] != null ? "&format=" + request.QueryString["format"] : ""; var fields = new List <Link>(); foreach (var f in FieldMap) { var link = Link.Create( f.Key.ToCamelCase(), f.Value.DataType.Name, "field", string.Format("{0}?select={1}{2}", baseServiceUri, f.Key.ToLowerInvariant(), queryString), string.Format("The {0} field for the {1} resource.", f.Value.Name, typeof(TDto).Name), new Dictionary <string, string>() ); var props = new SortedDictionary <string, string>(); props.Add("index", f.Value.FieldIndex.ToString(CultureInfo.InvariantCulture)); if (f.Value.IsNullable) { props.Add("isNullable", "true"); } if (f.Value.IsOfEnumDataType) { props.Add("isEnumType", "true"); } if (f.Value.MaxLength > 0) { props.Add("maxLength", f.Value.MaxLength.ToString(CultureInfo.InvariantCulture)); } if (f.Value.Precision > 0) { props.Add("precision", f.Value.Precision.ToString(CultureInfo.InvariantCulture)); } if (f.Value.Scale > 0) { props.Add("scale", f.Value.Scale.ToString(CultureInfo.InvariantCulture)); } link.Properties = new Dictionary <string, string>(props); fields.Add(link); } metaDetails = new TypedViewMetaDetailsResponse() { Name = typeof(TDto).Name, FieldCount = fields.Count, Fields = fields.ToArray() }; CacheClient.Set(cacheKey, metaDetails); return(metaDetails); }
partial void OnAfterGetInvoicesMetaRequest(InvoicesMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetOrdersQryMetaRequest(OrdersQryMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetSalesTotalsByAmountMetaRequest(SalesTotalsByAmountMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetSalesByCategoryMetaRequest(SalesByCategoryMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetProductsByCategoryMetaRequest(ProductsByCategoryMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetCurrentProductListMetaRequest(CurrentProductListMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetSummaryOfSalesByYearMetaRequest(SummaryOfSalesByYearMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetProductsAboveAveragePriceMetaRequest(ProductsAboveAveragePriceMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetCustomerAndSuppliersByCityMetaRequest(CustomerAndSuppliersByCityMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetCategorySalesFor1997MetaRequest(CategorySalesFor1997MetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetQuarterlyOrderMetaRequest(QuarterlyOrderMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetOrderDetailsExtendedMetaRequest(OrderDetailsExtendedMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetAlphabeticalListOfProductsMetaRequest(AlphabeticalListOfProductsMetaRequest request, TypedViewMetaDetailsResponse response);
partial void OnAfterGetProductSalesFor1997MetaRequest(ProductSalesFor1997MetaRequest request, TypedViewMetaDetailsResponse response);