public SingleObjectModel CreateObjectPosting(string objectUID, [FromBody] object body) { try { base.RequireBody(body); var bodyAsJson = JsonObject.Parse(body); var posting = new ObjectPosting(objectUID, bodyAsJson); posting.Save(); if (!posting.SendTo.IsEmptyInstance) { var activity = Activity.Parse(objectUID); EventsNotifier.SendNotification(activity, posting.SendTo, posting.Title, posting.Body); } return(new SingleObjectModel(this.Request, posting.ToResponse(), typeof(ObjectPosting).FullName)); } catch (Exception e) { throw base.CreateHttpException(e); } }
static internal object ToResponse(this ObjectPosting posting) { return(new { uid = posting.UID, objectUID = posting.ObjectUID, body = posting.Body, title = posting.Title, fileUrl = posting.FileUrl, authors = posting.Authors, tags = posting.Tags, sendTo = posting.SendTo.ToObject(), date = posting.Date, accessMode = posting.AccessMode, owner = posting.Owner.Nickname, status = posting.Status }); }