Пример #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();
 }
        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;
                }
            }
        }
        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
        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
        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();
        }
        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
        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
        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
 //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
 public override void AddParameters(object entity, Parameters.Parameters parameters)
 {
     SqlDataSource.AddParametersToCommand(Command.Required("Command hasn't been set"), entity, parameters);
 }