Exemple #1
0
        private void Save(System.Web.HttpContextBase context)
        {
            var requestBody = context.GetOrDeserializeRequestStreamJson <object>();
            var user        = GetUser(context.User);

            if (requestBody.ContainsKey("Settings") && requestBody["Settings"] is IDictionary <string, object> )
            {
                user.Settings = (IDictionary <string, object>)requestBody["Settings"];
            }
            repository.Save(user);
            context.Response.WriteJson(new { User = user });
        }
Exemple #2
0
        private static object GetParameterValue(System.Web.HttpContextBase context, System.Reflection.ParameterInfo pi)
        {
            if (pi.Name == "body")
            {
                return(context.GetOrDeserializeRequestStreamJson(pi.ParameterType));
            }
            if (pi.Name == "context")
            {
                return(context);
            }
            var queryValue = context.Request[pi.Name];

            if (string.IsNullOrEmpty(queryValue))
            {
                return(null);
            }
            return(Utility.Convert(queryValue, pi.ParameterType));
        }
Exemple #3
0
        private void Create(HttpContextBase context)
        {
            var parent = Selection.ParseSelectionFromRequest();
            if (parent == null)
                throw new HttpException((int)HttpStatusCode.NotFound, "Not Found");

            var discriminator = context.Request["discriminator"];
            var definition = engine.Definitions.GetDefinition(discriminator);
            
            var item = engine.Resolve<ContentActivator>().CreateInstance(definition.ItemType, parent);

            var requestBody = context.GetOrDeserializeRequestStreamJson<object>();
            foreach (var kvp in requestBody)
                item[kvp.Key] = kvp.Value;

            engine.Persister.Save(item);
        }
Exemple #4
0
        private void Update(HttpContextBase context)
        {
            var item = Selection.ParseSelectionFromRequest();
            if (item == null)
                throw new HttpException((int)HttpStatusCode.NotFound, "Not Found");

            var requestBody = context.GetOrDeserializeRequestStreamJson<object>();
            foreach (var kvp in requestBody)
                item[kvp.Key] = kvp.Value;

            engine.Persister.Save(item);
        }
		private void Patch(HttpContextBase context)
		{
			var requestBody = context.GetOrDeserializeRequestStreamJson<object>();
			var user = GetUser(context.User);
			if (requestBody.ContainsKey("Settings") && requestBody["Settings"] is IDictionary<string, object>)
				foreach (var kvp in (IDictionary<string, object>)requestBody["Settings"])
				{
					if (kvp.Value != null)
						user.Settings[kvp.Key] = kvp.Value;
					else
						user.Settings.Remove(kvp.Key);
				}
			repository.Save(user);
			context.Response.WriteJson(new { User = user });
		}