示例#1
0
        private void AddSystemSupplier(ref SqlCommand command, SystemParameter systemParameter)
        {
            if (systemParameter.HasTemplateId)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PluginSystemInfo.TemplateID, "TemplateID", SqlDbType.NVarChar));
            }

            if (systemParameter.HasTemplateName)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PluginSystemInfo.TemplateName, "TemplateName", SqlDbType.NVarChar));
            }

            if (systemParameter.HasTemplateVersion)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PluginSystemInfo.TemplateVersion, "TemplateVersion", SqlDbType.NVarChar));
            }

            if (systemParameter.HasComputerName)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PluginSystemInfo.ComputerName, "CreatedOn", SqlDbType.NVarChar));
            }

            if (systemParameter.HasUserId)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PluginSystemInfo.UserId, "CreatedBy", SqlDbType.NVarChar));
            }
            if (systemParameter.HasRenderRequestID)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PluginSystemInfo.RenderRequestID, "RenderID", SqlDbType.NVarChar));
            }
        }
示例#2
0
        public static bool ValidateRenderArgValue(RenderArgDomainSchema renderArg, RenderArgDomainValue argValues, ref string msg)
        {
            //Return if template doesn't need argument value for rendering.
            if (renderArg == null || renderArg.Parameters == null || renderArg.Parameters.Count == 0)
            {
                return(true);
            }

            if (argValues == null || argValues.Parameters == null || argValues.Parameters.Count == 0)
            {
                msg += "RenderArgument is null or empty.";
                return(false);
            }

            if (renderArg.Parameters.Count > argValues.Parameters.Count)
            {
                msg += string.Format("Argument missing. This template needs value for {0} parameters.", renderArg.Parameters.Count);
                return(false);
            }

            Dictionary <long, string> errors = new Dictionary <long, string>();
            bool isValid = ValidateRenderArgType(renderArg, ref msg);

            if (!isValid)
            {
                return(false);
            }

            for (int i = 0; i < renderArg.Parameters.Count; i++)
            {
                RenderParameterSchema paramInfo = renderArg.Parameters[i];
                //Get corresponding param value base on Name
                RenderParameterBase paramValueInfo = (from c in argValues.Parameters
                                                      where string.Compare(c.Name, paramInfo.Name, true) == 0
                                                      select c).FirstOrDefault();
                //If needed parameter isn't found.
                if (paramValueInfo == null || paramValueInfo.Value == null || paramValueInfo.Value.Count() == 0)
                {
                    isValid = false;
                    msg    += string.Format("Parameter value is not found: {0}.", paramInfo.Name);
                    continue;
                }

                object paramValue = paramInfo.DataType.IsArray ? paramValueInfo.Value : paramValueInfo.Value[0];

                //Validate value and length
                SQLTypeName    dataType = SQLConvertTypeHelper.GetSqlTypeFromString(paramInfo.DataType.Name);
                DataTypeLength length   = CoreRenderHelper.GetDataTypeLengthFromSXLength(paramInfo.DataType.Length);
                if (!SQLDBTypeValidator.ValidateValue(dataType, length, paramValue, paramInfo.DataType.IsArray))
                {
                    isValid = false;
                    msg    += string.Format("Type of parameter value is invalid: {0}.", paramInfo.Name);
                }
            }

            return(isValid);
        }
示例#3
0
        public string GetDataAgrumentValueFromAppDB(ChecksumInfoItem item, string osql, RenderArgDomainValue renderArgumentValue, string conn)
        {
            string osqlData = string.Empty;
            //Retrieve data from Application database
            XmlReader xmlReader = null;

            try
            {
                SqlCommand command = new SqlCommand();
                command.CommandText = osql;//osqlQuery always not null or empty.

                if (item.RenderArgument != null && renderArgumentValue != null)
                {
                    for (int i = 0; i < item.RenderArgument.Parameters.Count; i++)
                    {
                        RenderParameterSchema sxParam      = item.RenderArgument.Parameters[i];
                        SqlParameter          sqlParameter = CoreRenderHelper.CreateSqlParamForAnArgument(sxParam, renderArgumentValue);
                        command.Parameters.Add(sqlParameter);
                    }
                }

                //Add System Supplier param
                SystemParameter systemParameter = item.SystemParameter;
                AddSystemSupplier(ref command, systemParameter);

                //Add Watermark string
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.PdwWatermark, "WaterMark", SqlDbType.NVarChar));

                //Add param RenderArgumentX , RenderArgumentY
                AddParamRenderArgumentXY(ref command, renderArgumentValue, item);

                string connectionStr = base.GetConnectionString(conn.Trim());
                xmlReader = ExecuteXmlReader(connectionStr, command);
            }
            catch (SqlException ex)
            {
                throw ex;
            }

            #region Transfer data to StringBuilder object

            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(xmlReader);
            xmlReader.Close();

            osqlData = xDoc.InnerXml;

            #endregion

            return(osqlData);
        }
示例#4
0
        private void AddParamRenderArgumentXY(ref SqlCommand command, RenderArgDomainValue renderArgumentValue, ChecksumInfoItem item)
        {
            if (item.RenderArgument.RenderArgumentX)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.RenderArgumentX,
                                                                          string.Format("{0}", renderArgumentValue.RenderArgumentX),
                                                                          SqlDbType.NVarChar));
            }

            if (item.RenderArgument.RenderArgumentY)
            {
                command.Parameters.Add(CoreRenderHelper.CreateAppSqlParam("@" + FrameworkConstants.RenderArgumentY,
                                                                          string.Format("{0}", renderArgumentValue.RenderArgumentY),
                                                                          SqlDbType.NVarChar));
            }
        }