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);
コード例 #11
0
 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);