private void TryLoadPersistedFormData(string filename) { string guidString = Path.GetFileNameWithoutExtension(filename); Guid id; if (!Guid.TryParse(guidString ?? "", out id)) { return; } try { var doc = XDocumentUtils.Load(filename); var formData = FormData.Deserialize(doc.Root); if (!_resourceLocker.Resources.FormData.ContainsKey(id)) { _resourceLocker.Resources.FormData.TryAdd(id, formData); FormsWorkflowBindingCache.Bindings.TryAdd(id, formData.Bindings); } } catch (DataSerilizationException ex) { Log.LogWarning(LogTitle, $"The workflow {id} contained one or more bindings where data was deleted or data type changed"); Log.LogWarning(LogTitle, ex); //AbortWorkflow(id); } catch (Exception ex) { Log.LogCritical(LogTitle, $"Could not deserialize form data for the workflow {id}"); Log.LogCritical(LogTitle, ex); AbortWorkflow(id); } }