private static async Task <PpsObject> AppendAsync(IPpsAttachments attachments, PpsEnvironment environment, Func <Task <PpsObject> > createObject) { // every file one transaction, and exception handling using (var trans = await environment.MasterData.CreateTransactionAsync(PpsMasterDataTransactionLevel.Write)) { var obj = await createObject(); attachments.Append(obj); trans.Commit(); return(obj); } } // func AppendAsync
private void OnAttachmentsSourceChanged(IPpsAttachments newValue, IPpsAttachments oldValue) { zusaList.ItemsSource = newValue; } // proc OnAttachmentsSourceChanged
/// <summary>Append a stream to the attachemnts list</summary> /// <param name="attachments"></param> /// <param name="environment"></param> /// <param name="source"></param> /// <param name="name"></param> /// <param name="mimeType"></param> /// <returns></returns> public static Task <PpsObject> AppendAsync(this IPpsAttachments attachments, PpsEnvironment environment, Stream source, string name, string mimeType) => AppendAsync(attachments, environment, () => environment.CreateNewObjectFromStreamAsync(source, name, mimeType));
} // func AppendAsync /// <summary>Append a file to the attachments list.</summary> /// <param name="attachments"></param> /// <param name="environment"></param> /// <param name="fileName"></param> /// <returns></returns> public static Task <PpsObject> AppendAsync(this IPpsAttachments attachments, PpsEnvironment environment, string fileName) => AppendAsync(attachments, environment, () => environment.CreateNewObjectFromFileAsync(fileName));