コード例 #1
0
        /// <inheritdoc />
        public void Build(ksDocument3D document3D, Parameters.Parameters parameters)
        {
            var part         = (ksPart)document3D.GetPart((short)Part_Type.pTop_Part);
            var currentPlane = (ksEntity)part.GetDefaultEntity((short)Obj3dType.o3d_planeYOZ);

            var entitySketch     = (ksEntity)part.NewEntity((short)Obj3dType.o3d_sketch);
            var sketchDefinition = (ksSketchDefinition)entitySketch.GetDefinition();

            sketchDefinition.SetPlane(currentPlane);
            entitySketch.Create();

            var sketchEdit = (ksDocument2D)sketchDefinition.BeginEdit();

            var E = parameters[ParameterName.E];
            var C = parameters[ParameterName.C];
            var D = parameters[ParameterName.D];
            var A = parameters[ParameterName.A];
            var B = parameters[ParameterName.B];

            sketchEdit.ksLineSeg(0, 0, E / 2, 0, 1);
            sketchEdit.ksLineSeg(E / 2, 0, E / 2, C, 1);
            sketchEdit.ksLineSeg(E / 2, C, D / 2, C, 1);
            sketchEdit.ksLineSeg(D / 2, C, A / 2, B, 1);
            sketchEdit.ksLineSeg(A / 2, B, 0, B, 1);
            sketchEdit.ksLineSeg(0, B, 0, 0, 1);
            sketchEdit.ksLineSeg(0, -2, 0, 16, 3);
            sketchDefinition.EndEdit();
        }
コード例 #2
0
 public override void SetParameters(Parameters.Parameters value)
 {
     _pacientID = ((PacientDetailParameters)value).PacientID;
     _operation = ((PacientDetailParameters)value).Operation;
     pacient    = _dataManager.GetPacient(_pacientID);
     ConfigureForm();
 }
コード例 #3
0
        public IParameters Read(TflTransform transform) {
            var parameters = new Parameters.Parameters(new DefaultFactory(_logger));

            foreach (var p in transform.Parameters) {
                if (string.IsNullOrEmpty(p.Field) && (string.IsNullOrEmpty(p.Name) || string.IsNullOrEmpty(p.Value))) {
                    throw new TransformalizeException(_logger, "The entity {0} has a {1} transform parameter without a field attribute, or name and value attributes.  Entity parameters require one or the other.", _entity.Alias, transform.Method);
                }

                var fields = new Fields(_entity.Fields, _entity.CalculatedFields);
                if (!string.IsNullOrEmpty(p.Field)) {
                    if (fields.FindByParamater(p).Any()) {
                        var field = fields.FindByParamater(p).Last();
                        var name = string.IsNullOrEmpty(p.Name) ? field.Alias : p.Name;
                        parameters.Add(field.Alias, name, null, field.Type);
                    } else {
                        if (!p.Field.StartsWith("Tfl")) {
                            _logger.EntityWarn(_entity.Name, "The entity {0} has a {1} transform parameter that references field {2}.  This field hasn't been defined yet in {0}.", _entity.Alias, transform.Method, p.Field);
                        }
                        var name = string.IsNullOrEmpty(p.Name) ? p.Field : p.Name;
                        parameters.Add(p.Field, name, p.HasValue() ? p.Value : null, "System.String");
                    }
                } else {
                    var parameter = new Parameter(p.Name, p.Value) {
                        SimpleType = Common.ToSimpleType(p.Type),
                        ValueReferencesField = p.HasValue() && fields.Find(p.Value).Any()
                    };
                    parameters.Add(p.Name, parameter);
                }
            }

            return parameters;
        }
コード例 #4
0
        public static string CreateUrl(Parameters.Parameters parameters, bool truncate = true)
        {
            var url = new PrtgUrl(new ConnectionDetails("prtg.example.com", "username", "password"), XmlFunction.TableData, parameters);

            if (truncate)
            {
                var suffix = "https://prtg.example.com/api/table.xml?";
                var prefix = $"&username=username&passhash=password";
                try
                {
                    Assert.IsTrue(url.Url.StartsWith(suffix), "URL did not start with suffix");
                }
                catch
                {
                    Assert.IsTrue(url.Url.StartsWith(suffix.Substring(0, suffix.Length - 1) + "&"));
                }
                Assert.IsTrue(url.Url.EndsWith(prefix), "URL did not end with prefix");

                var length = url.Url.Length - (suffix.Length + prefix.Length);

                if (length == -1)
                {
                    return(string.Empty);
                }

                return(url.Url.Substring(suffix.Length, length));
            }

            return(url.Url);
        }
コード例 #5
0
        public async Task Logic_Client_ConnectWithHttps_Async()
        {
            var server = $"https://{Settings.Server}";

            var localClient = new PrtgClient(server, Settings.UserName, client.PassHash, AuthMode.PassHash);

            //Get the method
            var engine  = localClient.GetInternalField("requestEngine");
            var flags   = BindingFlags.NonPublic | BindingFlags.Instance;
            var methods = engine.GetType().GetMethods(flags).Where(m => m.Name == "ExecuteRequestAsync").ToList();
            var method  = methods.First(m => m.GetParameters().Any(p => p.ParameterType.Name == "JsonFunction"));

            //Get the enum
            var jsonFunctionEnum = typeof(PrtgClient).Assembly.GetType("PrtgAPI.JsonFunction");
            var getPassHash      = Enum.Parse(jsonFunctionEnum, "GetPassHash");

            //Construct the parameters
            var parameters = new Parameters.Parameters
            {
                [Parameter.Password] = Settings.Password
            };

            try
            {
                await(Task <string>) method.Invoke(engine, new[] { getPassHash, parameters, null });
            }
            catch (WebException ex)
            {
                if (ex.Message != "Server rejected HTTPS connection on port 443. Please confirm expected server protocol and port, PRTG Core Service is running and that any SSL certificate is trusted")
                {
                    throw;
                }
            }
        }
コード例 #6
0
        public IParameters Read(TflTransform transform) {
            var parameters = new Parameters.Parameters(_defaultFactory);
            var fields = new Fields(_process.OutputFields(), _process.CalculatedFields.WithoutOutput());

            foreach (var p in transform.Parameters) {

                if (!string.IsNullOrEmpty(p.Field)) {
                    if (fields.FindByParamater(p).Any()) {
                        var field = fields.FindByParamater(p).Last();
                        var name = string.IsNullOrEmpty(p.Name) ? field.Alias : p.Name;
                        parameters.Add(field.Alias, name, null, field.Type);
                    } else {
                        _process.Logger.Warn("A {0} transform references {1}, but I can't find the definition for {1}.\r\nYou may need to define the entity attribute in the parameter element.\r\nOr, set the output attribute to true in the field element. Process transforms rely on fields being output.\r\nOne other possibility is that the participates in a relationship with another field with the same name and Transformalize doesn't know which one you want.  If that's the case, you have to alias one of them.", transform.Method, p.Field);
                        var name = p.Name.Equals(string.Empty) ? p.Field : p.Name;
                        parameters.Add(p.Field, name, p.HasValue() ? p.Value : null, p.Type);
                    }
                } else {
                    var parameter = new Parameter(p.Name, p.Value) {
                        SimpleType = Common.ToSimpleType(p.Type),
                        ValueReferencesField = p.HasValue() && fields.Find(p.Value).Any()
                    };
                    parameters.Add(p.Name, parameter);
                }
            }

            return parameters;
        }
コード例 #7
0
        /// <inheritdoc />
        public void Build(ksDocument3D document3D, Parameters.Parameters parameters)
        {
            var part    = (ksPart)document3D.GetPart((short)Part_Type.pTop_Part);
            var zxPlane = (ksEntity)part.GetDefaultEntity((short)Obj3dType.o3d_planeXOZ);

            var entityOffsetPlane     = (ksEntity)part.NewEntity((short)Obj3dType.o3d_planeOffset);
            var planeOffsetDefinition = (ksPlaneOffsetDefinition)
                                        entityOffsetPlane.GetDefinition();

            planeOffsetDefinition.direction = false;
            planeOffsetDefinition.offset    = parameters[ParameterName.B];
            planeOffsetDefinition.SetPlane(zxPlane);
            entityOffsetPlane.Create();

            var D           = parameters[ParameterName.D];
            var A           = parameters[ParameterName.A];
            var thikness    = parameters[ParameterName.WallThikness];
            var firstSketch = CreateCircleSketch(part, zxPlane,
                                                 D / 2 - thikness / 2);
            var secondSketch = CreateCircleSketch(part, entityOffsetPlane,
                                                  A / 2 - thikness / 2);

            var cutLoft            = (ksEntity)part.NewEntity((short)Obj3dType.o3d_cutLoft);
            var baseLoftDefinition = (ksCutLoftDefinition)cutLoft.GetDefinition();

            baseLoftDefinition.SetLoftParam(false, true, true);
            var sketches = (ksEntityCollection)baseLoftDefinition.Sketchs();

            sketches.Clear();
            sketches.Add(firstSketch);
            sketches.Add(secondSketch);
            cutLoft.Create();
        }
コード例 #8
0
        internal async Task <string> ExecuteRequestAsync(HtmlFunction function, Parameters.Parameters parameters, Func <HttpResponseMessage, Task <string> > responseParser = null)
        {
            var url = GetPrtgUrl(function, parameters);

            var response = await ExecuteRequestAsync(url, responseParser).ConfigureAwait(false);

            return(response);
        }
コード例 #9
0
        internal string ExecuteRequest(HtmlFunction function, Parameters.Parameters parameters, Func <HttpResponseMessage, string> responseParser = null)
        {
            var url = GetPrtgUrl(function, parameters);

            var response = ExecuteRequest(url, responseParser);

            return(response);
        }
コード例 #10
0
        internal async Task <string> ExecuteRequestAsync(HtmlFunction function, Parameters.Parameters parameters)
        {
            var url = new PrtgUrl(prtgClient.Server, prtgClient.UserName, prtgClient.PassHash, function, parameters);

            var response = await ExecuteRequestAsync(url);

            return(response);
        }
コード例 #11
0
        internal XDocument ExecuteRequest(XmlFunction function, Parameters.Parameters parameters)
        {
            var url = new PrtgUrl(prtgClient.Server, prtgClient.UserName, prtgClient.PassHash, function, parameters);

            var response = ExecuteRequest(url);

            return(XDocument.Parse(XDocumentHelpers.SanitizeXml(response)));
        }
コード例 #12
0
        private string GetCustomParameter(Parameters.Parameters parameters, string name)
        {
            var customParameters = ((List <CustomParameter>)parameters.GetParameters()[Parameter.Custom]);

            var targetParameter = customParameters.FirstOrDefault(p => p.Name == name);

            return(targetParameter?.Value?.ToString());
        }
コード例 #13
0
        internal async Task <XDocument> ExecuteRequestAsync(XmlFunction function, Parameters.Parameters parameters)
        {
            var url = new PrtgUrl(prtgClient.Server, prtgClient.UserName, prtgClient.PassHash, function, parameters);

            var response = await ExecuteRequestAsync(url).ConfigureAwait(false);

            return(XDocument.Parse(XDocumentHelpers.SanitizeXml(response)));
        }
コード例 #14
0
        internal string ExecuteRequest(CommandFunction function, Parameters.Parameters parameters, Func <HttpResponseMessage, string> responseParser = null)
        {
            var url = new PrtgUrl(prtgClient.Server, prtgClient.UserName, prtgClient.PassHash, function, parameters);

            var response = ExecuteRequest(url, responseParser);

            return(response);
        }
コード例 #15
0
        internal string ExecuteRequest(HtmlFunction function, Parameters.Parameters parameters)
        {
            var url = new PrtgUrl(prtgClient.Server, prtgClient.UserName, prtgClient.PassHash, function, parameters);

            var response = ExecuteRequest(url);

            return(response);
        }
コード例 #16
0
ファイル: SQLDataSource.cs プロジェクト: toddcoder/Core-code
        public static void AddParametersToCommand(IDbCommand command, object entity, Parameters.Parameters parameters)
        {
            command.Parameters.Clear();

            foreach (var parameter in parameters)
            {
                if (parameter.Type.If(out var parameterType))
                {
                }
                else
                {
                    parameter.DeterminePropertyType(entity);
                    parameterType  = parameter.PropertyType;
                    parameter.Type = parameterType.Some();
                }

                var sqlParameter = parameter.Size
                                   .Map(size => new SqlParameter(parameter.Name, typeToSqlType(parameterType), size))
                                   .DefaultTo(() => new SqlParameter(parameter.Name, typeToSqlType(parameterType)));

                if (parameter.Output)
                {
                    sqlParameter.Direction = ParameterDirection.Output;
                }
                else if (parameter.Value.If(out var str))
                {
                    if (parameterType == typeof(string))
                    {
                        sqlParameter.Value = str;
                    }
                    else
                    {
                        var obj = str.ToObject().Required($"Couldn't convert {str}");
                        sqlParameter.Value = ChangeType(obj, parameterType);
                    }
                }
                else
                {
                    var value = parameter.GetValue(entity).Required($"Parameter {parameter.Name}'s value couldn't be determined");
                    if (value is null && parameter.Default.If(out var defaultValue))
                    {
                        value = parameter.Type.Map(t => ChangeType(defaultValue, t)).DefaultTo(() => defaultValue);
                    }

                    var type           = value?.GetType();
                    var underlyingType = type?.UnderlyingTypeOf() ?? none <Type>();
                    if (underlyingType.IsSome)
                    {
                        value = type.InvokeMember("Value", BindingFlags.GetProperty, null, value, new object[0]);
                    }

                    sqlParameter.Value = value;
                }

                command.Parameters.Add(sqlParameter);
            }
        }
コード例 #17
0
        internal async Task <XDocument> ExecuteRequestAsync(XmlFunction function, Parameters.Parameters parameters, Action <string> responseValidator = null)
        {
            var url = GetPrtgUrl(function, parameters);

            var response = await ExecuteRequestAsync(url).ConfigureAwait(false);

            responseValidator?.Invoke(response);

            return(XDocumentHelpers.SanitizeXml(response));
        }
コード例 #18
0
        internal XDocument ExecuteRequest(XmlFunction function, Parameters.Parameters parameters, Action <string> responseValidator = null)
        {
            var url = GetPrtgUrl(function, parameters);

            var response = ExecuteRequest(url);

            responseValidator?.Invoke(response);

            return(XDocumentHelpers.SanitizeXml(response));
        }
コード例 #19
0
        public void Parameters_ReplacesCounterpart()
        {
            var parameters = new Parameters.Parameters
            {
                [Parameter.Password] = "password",
                [Parameter.PassHash] = "passhash"
            };

            Assert.AreEqual(1, parameters.GetParameters().Keys.Count);
            Assert.AreEqual(parameters[Parameter.PassHash], "passhash");
            Assert.AreEqual(null, parameters[Parameter.Password]);
        }
コード例 #20
0
ファイル: RequestParser.cs プロジェクト: mrwulf/PrtgAPI
        internal static Parameters.Parameters GetInternalNewObjectParameters(int deviceId, NewObjectParameters parameters)
        {
            var newParams = new Parameters.Parameters();

            foreach (var param in parameters.GetParameters())
            {
                newParams[param.Key] = param.Value;
            }

            newParams[Parameter.Id] = deviceId;

            return(newParams);
        }
コード例 #21
0
        /// <inheritdoc />
        public void Build(ksDocument3D document3D, Parameters.Parameters parameters)
        {
            var part = (ksPart)document3D.GetPart((short)Part_Type.pTop_Part);

            var entityRotated =
                (ksEntity)part.NewEntity((short)Obj3dType.o3d_baseRotated);
            var entityRotatedDefinition =
                (ksBaseRotatedDefinition)entityRotated.GetDefinition();

            entityRotatedDefinition.directionType = 0;
            entityRotatedDefinition.SetSideParam(true, 360);
            entityRotatedDefinition.SetSketch(part.GetObjectByName("Эскиз:1", 5, false, false));
            entityRotated.Create();
        }
コード例 #22
0
        public IParameters Read(TflTransform transform) {
            var parameters = new Parameters.Parameters(_defaultFactory);

            foreach (var p in transform.Parameters) {
                if (string.IsNullOrEmpty(p.Name)) {
                    return new Parameters.Parameters(_defaultFactory);
                }

                var value = p.HasValue() ? p.Value : null;
                var alias = p.HasValue() ? p.Name : p.Field;
                parameters.Add(alias, p.Name, value, p.Type);
            }

            return parameters;
        }
コード例 #23
0
        private void SetAndGet(Parameters.Parameters parameters, string property, object value)
        {
            var prop = parameters.GetType().GetProperty(property);

            if (prop == null)
            {
                throw new ArgumentException($"Could not find property '{property}'");
            }

            prop.SetValue(parameters, value);

            var val = prop.GetValue(parameters);

            Assert.AreEqual(value, val);
        }
コード例 #24
0
ファイル: SQLSetup.cs プロジェクト: toddcoder/Core-code
        public SqlSetup(ISetupObject setupObject)
        {
            ConnectionString = new SqlConnectionString(setupObject.ConnectionString, 30.Seconds());
            CommandText      = setupObject.CommandSourceType switch
            {
                CommandSourceType.File => ((FileName)setupObject.Command).Text,
                _ => setupObject.Command
            };

            CommandTimeout = setupObject.CommandTimeout;
            Parameters     = new Parameters.Parameters(setupObject.Parameters());
            Fields         = new Fields.Fields(setupObject.Fields());

            attributes = new StringHash <string>(true);
            loadAttributes(setupObject.Attributes);
        }
コード例 #25
0
        /// <inheritdoc />
        public void Build(ksDocument3D document3D, Parameters.Parameters parameters)
        {
            var extendFeatureParameter = parameters.GetExtendFeatureValue();
            var part = (ksPart)document3D.GetPart((short)Part_Type.pTop_Part);

            switch (extendFeatureParameter.Name)
            {
            case ParameterName.Chamfer:
                CreateChamfer(part, extendFeatureParameter.Value);
                break;

            case ParameterName.Fillet:
                CreateFillet(part, extendFeatureParameter.Value);
                break;
            }
        }
コード例 #26
0
        public Template(Process process, TflTemplate element, Contents contents) {

            Parameters = new Parameters.Parameters(new DefaultFactory(process.Logger));
            Cache = element.Cache;
            Enabled = element.Enabled;
            Engine = element.Engine;
            Name = element.Name;
            ContentType = element.ContentType.Equals("raw") ? Encoding.Raw : Encoding.Html;
            Contents = contents;

            _process = process;

            _renderedTemplateFile = GetFileName(RENDERED_TEMPLATE_CACHE_FOLDER);
            _renderedTemplateContentExists = TryRead(_renderedTemplateFile, out _renderedTemplateContent);

            _templateFile = GetFileName(TEMPLATE_CACHE_FOLDER);
            _templateContentExists = TryRead(_templateFile, out _templateContent);

        }
コード例 #27
0
        public override void SetParameters(Parameters.Parameters value)
        {
            var parameters = (ReportPreviewParameter)value;

            _reportPath = parameters.ReportPath;
            _parameters = parameters.Parameters;
            _document   = new ReportDocument();
            _document.Load(_reportPath);
            _document.DataSourceConnections[0].SetConnection(ConfigManager.GetDbServer(), ConfigManager.GetDbName(), true);

            ParameterFields paramFields = new ParameterFields();

            foreach (KeyValuePair <string, object> item in _parameters)
            {
                ParameterField pfItemYr = new ParameterField
                {
                    ParameterFieldName = item.Key                     //Employee ID is Crystal Report Parameter name.
                };

                ParameterDiscreteValue dcItemYr = new ParameterDiscreteValue
                {
                    Value = item.Value
                };

                pfItemYr.CurrentValues.Add(dcItemYr);

                paramFields.Add(pfItemYr);



                //_document.SetParameterValue(item.Key, item.Value);
            }
            crystalReportViewer1.ParameterFieldInfo = paramFields;
            crystalReportViewer1.ReportSource       = _document;
            //crystalReportViewer1.RefreshReport();
            //crystalReportViewer1.Refresh();
        }
コード例 #28
0
ファイル: SQLSetup.cs プロジェクト: toddcoder/Core-code
        public SqlSetup(Group setupGroup)
        {
            var connectionGroup = setupGroup.RequireGroup("connection").ForceValue();
            var connection      = new Connection(connectionGroup);

            ConnectionString = new SqlConnectionString(connection);

            var commandGroup = setupGroup.RequireGroup("command").ForceValue();
            var command      = new Command(commandGroup);

            CommandText    = command.Text;
            CommandTimeout = command.CommandTimeout;

            var parametersGroup = setupGroup.GetGroup("parameters");

            Parameters = new Parameters.Parameters(parametersGroup);

            var fieldsGroup = setupGroup.GetGroup("fields");

            Fields = new Fields.Fields(fieldsGroup);

            attributes = new StringHash <string>(true);
            loadAttributes(setupGroup.GetGroup("attributes"));
        }
コード例 #29
0
        public override void AddParameters(object entity, Parameters.Parameters parameters)
        {
            Command.Required("Command has not be set").Parameters.Clear();

            foreach (var parameter in parameters)
            {
                if (parameter.Type.If(out var parameterType))
                {
                }
                else
                {
                    parameter.DeterminePropertyType(entity);
                    parameterType  = parameter.PropertyType;
                    parameter.Type = parameterType.Some();
                }

                var oledbParameter = parameter.Size
                                     .Map(size => new OleDbParameter(parameter.Name, typeToOleDbType(parameterType), size))
                                     .DefaultTo(() => new OleDbParameter(parameter.Name, typeToDBType(parameterType)));

                if (parameter.Output)
                {
                    oledbParameter.Direction = ParameterDirection.Output;
                }
                else if (parameter.Value.If(out var str))
                {
                    if (parameterType == typeof(string))
                    {
                        oledbParameter.Value = str;
                    }
                    else
                    {
                        var obj = str.ToObject().Required($"Couldn't convert {str}");
                        oledbParameter.Value = ChangeType(obj, parameterType);
                    }
                }
                else
                {
                    var value = parameter.GetValue(entity).Required($"Parameter {parameter.Name}'s value couldn't be determined");
                    if (value is null && parameter.Default.If(out var defaultValue))
                    {
                        value = parameter.Type.Map(t => ChangeType(defaultValue, t)).DefaultTo(() => defaultValue);
                    }

                    var type           = value?.GetType();
                    var underlyingType = type?.UnderlyingTypeOf() ?? none <Type>();
                    if (underlyingType.IsSome)
                    {
                        value = type.InvokeMember("Value", BindingFlags.GetProperty, null, value, new object[0]);
                    }

                    oledbParameter.Value = value;
                }

                if (Command.If(out var command))
                {
                    command.Parameters.Add(oledbParameter);
                }
                else
                {
                    throw "Command not initialized".Throws();
                }
            }
        }
コード例 #30
0
ファイル: Process.cs プロジェクト: modulexcite/Transformalize
 //constructor
 public Process(string name, ILogger logger) {
     View = Common.DefaultValue;
     Star = Common.DefaultValue;
     Connections = new Connections();
     PipelineThreading = PipelineThreading.MultiThreaded;
     Enabled = true;
     TransformOperations = new List<IOperation>();
     Parallel = true;
     LogRows = 10000;
     Complete = false;
     Logger = logger;
     Name = name;
     DataSets = new Dictionary<string, List<Row>>();
     Parameters = new Parameters.Parameters(new DefaultFactory(logger));
     Runner = new NullRunner();
 }
コード例 #31
0
        internal XElement ExecuteRequest(HtmlFunction function, Parameters.Parameters parameters, Func <string, XElement> xmlParser)
        {
            var response = ExecuteRequest(function, parameters);

            return(xmlParser(response));
        }
コード例 #32
0
        internal async Task <XElement> ExecuteRequestAsync(HtmlFunction function, Parameters.Parameters parameters, Func <string, XElement> xmlParser)
        {
            var response = await ExecuteRequestAsync(function, parameters).ConfigureAwait(false);

            return(xmlParser(response));
        }
コード例 #33
0
 public override void SetParameters(Parameters.Parameters value)
 {
     _pacient = ((NovyReceptParameters)value).Pacient;
 }
コード例 #34
0
        internal async Task ExecuteRequestAsync(CommandFunction function, Parameters.Parameters parameters)
        {
            var url = new PrtgUrl(prtgClient.Server, prtgClient.UserName, prtgClient.PassHash, function, parameters);

            var response = await ExecuteRequestAsync(url).ConfigureAwait(false);
        }
コード例 #35
0
ファイル: TextDataSource.cs プロジェクト: toddcoder/Core-code
 public override void AddParameters(object entity, Parameters.Parameters parameters)
 {
     SqlDataSource.AddParametersToCommand(Command.Required("Command hasn't been set"), entity, parameters);
 }