public static void GetParameters(IBeetleConfig config, out IList <BeetleParameter> parameters) { if (config == null) { config = BeetleConfig.Instance; } var request = HttpContext.Current.Request; var queryParams = request.QueryString.ToDictionary(); if (request.ContentLength > 0) { request.InputStream.Position = 0; var body = new StreamReader(request.InputStream).ReadToEnd(); var d = config.Serializer.Deserialize <Dictionary <string, dynamic> >(body); if (d != null) { foreach (var i in d) { var v = i.Value; queryParams.Add(i.Key, v == null ? string.Empty : v.ToString()); } } } parameters = Server.Helper.GetBeetleParameters(queryParams); }
public static void GetParameters(IBeetleConfig config, out IList <BeetleParameter> parameters, out dynamic postData) { if (config == null) { config = BeetleConfig.Instance; } var request = HttpContext.Current.Request; var queryParams = request.QueryString.ToDictionary(); postData = null; if (request.ContentLength > 0) { request.InputStream.Position = 0; var body = new StreamReader(request.InputStream).ReadToEnd(); postData = config.Serializer.DeserializeToDynamic(body); if (postData != null) { foreach (var p in TypeDescriptor.GetProperties(postData)) { var v = postData[p.Name]; queryParams.Add(p.Name, v == null ? string.Empty : v.ToString()); } } } parameters = Server.Helper.GetBeetleParameters(queryParams); }
public static void GetParameters(IBeetleConfig config, HttpRequest request, out IList <BeetleParameter> parameters) { if (config == null) { config = BeetleConfig.Instance; } var queryParams = request.Query.ToDictionary(k => k.Key, k => k.Value.ToString()); if (queryParams.ContainsKey("!beetle-use-body") && request.ContentLength > 0) { if (request.Body.CanSeek) { request.Body.Position = 0; } var body = new StreamReader(request.Body).ReadToEnd(); var d = config.Serializer.Deserialize <Dictionary <string, dynamic> >(body); if (d != null) { foreach (var i in d) { var v = i.Value; queryParams[i.Key] = v == null ? string.Empty : v.ToString(); } } } parameters = Server.Helper.GetBeetleParameters(queryParams); }
internal static IContentHandler <IEnumerable> GetEnumerableHandler(IBeetleConfig actionConfig, IBeetleService service) { var config = actionConfig ?? service?.Config; return(config?.EnumerableHandler ?? service?.ContextHandler?.EnumerableHandler ?? EnumerableHandler.Instance); }
internal static IQueryHandler <IQueryable> GetQueryHandler(IBeetleConfig actionConfig, IBeetleService service) { var config = actionConfig ?? service?.Config; return(config?.QueryableHandler ?? service?.ContextHandler?.QueryableHandler ?? QueryableHandler.Instance); }
public ActionContext(string name, object value, IEnumerable <BeetleParameter> parameters, int?maxResultCount, IBeetleConfig config, IBeetleService service) { Name = name; Value = value; Parameters = parameters; MaxResultCount = maxResultCount; Config = config; Service = service; }
public static object CreateType(string typeName, string initialValues, IBeetleConfig config) { var type = Type.GetType(typeName); if (type == null) { throw new ArgumentException(string.Format(Resources.TypeCouldNotBeFound, typeName)); } var obj = Activator.CreateInstance(type); CopyValuesFromJson(initialValues, obj, config); return(obj); }
public static void CopyValuesFromJson(string source, object destination, IBeetleConfig config) { if (string.IsNullOrEmpty(source)) { return; } var obj = config.Serializer.DeserializeToDynamic(source); var type = destination.GetType(); foreach (var p in obj.Properties()) { var propType = GetMemberType(type, p.Name); var value = obj[p.Name]; SetMemberValue(destination, p.Name, config.Serializer.ConvertFromDynamic(value, propType)); } }
public static IList <EntityBag> ResolveEntities(dynamic bundle, IBeetleConfig config, Metadata metadata, out IList <EntityBag> unknownEntities) { if (config == null) { config = BeetleConfig.Instance; } var dynEntities = (IEnumerable)bundle.entities; var entities = new List <EntityBag>(); var unknowns = new List <EntityBag>(); bool forceUpdatePackage = bundle.forceUpdate ?? false; foreach (dynamic dynEntity in dynEntities) { // get entity tracking information var tracker = dynEntity["$t"]; if (tracker == null) { throw new InvalidOperationException(Resources.CannotFindTrackerInfo); } // get entity type and other information string typeName = tracker.t.ToString(); var type = Type.GetType(typeName); var state = Enum.Parse(typeof(EntityState), tracker.s.ToString()); var originalValues = new Dictionary <string, object>(); // entity's index in the client save array var index = int.Parse(tracker.i.ToString()); // read original values var ovs = tracker.o != null ? tracker.o as IEnumerable : null; if (ovs != null) { foreach (dynamic ov in ovs) { string name = ov.Name.ToString(); var loopType = name.Split('.').Aggregate(type, GetMemberType); if (loopType == null) { throw new BeetleException(string.Format(Resources.OriginalValuePropertyCouldNotBeFound, ov.Name)); } var value = config.Serializer.ConvertFromDynamic(ov.Value, loopType); originalValues.Add(name, value); } } // deserialize entity var forceUpdate = forceUpdatePackage || (bool)(tracker.f ?? false); if (type != null) { var clientEntity = config.Serializer.ConvertFromDynamic(dynEntity, type); var entity = config.Serializer.ConvertFromDynamic(dynEntity, type); EntityType entityType = null; if (metadata != null) { entityType = metadata.Entities.FirstOrDefault(e => e.Name == typeName); } entities.Add( new EntityBag(clientEntity, entity, state, originalValues, index, entityType, forceUpdate) ); } else { unknowns.Add(new EntityBag(dynEntity, dynEntity, state, originalValues, index, forceUpdate)); } } unknownEntities = unknowns; return(entities); }
protected BeetleController(IBeetleConfig config) { #endif Config = config ?? new BeetleConfig(); }
protected BeetleController(TContextHandler contextHandler, IBeetleConfig config) : base(config) { #endif ContextHandler = contextHandler ?? throw new ArgumentNullException(nameof(contextHandler)); }
protected BeetleControllerBase(TContextHandler contextHandler, IBeetleConfig config) : base(config) {
protected BeetleController(IBeetleConfig config) : this(null, config) { }
public BeetleJsonResult(IBeetleConfig config, ProcessResult processResult) { _config = config; ProcessResult = processResult; }
protected BeetleControllerBase(IBeetleConfig config) {
public BeetleActionFilterAttribute(IBeetleConfig config) => Config = config;
public BeetleMediaTypeFormatter(IBeetleConfig config) { _config = config; SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(config.Serializer.ContentType)); }