本文整理汇总了C#中System.Web.HttpContextBase.GetOrDeserializeRequestStreamJsonDictionary方法的典型用法代码示例。如果您正苦于以下问题:C# HttpContextBase.GetOrDeserializeRequestStreamJsonDictionary方法的具体用法?C# HttpContextBase.GetOrDeserializeRequestStreamJsonDictionary怎么用?C# HttpContextBase.GetOrDeserializeRequestStreamJsonDictionary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.HttpContextBase
的用法示例。
在下文中一共展示了HttpContextBase.GetOrDeserializeRequestStreamJsonDictionary方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create
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.GetOrDeserializeRequestStreamJsonDictionary<object>();
foreach (var kvp in requestBody)
item[kvp.Key] = kvp.Value;
engine.Persister.Save(item);
}
示例2: Update
private void Update(HttpContextBase context)
{
var item = Selection.ParseSelectionFromRequest();
if (item == null)
throw new HttpException((int)HttpStatusCode.NotFound, "Not Found");
var requestBody = context.GetOrDeserializeRequestStreamJsonDictionary<object>();
foreach (var kvp in requestBody)
item[kvp.Key] = kvp.Value;
engine.Persister.Save(item);
}
示例3: Autosave
private void Autosave(HttpContextBase context)
{
var selected = Selection.ParseSelectionFromRequest();
if (selected == null)
throw new HttpException((int)HttpStatusCode.NotFound, "Not Found");
var requestBody = context.GetOrDeserializeRequestStreamJsonDictionary<object>();
var discriminator = EditExtensions.GetDiscriminator(context.Request);
var versions = engine.Resolve<VersionManager>();
ContentItem item;
if (string.IsNullOrEmpty(discriminator))
{
item = selected;
if (item.State != ContentState.Draft)
item = versions.GetOrCreateDraft(item);
Update(requestBody, item);
if (item.ID == 0 && item.VersionOf.HasValue)
versions.UpdateVersion(item);
else
engine.Persister.Save(item);
}
else
{
int id;
if (requestBody.ContainsKey("ID") && (id = (int)requestBody["ID"]) != 0)
{
item = engine.Persister.Get(id);
}
else
{
item = engine.Resolve<IDefinitionManager>().GetDefinition(discriminator).CreateInstance(selected);
item.State = ContentState.Draft;
}
Update(requestBody, item);
if (item.ID == 0 && (item.VersionOf.HasValue || !item.IsPage))
versions.UpdateVersion(item);
else
engine.Persister.Save(item);
}
context.Response.WriteJson(new
{
ID = item.VersionOf.ID ?? item.ID,
VersionIndex = item.VersionIndex,
Path = item.Path,
PreviewUrl = item.Url,
Permission = engine.ResolveAdapter<NodeAdapter>(item).GetMaximumPermission(item),
Permissions = engine.SecurityManager.GetPermissions(context.User, item),
Draft = new DraftInfo { ItemID = item.VersionOf.ID ?? item.ID, Saved = item.Updated, SavedBy = item.SavedBy, VersionIndex = item.VersionIndex },
Node = engine.ResolveAdapter<NodeAdapter>(item.VersionOf.Value ?? item).GetTreeNode(item.VersionOf.Value ?? item)
});
}
示例4: Autosave
private void Autosave(HttpContextBase context)
{
var selected = Selection.ParseSelectionFromRequest();
if (selected == null)
throw new HttpException((int)HttpStatusCode.NotFound, "Not Found");
var requestBody = context.GetOrDeserializeRequestStreamJsonDictionary<object>();
var discriminator = EditExtensions.GetDiscriminator(context.Request);
ContentItem item;
if (string.IsNullOrEmpty(discriminator))
{
item = selected;
var versions = engine.Resolve<VersionManager>();
if (item.State != ContentState.Draft)
item = versions.GetOrCreateDraft(item);
Update(requestBody, item);
if (item.ID == 0 && item.VersionOf.HasValue)
versions.UpdateVersion(item);
else
{
engine.Persister.Repository.SaveOrUpdate(item);
engine.Persister.Repository.Flush();
}
}
else
{
int id;
if (requestBody.ContainsKey("ID") && (id = (int)requestBody["ID"]) != 0)
{
item = engine.Persister.Get(id);
}
else
{
item = engine.Resolve<IDefinitionManager>().GetDefinition(discriminator).CreateInstance(selected);
item.State = ContentState.Draft;
}
Update(requestBody, item);
bool itemNeedsResaveWithIdGeneratedName = string.IsNullOrEmpty(item.Name);
engine.Persister.Repository.SaveOrUpdate(item);
engine.Persister.Repository.Flush();
if (itemNeedsResaveWithIdGeneratedName)
engine.Persister.Repository.Flush();
}
context.Response.WriteJson(new { ID = item.VersionOf.ID ?? item.ID, VersionIndex = item.VersionIndex });
}
示例5: Autosave
private void Autosave(HttpContextBase context)
{
var selected = Selection.ParseSelectionFromRequest();
if (selected == null)
throw new HttpException((int)HttpStatusCode.NotFound, "Not Found");
var requestBody = context.GetOrDeserializeRequestStreamJsonDictionary<object>();
var discriminator = EditExtensions.GetDiscriminator(context.Request);
var versions = engine.Resolve<VersionManager>();
ContentItem item;
if (string.IsNullOrEmpty(discriminator))
{
item = selected;
if (item.State != ContentState.Draft)
item = versions.GetOrCreateDraft(item);
Update(requestBody, item);
var page = Find.ClosestPage(item);
// existing page
// draft of existing page
// existing part
// draft of existing part
if (item.VersionOf.HasValue)
versions.UpdateVersion(item);
else if (page != null && page.VersionOf.HasValue)
versions.UpdateVersion(item);
else
engine.Persister.Save(item);
}
else
{
var parent = selected;
int id;
if (requestBody.ContainsKey("ID") && (id = (int)requestBody["ID"]) != 0)
{
item = engine.Persister.Get(id);
}
else
{
var definitions = engine.Resolve<IDefinitionManager>();
var definition = definitions.GetDefinition(discriminator);
if (!definition.IsPage)
{
if (parent.ID != 0 && !parent.VersionOf.HasValue)
{
parent = versions.GetOrCreateDraft(parent);
}
}
var templateKey = context.Request["template"];
var zoneName = context.Request["zoneName"];
item = engine.Resolve<ContentActivator>().CreateInstance(definition.ItemType, parent, templateKey);
item.State = ContentState.Draft;
item.ZoneName = zoneName;
item.AddTo(parent);
}
Update(requestBody, item);
// new page
// new part
if (item.ID == 0 && (item.VersionOf.HasValue || !item.IsPage))
versions.UpdateVersion(item);
else
engine.Persister.Save(item);
}
context.Response.WriteJson(new
{
EditUrl = engine.ManagementPaths.GetEditExistingItemUrl(item, context.Request["returnUrl"]),
PageID = Find.ClosestPage(item)?.VersionOf?.ID ?? Find.ClosestPage(item)?.ID,
ID = item.VersionOf.ID ?? item.ID,
VersionIndex = item.VersionIndex,
VersionKey = item.GetVersionKey(),
Selected = context.Request[PathData.SelectedQueryKey],
Path = item.Path,
PreviewUrl = item.Url,
Permission = engine.ResolveAdapter<NodeAdapter>(item).GetMaximumPermission(item),
Permissions = engine.SecurityManager.GetPermissions(context.User, item),
Draft = new DraftInfo { ItemID = item.VersionOf.ID ?? item.ID, Saved = item.Updated, SavedBy = item.SavedBy, VersionIndex = item.VersionIndex },
Node = engine.ResolveAdapter<NodeAdapter>(item.VersionOf.Value ?? item).GetTreeNode(item.VersionOf.Value ?? item)
});
}
示例6: Patch
private void Patch(HttpContextBase context)
{
var requestBody = context.GetOrDeserializeRequestStreamJsonDictionary<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 });
}