public void Write(Dictionary <Component, List <Context> > componentContexts) { BeforeWrite?.Invoke(); foreach (Identifier id in ContractWriters.ContractIds) { Contracts[id] = ContractWriters.WriteContract(id); } foreach (Component component in componentContexts.Keys) { BeforeComponentWrite?.Invoke(component); WriteComponent(component, componentContexts[component]); AfterComponentWrite?.Invoke(component); } AfterWrite?.Invoke(); }
public async Task WriteAsync(Dictionary <Component, List <Context> > componentContexts) { BeforeWrite?.Invoke(); foreach (Identifier id in ContractWriters.ContractIds) { Contracts[id] = ContractWriters.WriteContract(id); await Task.Yield(); } foreach (Component component in componentContexts.Keys) { WriteComponent(component, componentContexts[component]); await Task.Yield(); } AfterWrite?.Invoke(); Contracts.Clear(); ContextContracts.Clear(); }