Exemple #1
0
        public static async Task ValidateSchemaAsync(CdmCorpusDefinition cdmCorpus, CdmValidationStep finishStep)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            Console.WriteLine("Validate schema...");
            Func <CdmValidationStep, Task <CdmValidationStep> > validateStep = null;

            validateStep = async(currentStep) =>
            {
                var resolveReferencesAndValidateTask = await Task.Run(() => cdmCorpus.ResolveReferencesAndValidateAsync(currentStep, finishStep, null)).ConfigureAwait(false);

                Func <CdmValidationStep, Task <CdmValidationStep> > validationFunc = null;
                try
                {
                    validationFunc = async(r) =>
                    {
                        CdmValidationStep nextStep = r;
                        if (nextStep == CdmValidationStep.Error)
                        {
                            Console.WriteLine("validation step failed");
                            return(CdmValidationStep.Error);
                        }
                        else if (nextStep == CdmValidationStep.Finished)
                        {
                            Console.WriteLine("validation finished");
                            stopwatch.Stop();
                            Console.WriteLine(stopwatch.Elapsed);
                            return(CdmValidationStep.Finished);
                        }
                        else
                        {
                            // success resolving all imports
                            return(await validateStep(nextStep).ConfigureAwait(false));
                        }
                    };
                }
                catch (Exception e)
                {
                    Console.WriteLine("Exception during validation");
                    Console.WriteLine(e.Message);
                }
                return(await validationFunc(resolveReferencesAndValidateTask).ConfigureAwait(false));
            };

            await validateStep(CdmValidationStep.Start).ConfigureAwait(false);
        }
Exemple #2
0
        public static async Task <bool> ResolveLocalCorpus(CdmCorpusDefinition cdmCorpus, CdmValidationStep finishStep)
        {
            Console.WriteLine("resolving imports");

            for (int i = 0; i < ((CdmCorpusDefinition)cdmCorpus).AllDocuments.Count; i++)
            {
                Tuple <CdmFolderDefinition, CdmDocumentDefinition> tuple = ((CdmCorpusDefinition)cdmCorpus).AllDocuments[i];
                ResolveOptions resOpt = new ResolveOptions()
                {
                    WrtDoc = tuple.Item2, Directives = directives
                };
                await tuple.Item2.RefreshAsync(resOpt);
            }
            return(true);
        }
        public static async Task <bool> ResolveLocalCorpus(CdmCorpusDefinition cdmCorpus, CdmValidationStep finishStep)
        {
            Console.WriteLine("resolving imports");

            List <CdmDocumentDefinition> AllDocuments = ((CdmCorpusDefinition)cdmCorpus).documentLibrary.ListAllDocuments();

            for (int i = 0; i < AllDocuments.Count; i++)
            {
                ResolveOptions resOpt = new ResolveOptions()
                {
                    WrtDoc = AllDocuments[i], Directives = directives
                };
                await AllDocuments[i].RefreshAsync(resOpt);
            }
            return(true);
        }