/// <summary> /// Create a PostItem response. /// </summary> /// <param name="parentFolderId">The parent folder id.</param> /// <param name="messageDisposition">The message disposition.</param> /// <returns>Created PostItem.</returns> internal PostItem InternalCreate(FolderId parentFolderId, MessageDisposition?messageDisposition) { ((ItemId)this.PropertyBag[ResponseObjectSchema.ReferenceItemId]).Assign(this.referenceItem.Id); List <Item> items = this.Service.InternalCreateResponseObject( this, parentFolderId, messageDisposition); PostItem postItem = EwsUtilities.FindFirstItemOfType <PostItem>(items); // This should never happen. If it does, we have a bug. EwsUtilities.Assert( postItem != null, "PostReply.InternalCreate", "postItem is null. The CreateItem call did not return the expected PostItem."); return(postItem); }
/// <summary> /// Method is creating temporary post item and deletes it as soon as creator address is determined. /// </summary> /// <returns></returns> internal string GetCurrentUser() { try { PostItem postItem = new PostItem(this.GetSessionVariable()); postItem.Body = new MessageBody("Ews temp post item"); postItem.Save(); PostItem tempPostItem = PostItem.Bind(this.GetSessionVariable(), postItem.Id); string from = tempPostItem.From.Address.ToString(); postItem = null; tempPostItem.Delete(DeleteMode.HardDelete); return from.ToLower(); } catch { return null; } }