Ejemplo n.º 1
0
        private static IList <VhdValidationResult> DoValidate(VhdValidationType validation, VhdFile vhdFile, Exception exception)
        {
            var result = new List <VhdValidationResult>();

            if ((validation & VhdValidationType.IsVhd) == VhdValidationType.IsVhd)
            {
                var validationResult = new VhdValidationResult
                {
                    ValidationType = VhdValidationType.IsVhd
                };
                if (vhdFile == null)
                {
                    validationResult.ErrorCode = 1000;
                    validationResult.Error     = exception;
                }
                result.Add(validationResult);
            }

            if ((validation & VhdValidationType.FixedDisk) == VhdValidationType.FixedDisk)
            {
                var validationResult = new VhdValidationResult
                {
                    ValidationType = VhdValidationType.FixedDisk
                };
                if (vhdFile == null || vhdFile.Footer.DiskType != DiskType.Fixed)
                {
                    validationResult.ErrorCode = 1001;
                }
                result.Add(validationResult);
            }
            return(result);
        }
Ejemplo n.º 2
0
        private static IList<VhdValidationResult> DoValidate(VhdValidationType validation, VhdFile vhdFile, Exception exception)
        {
            var result = new List<VhdValidationResult>();

            if ((validation & VhdValidationType.IsVhd) == VhdValidationType.IsVhd)
            {
                var validationResult = new VhdValidationResult
                                           {
                                               ValidationType = VhdValidationType.IsVhd
                                           };
                if (vhdFile == null)
                {
                    validationResult.ErrorCode = 1000;
                    validationResult.Error = exception;
                }
                result.Add(validationResult);
            }

            if ((validation & VhdValidationType.FixedDisk) == VhdValidationType.FixedDisk)
            {
                var validationResult = new VhdValidationResult
                                           {
                                               ValidationType = VhdValidationType.FixedDisk
                                           };
                if (vhdFile == null || vhdFile.Footer.DiskType != DiskType.Fixed)
                {
                    validationResult.ErrorCode = 1001;
                }
                result.Add(validationResult);
            }
            return result;
        }
Ejemplo n.º 3
0
        public static IList<VhdValidationResult> Validate(VhdValidationType validation, string path)
        {
            var fileFactory = new VhdFileFactory();
            VhdFile vhdFile = null;
            Exception exception = null;
            try
            {
                vhdFile = fileFactory.Create(path);
            }
            catch (VhdParsingException e)
            {
                exception = e;
            }

            return DoValidate(validation, vhdFile, exception);
        }
Ejemplo n.º 4
0
        public static IList <VhdValidationResult> Validate(VhdValidationType validation, Stream vhdStream)
        {
            var       fileFactory = new VhdFileFactory();
            VhdFile   vhdFile     = null;
            Exception exception   = null;

            try
            {
                vhdFile = fileFactory.Create(vhdStream);
            }
            catch (VhdParsingException e)
            {
                exception = e;
            }

            return(DoValidate(validation, vhdFile, exception));
        }
Ejemplo n.º 5
0
        private static IEnumerable <CompletionPort> ValidateAsync(AsyncMachine <IList <VhdValidationResult> > machine, VhdValidationType validation, Stream vhdStream)
        {
            var result = new List <VhdValidationResult>();

            var fileFactory = new VhdFileFactory();

            fileFactory.BeginCreate(vhdStream, machine.CompletionCallback, null);
            yield return(CompletionPort.SingleOperation);

            VhdFile   vhdFile   = null;
            Exception exception = null;

            try
            {
                vhdFile = fileFactory.EndCreate(machine.CompletionResult);
            }
            catch (VhdParsingException e)
            {
                exception = e;
            }

            machine.ParameterValue = DoValidate(validation, vhdFile, exception);
        }
Ejemplo n.º 6
0
 public static IAsyncResult BeginValidate(VhdValidationType validation, Stream vhdStream, AsyncCallback callback, object state)
 {
     return(AsyncMachine <IList <VhdValidationResult> > .BeginAsyncMachine(ValidateAsync, validation, vhdStream, callback, state));
 }
Ejemplo n.º 7
0
 public static IAsyncResult BeginValidate(VhdValidationType validation, Stream vhdStream, AsyncCallback callback, object state)
 {
     return AsyncMachine<IList<VhdValidationResult>>.BeginAsyncMachine(ValidateAsync, validation, vhdStream, callback, state);
 }
Ejemplo n.º 8
0
        private static IEnumerable<CompletionPort> ValidateAsync(AsyncMachine<IList<VhdValidationResult>> machine, VhdValidationType validation, Stream vhdStream)
        {
            var result = new List<VhdValidationResult>();

            var fileFactory = new VhdFileFactory();

            fileFactory.BeginCreate(vhdStream, machine.CompletionCallback, null);
            yield return CompletionPort.SingleOperation;

            VhdFile vhdFile = null;
            Exception exception = null;
            try
            {
                vhdFile = fileFactory.EndCreate(machine.CompletionResult);
            }
            catch (VhdParsingException e)
            {
                exception = e;
            }

            machine.ParameterValue = DoValidate(validation, vhdFile, exception);
        }