Esempio n. 1
0
        /// <summary>
        /// Validates user input
        /// </summary>
        /// <param name="DTO"></param>
        /// <returns></returns>
        internal bool Validate(PxUpload_DTO DTO)
        {
            if (!ParsePxFile(DTO))
            {
                LogValidatorErrors(ParseValidatorResult);
                ResponseError = Error.GetValidationFailure(ParseValidatorResult.Errors);
                return(true);
            }

            if (!PxSchemaIsValid())
            {
                LogValidatorErrors(SchemaValidatorResult);
                ResponseError = Error.GetValidationFailure(SchemaValidatorResult.Errors);
                return(true);
            }

            MatrixData = GetMatrixData(PxDoc);

            if (!PxIntegrityIsValid(MatrixData))
            {
                LogValidatorErrors(IntegrityValidatorResult);
                ResponseError = Error.GetValidationFailure(IntegrityValidatorResult.Errors);
                return(true);
            }

            if (!PxSettingsAreValid(MatrixData))
            {
                LogValidatorErrors(SettingsValidatorResult);
                ResponseError = Error.GetValidationFailure(SettingsValidatorResult.Errors);
                return(true);
            }

            ResponseData = API.JSONRPC.success;
            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Parses the px file
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        internal bool ParsePxFile(PxUpload_DTO dto)
        {
            ParseValidatorResult = new ValidationResult();
            try
            {
                PxDoc = PxStatEngine.ParsePxInput(dto.MtrInput);
            }
            catch (Exception e)
            {
                ParseValidatorResult.Errors.Add(new ValidationFailure("MtrInput", Label.Get("px.parse")));
                ParseValidatorResult.Errors.Add(new ValidationFailure("MtrInput", e.Message));
            }

            return(PxDoc != null);
        }
Esempio n. 3
0
 /// <summary>
 /// Gets matrix data from a serialized matrix file
 /// </summary>
 /// <param name="doc"></param>
 /// <returns></returns>
 private Matrix GetMatrixData(PxDocument doc, PxUpload_DTO dto = null)
 {
     return(new Matrix(doc, dto));
 }
Esempio n. 4
0
        /// <summary>
        /// Validates user input
        /// </summary>
        /// <param name="DTO"></param>
        /// <returns></returns>
        internal bool Validate(PxUpload_DTO DTO)
        {
            if (!ParsePxFile(DTO))
            {
                LogValidatorErrors(ParseValidatorResult);
                ResponseError = Error.GetValidationFailure(ParseValidatorResult.Errors);
                return(false);
            }

            if (!PxSchemaIsValid())
            {
                LogValidatorErrors(SchemaValidatorResult);
                ResponseError = Error.GetValidationFailure(SchemaValidatorResult.Errors);
                return(false);
            }

            MatrixData = GetMatrixData(PxDoc, DTO);

            if (MatrixData.MainSpec.requiresResponse)
            {
                return(false);
            }

            if (MatrixData.OtherLanguageSpec != null)
            {
                foreach (var spec in MatrixData.OtherLanguageSpec)
                {
                    if (spec.requiresResponse)
                    {
                        return(false);
                    }
                }
            }

            if (!PxIntegrityIsValid(MatrixData))
            {
                LogValidatorErrors(IntegrityValidatorResult);
                ResponseError = Error.GetValidationFailure(IntegrityValidatorResult.Errors);
                return(false);
            }

            if (!PxSettingsAreValid(MatrixData))
            {
                LogValidatorErrors(SettingsValidatorResult);
                ResponseError = Error.GetValidationFailure(SettingsValidatorResult.Errors);
                return(false);
            }

            MatrixData.ValidateMyMaps(true);
            if (MatrixData.MainSpec.ValidationErrors != null)
            {
                ResponseError = Error.GetValidationFailure(MatrixData.MainSpec.ValidationErrors);
                return(false);
            }

            if (MatrixData.OtherLanguageSpec != null)
            {
                foreach (var spec in MatrixData.OtherLanguageSpec)
                {
                    if (spec.ValidationErrors != null)
                    {
                        ResponseError = Error.GetValidationFailure(MatrixData.MainSpec.ValidationErrors);
                        return(false);
                    }
                }
            }

            ResponseData = API.JSONRPC.success;
            return(true);
        }