コード例 #1
0
        /// <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);
        }