/// <summary> /// Write to datasource overload with datatype operations /// </summary> /// <param name="dataTypeWriteOperations">collection of datatype operations</param> /// <returns></returns> public ICollection <OperationResult> WriteToDataSource(ICollection <DataTypeWriteOperation> dataTypeWriteOperations) { //Implementation is required in order to use data structures ICollection <OperationResult> dtOperationResults = new List <OperationResult>(); foreach (var dtOperation in dataTypeWriteOperations) { OperationResult opResult = new OperationResult(dtOperation, OperationResult.Status.Success, ""); try { switch (dtOperation.OperationType) { case DatastructureOperationType.CreateDataType: IDictionary <string, ProviderItemBase> dict = new Dictionary <string, ProviderItemBase>(); dict.Add(dtOperation.Key, dtOperation.ProviderItem); PersistenceProvider.Insert(dict); break; case DatastructureOperationType.DeleteDataType: PersistenceProvider.Remove(new string[] { dtOperation.Key }); break; case DatastructureOperationType.AddToDataType: PersistenceProvider.AddToDataType(dtOperation.Key, dtOperation.ProviderItem, dtOperation.DataType); break; case DatastructureOperationType.UpdateDataType: PersistenceProvider.UpdateToDataType(dtOperation.Key, dtOperation.ProviderItem, dtOperation.DataType); break; case DatastructureOperationType.DeleteFromDataType: PersistenceProvider.RemoveFromDataType(dtOperation.Key, dtOperation.DataType); break; } } catch (Exception ex) { opResult.Exception = ex; opResult.OperationStatus = OperationResult.Status.Failure; } dtOperationResults.Add(opResult); } return(dtOperationResults); }