Exemple #1
0
        public ProcessPileDefinitionResult ProcessPileDefinition(object sourceDescriptor, object targetDescriptor)
        {
            if (!PileEngine.SourceDescriptorTypeIsValid(sourceDescriptor))
            {
                return(ProcessPileDefinitionResult.SourceDescriptorInvalid);
            }
            if (!PileEngine.TargetDescriptorTypeIsValid(targetDescriptor))
            {
                return(ProcessPileDefinitionResult.TargetDescriptorInvalid);
            }

            PileDefinition pileDefinition = PileEngine.ReadPileDefinition(sourceDescriptor);

            if (pileDefinition == null)
            {
                return(ProcessPileDefinitionResult.PileDefinitionUnreadable);
            }

            bool success = PileEngine.WritePileDefinition(pileDefinition, targetDescriptor);

            if (success == false)
            {
                return(ProcessPileDefinitionResult.FailedWritingPileDefinition);
            }

            return(ProcessPileDefinitionResult.Success);
        }
Exemple #2
0
        public ReadTilesResult ProcessTiles(object sourceDescriptor, object targetDescriptor, int pileId, int mediaItemGroupId, bool addTileIdAsPrefix)
        {
            if (!PileEngine.SourceDescriptorTypeIsValid(sourceDescriptor))
            {
                return(ReadTilesResult.SourceDescriptorInvalid);
            }
            if (!PileEngine.TargetDescriptorTypeIsValid(targetDescriptor))
            {
                return(ReadTilesResult.TargetDescriptorInvalid);
            }

            PileDefinition pileDefinition = PileEngine.ReadPileDefinition(sourceDescriptor);

            if (pileDefinition == null)
            {
                return(ReadTilesResult.PileDefinitionUnreadable);
            }

            bool success = PileEngine.WriteTiles(pileDefinition, sourceDescriptor, targetDescriptor, pileId, mediaItemGroupId, addTileIdAsPrefix);

            if (success == false)
            {
                return(ReadTilesResult.FailedWritingTiles);
            }

            return(ReadTilesResult.Success);
        }
Exemple #3
0
        public bool WritePileDefinition(PileDefinition pileDefinition, object targetDescriptor)
        {
            // TODO: Cleanup pilecreation result enum (split) and don't reuse pileCreationResult
            PileCreationResult pileCreationResult = PileCreationTarget.CheckPileCreationTarget(targetDescriptor);

            if (pileCreationResult == PileCreationResult.Ok) // TODO: use proper enum for this!
            {
                pileCreationResult = PileCreationTarget.WritePileDefinition(targetDescriptor, pileDefinition);
            }

            return(pileCreationResult == PileCreationResult.Successful);
        }
Exemple #4
0
        public PileDefinition ReadPileDefinition(object sourceDescriptor)
        {
            PileDefinition        pileDefinition        = null;
            PileSourceCheckResult pileSourceCheckResult = PileSource.CheckPileSource(sourceDescriptor);

            if (pileSourceCheckResult == PileSourceCheckResult.PileSourceOK)
            {
                pileDefinition = PileSource.ReadPileDefinition(sourceDescriptor);
            }

            return(pileDefinition);
        }
Exemple #5
0
        public bool WriteTiles(PileDefinition pileDefinition, object sourceDescriptor, object targetDescriptor, int pileId, int mediaItemGroupId, bool addTileIdAsPrefix)
        {
            // TODO: Cleanup pilecreation result enum (split) and don't reuse pileCreationResult
            PileSourceCheckResult pileSourceCheckResult = PileSource.CheckPileSource(sourceDescriptor);
            PileCreationResult    pileCreationResult    = PileCreationTarget.CheckPileCreationTarget(targetDescriptor);

            if (pileSourceCheckResult == PileSourceCheckResult.PileSourceOK && pileCreationResult == PileCreationResult.Ok)
            { // TODO: properly handle and return each result
                pileCreationResult = WriteValidationTiles(sourceDescriptor, targetDescriptor, pileDefinition, pileId, mediaItemGroupId, addTileIdAsPrefix);
                pileCreationResult = WriteExampleTiles(sourceDescriptor, targetDescriptor, pileDefinition, pileId, mediaItemGroupId, addTileIdAsPrefix);
                pileCreationResult = WriteExpertTiles(sourceDescriptor, targetDescriptor, pileDefinition, pileId, mediaItemGroupId, addTileIdAsPrefix);
            }

            return(pileCreationResult == PileCreationResult.Ok);
        }
Exemple #6
0
        public PileDefinition ReadPileDefinition(object sourceAccessDescriptor)
        {
            string         fileName       = Path.Combine((string)sourceAccessDescriptor, "pileInfo.json"); // TODO: assert format valid
            PileDefinition pileDefinition = null;

            try
            {
                pileDefinition = PileDefinition.FromJson(File.ReadAllText(fileName));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(pileDefinition);
        }
Exemple #7
0
        public PileCreationResult WritePileDefinition(object targetAccessDescriptor, PileDefinition pileDefinition)
        {
            string folderName     = (string)targetAccessDescriptor;
            string targetFileName = Path.Combine(folderName, "insert_pile_definition.sql");

            try
            {
                if (pileDefinition != null)
                {
                    File.WriteAllText(targetFileName, pileDefinition.SqlInsert);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(PileCreationResult.WritingPileDefinitionFailed);
            }

            return(PileCreationResult.Successful);
        }
Exemple #8
0
        public PileCreationResult WriteExpertTiles(object targetAccessDescriptor, List <ExpertTile> tiles, PileDefinition pileDefinition, int pileId, int mediaItemGroupId)
        {
            string        targetFile = Path.Combine((string)targetAccessDescriptor, "insert_expert_tiles.sql");
            List <string> inserts    = tiles.Select(validationTile => $"select from public.gw_insert_urundata_expert_tile('{validationTile.filename}', {mediaItemGroupId}, {pileId}, {pileDefinition.GetAnswerId(validationTile.correctAnswer)});").ToList();

            try
            {
                File.WriteAllLines(targetFile, inserts);
            }
            catch (Exception e)
            {
                return(PileCreationResult.WritingPileTilesFailed);
            }

            return(PileCreationResult.Successful);
        }
Exemple #9
0
 private PileCreationResult WriteValidationTiles(object sourceDescriptor, object targetDescriptor, PileDefinition pileDefinition, in int pileId, in int mediaItemGroupId, in bool addTileIdAsPrefix)