public IRecordStorage LoadTodoStorage(TransactionDownloadData <Transaction> transactionDownload) { try { var data = transactionDownload.GetDecryptedData("todo"); if (data != null) { using (var unpacker = new Unpacker(data)) { var recordType = (TodoRecordTypes)RecordStorage.ReadRecordType(unpacker); Type type = null; if (recordType == TodoRecordTypes.ListName) { type = typeof(TodoRecordStorage <TodoListNameRecord>); } else if (recordType == TodoRecordTypes.Task) { type = typeof(TodoRecordStorage <TodoTaskRecord>); } else if (recordType == TodoRecordTypes.TaskStatus) { type = typeof(TodoRecordStorage <TodoTaskStatusRecord>); } if (type != null) { return((IRecordStorage)Activator.CreateInstance(type, unpacker)); } } } } catch (Exception ex) { Log.IgnoreException(ex); } return(null); }