/// <summary>
        /// Submits the specified structural meta-data .
        /// </summary>
        /// <param name="dataLocation">The data location pointing to the structural meta-data.</param>
        /// <returns>The imported objects</returns>
        /// <exception cref="Estat.Sri.Ws.SubmitStructure.SubmitStructureException">An error occurred while importing structural meta-data.</exception>
        public ISdmxObjects Submit(IReadableDataLocation dataLocation, SubmitStructureConstant.ActionType actionType = SubmitStructureConstant.ActionType.Replace)
        {
            // Parse structures IStructureParsingManager is an instance field.
            IStructureWorkspace structureWorkspace = this._parsingManager.ParseStructures(dataLocation);

            // Get immutable objects from workspace
            ISdmxObjects objects = structureWorkspace.GetStructureObjects(false);

            // create a new instance of the MappingStoreManager class which implements the IStructurePersistenceManager
            IList<ArtefactImportStatus> importStatus = new List<ArtefactImportStatus>();
            IStructurePersistenceManager persistenceManager = new MappingStoreManager(this._connectionStringSettings, importStatus);

            switch (actionType)
            {
                case SubmitStructureConstant.ActionType.Append:
                    break;
                case SubmitStructureConstant.ActionType.Replace:
                    // Save the structure to the mapping store database.
                    persistenceManager.SaveStructures(objects);

                    // Validate objects.
                    ValidateImport(importStatus);
                
                    break;
                case SubmitStructureConstant.ActionType.Delete:
                    // Delete the structure to the mapping store database.
                    persistenceManager.DeleteStructures(objects);
                    break;
                default:
                    break;
            }

            // Return the immutable object container.
            return objects;
        }
示例#2
0
        /// <summary>
        /// Submits the specified structural meta-data .
        /// </summary>
        /// <param name="dataLocation">The data location pointing to the structural meta-data.</param>
        /// <returns>The imported objects</returns>
        /// <exception cref="Estat.Sri.Ws.SubmitStructure.SubmitStructureException">An error occurred while importing structural meta-data.</exception>
        public ISdmxObjects Submit(IReadableDataLocation dataLocation, SubmitStructureConstant.ActionType actionType = SubmitStructureConstant.ActionType.Replace)
        {
            // Parse structures IStructureParsingManager is an instance field.
            IStructureWorkspace structureWorkspace = this._parsingManager.ParseStructures(dataLocation);

            // Get immutable objects from workspace
            ISdmxObjects objects = structureWorkspace.GetStructureObjects(false);

            // create a new instance of the MappingStoreManager class which implements the IStructurePersistenceManager
            IList <ArtefactImportStatus> importStatus       = new List <ArtefactImportStatus>();
            IStructurePersistenceManager persistenceManager = new MappingStoreManager(this._connectionStringSettings, importStatus);

            switch (actionType)
            {
            case SubmitStructureConstant.ActionType.Append:
                break;

            case SubmitStructureConstant.ActionType.Replace:
                // Save the structure to the mapping store database.
                persistenceManager.SaveStructures(objects);

                // Validate objects.
                ValidateImport(importStatus);

                break;

            case SubmitStructureConstant.ActionType.Delete:
                // Delete the structure to the mapping store database.
                persistenceManager.DeleteStructures(objects);
                break;

            default:
                break;
            }

            // Return the immutable object container.
            return(objects);
        }
        public static IList<ArtefactImportStatus> DeleteStructure(SDMXIdentifier sdmxKey, Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType typeArtefact = Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType.Dsd)
        {
            IList<ArtefactImportStatus> artefactImportStatuses = new List<ArtefactImportStatus>();

            if (typeArtefact == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType.Dsd)
            {
                IDataStructureObject dsd = DataSDMX.GetDSD(sdmxKey, true);
                var manager = new MappingStoreManager(SQLConnString_DB, artefactImportStatuses);
                manager.DeleteStructure(dsd);
            }
            else if (typeArtefact == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType.Dataflow)
            {

                IDataflowObject dataflow = DataSDMX.GetDataflow(sdmxKey, true);
                var manager = new MappingStoreManager(SQLConnString_DB, artefactImportStatuses);
                manager.DeleteStructure(dataflow);
            }

            return artefactImportStatuses;
        }
        public static IList<ArtefactImportStatus> SubmitStructure(ISdmxObjects sdmxObjects)
        {
            IList<ArtefactImportStatus> artefactImportStatuses = new List<ArtefactImportStatus>();

            try
            {
                var manager = new MappingStoreManager(SQLConnString_DB, artefactImportStatuses);
                manager.SaveStructures(sdmxObjects);

                foreach (ArtefactImportStatus datastructure in artefactImportStatuses)
                {
                    if (datastructure.ImportMessage.StructureReference.MaintainableStructureEnumType == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType.Dsd)
                    {
                        Delete_Dataflow((int)datastructure.PrimaryKeyValue + 1);
                    }
                }

                return artefactImportStatuses;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static IList<ArtefactImportStatus> DeleteStructure(ISdmxObjects sdmxObjects)
        {
            IList<ArtefactImportStatus> artefactImportStatuses = new List<ArtefactImportStatus>();

            var manager = new MappingStoreManager(SQLConnString_DB, artefactImportStatuses);
            manager.DeleteStructures(sdmxObjects);

            return artefactImportStatuses;
        }
示例#6
0
        public static IList<ArtefactImportStatus> SubmitStructure(System.IO.Stream stream)
        {
            System.IO.StreamReader _stream = new System.IO.StreamReader(stream);
            ReadableDataLocationFactory fact = new ReadableDataLocationFactory();
            IReadableDataLocation rdl = fact.GetReadableDataLocation(_stream.BaseStream);

            IList<ArtefactImportStatus> artefactImportStatuses = new List<ArtefactImportStatus>();

            try
            {
                StructureParsingManager spm = new StructureParsingManager();
                IStructureWorkspace workspace = spm.ParseStructures(rdl);
                ISdmxObjects sdmxObjects = workspace.GetStructureObjects(false);

                //sdmxObjects = RemoveNotFinalDSD(sdmxObjects);

                var manager = new MappingStoreManager(SQLConnString_DB, artefactImportStatuses);
                manager.SaveStructures(sdmxObjects);

                _stream.Close();
                rdl.Close();

                foreach (ArtefactImportStatus datastructure in artefactImportStatuses)
                {
                    if (datastructure.ImportMessage.StructureReference.MaintainableStructureEnumType == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType.Dsd)
                    {

                        Delete_Dataflow((int)datastructure.PrimaryKeyValue + 1);
                        /*
               DeleteStructure(new SDMXIdentifier() {
                   id = datastructure.ImportMessage.StructureReference.MaintainableId,
                   agencyid = datastructure.ImportMessage.StructureReference.AgencyId,
                   version = datastructure.ImportMessage.StructureReference.Version,
               }, Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType.Dataflow);   */
                    }
                }

                return artefactImportStatuses;
            }
            catch (Exception ex)
            {
                _stream.Close();
                rdl.Close();
                throw ex;
            }
        }