Esempio n. 1
0
        protected override void Handle(SensorLifetimeRequest request)
        {
            RegistryResponse regResponse = LocalRegistry
                                           .getSensorRecord(request.NewEvent.SensorName);

            if (request.NewEvent.lifeStage == LifetimeStages.Startup)
            {
                if (regResponse.status == RegistryStatus.noSuchRecord)
                {
                    LocalRegistry.addSensorRecord(request.NewEvent.SensorName,
                                                  request.NewEvent.IpAddress,
                                                  request.NewEvent.ListeningPort,
                                                  request.NewEvent.LastReadIndex);
                }
                else
                {
                    logger.LogMessage("Startup event for ALREADY registered sensor ... ");
                }
            }
            else
            {
                // shutdown event received

                if (regResponse.status == RegistryStatus.ok)
                {
                    LocalRegistry.removeSensorRecord(request.NewEvent.SensorName);
                }
                else
                {
                    logger.LogMessage("Shutdown event for NOT registered sensor ... ");
                }
            }
        }
Esempio n. 2
0
        public async Task <RegistryResponse> GetRegistryByID(int id)
        {
            CsvParserOptions             csvParserOptions = new CsvParserOptions(false, ',');
            CsvReaderOptions             csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            RegistryMapping              csvMapper        = new RegistryMapping();
            CsvParser <RegistryServices> csvParser        =
                new CsvParser <RegistryServices>(csvParserOptions, csvMapper);
            RegistryResponse resultList = null;
            var list = new List <RegistryResponse>();

            try
            {
                string fileName = $"Doc//RegistryServices.csv";
                var    result   = csvParser
                                  .ReadFromFile(fileName, Encoding.UTF8).Skip(1)
                                  .ToList();

                result.ForEach(x =>
                {
                    list.Add(new RegistryResponse
                    {
                        Id            = Convert.ToInt32(x.Result.IdAgreement.ToString()),
                        NombreEmpresa = x.Result.NameEnterprise.ToString(),
                        EndpointUrl   = new Uri($"http://{x.Result.EndpointUrl}"),
                        Formato       = x.Result.FormatTransformation.ToString()
                    });
                });
            }
            catch (Exception ex)
            {
                var error = ex.ToString();
            }
            return(list.Where(x => x.Id.Equals(id)).FirstOrDefault());
        }
Esempio n. 3
0
        public IActionResult getSensors()
        {
            RegistryResponse response = this.sensorRegistry.getAllSensors();

            if (response.status == RegistryStatus.ok)
            {
                return(new OkObjectResult(response.listData));
            }

            return(new BadRequestObjectResult("Registry response: " + response.status.ToString()));
        }
Esempio n. 4
0
        public IActionResult getAddress([FromQuery] string sensorName)
        {
            RegistryResponse response = this.sensorRegistry.getSensorRecord(sensorName);

            if (response.status == RegistryStatus.ok)
            {
                return(new OkObjectResult(response.singleData.Address));
            }

            return(new BadRequestObjectResult("Registry response: " + response.status.ToString()));
        }
Esempio n. 5
0
        public IActionResult delete([FromQuery] string sensorName)
        {
            Console.WriteLine($"Sensor removed: {sensorName} ... ");
            RegistryResponse response = this.sensorRegistry.removeSensorRecord(sensorName);

            if (response.status == RegistryStatus.ok)
            {
                return(new OkObjectResult(response.singleData));
            }

            return(new BadRequestObjectResult("Registry response: " + response.status.ToString()));
        }
Esempio n. 6
0
        public IActionResult updateSensor([FromBody] SensorDataArg reqArg)
        {
            ServiceConfiguration conf = ServiceConfiguration.Instance;

            RegistryResponse response = sensorRegistry.updateSensorRecord(reqArg.SensorName,
                                                                          reqArg.IpAddress,
                                                                          reqArg.PortNum,
                                                                          reqArg.LastReadIndex);

            if (response.status == RegistryStatus.ok)
            {
                return(new OkObjectResult(response.singleData));
            }

            return(new BadRequestObjectResult("Registry response: " + response.status.ToString()));
        }
Esempio n. 7
0
        public IActionResult postSensor([FromBody] SensorDataArg reqArg)
        {
            Console.WriteLine($"Sensor add trough post request: {reqArg.SensorName}");

            RegistryResponse response = sensorRegistry.addSensorRecord(reqArg.SensorName,
                                                                       reqArg.IpAddress,
                                                                       reqArg.PortNum,
                                                                       reqArg.LastReadIndex);

            if (response.status == RegistryStatus.ok)
            {
                return(new OkObjectResult(response.singleData));
            }

            return(new BadRequestObjectResult("Registry response: " + response.status.ToString()));
        }
Esempio n. 8
0
        protected override async Task Handle(
            SensorUpdateRequest request,
            CancellationToken cancellationToken)
        {
            RegistryResponse regResponse = LocalRegistry
                                           .getSensorRecord(request.NewEvent.SensorName);

            if (regResponse.status == RegistryStatus.ok)
            {
                LocalRegistry.updateSensorRecord(
                    request.NewEvent.SensorName,
                    request.NewEvent.IpAddress,
                    request.NewEvent.ListeningPort,
                    request.NewEvent.LastReadIndex);
            }
            else if (regResponse.status == RegistryStatus.noSuchRecord)
            {
                // we received event from sensor that is still not registered

                // this request will check if that sensor is still alive
                // and return it's info if it is alive

                var result = await mediator.Send(new CheckSensorInfoRequest(
                                                     request.NewEvent.SensorName,
                                                     request.NewEvent.IpAddress,
                                                     request.NewEvent.ListeningPort));

                if (result != null)
                {
                    LocalRegistry.addSensorRecord(
                        result.SensorName,
                        result.IpAddress,
                        result.ListeningPort,
                        result.LastReadIndex);
                }
            }

            return;
        }
Esempio n. 9
0
        private RegistryResponse Build_Test01()
        {
            var request = new RegistryResponse
            {
                RequestId = "urn:xdskit:com:c7ptmx37tfbcwy8ky7a",
                Status    = ResponseStatus.PartialSuccess,
                Slots     = new List <Slot>
                {
                    new Slot
                    {
                        Name   = "creationTime",
                        Type   = "urn:xdskit:com:c7ptmx37tfbcwy8ky7b",
                        Values = new List <string> {
                            "2015-01-01"
                        }
                    },
                    new Slot
                    {
                        Name   = "languageCode",
                        Type   = "urn:xdskit:com:c7ptmx37tfbcwy8ky7c",
                        Values = new List <string> {
                            "en-US", "en-GB", "en-AU"
                        }
                    },
                    new Slot
                    {
                        Name   = "serviceStartTime",
                        Values = new List <string> {
                            "2015-01-01T09:00:00"
                        }
                    },
                    new Slot
                    {
                        Name   = "serviceStopTime",
                        Values = new List <string> {
                            "2015-01-01T21:00:00"
                        }
                    }
                },
                RegistryErrors = new RegistryErrorList
                {
                    HighestSeverity = ErrorSeverity.Error,
                    Errors          = new List <RegistryError>
                    {
                        new RegistryError
                        {
                            ErrorCode   = "ObjectRefIdNotFound",
                            CodeContext =
                                "A local object refererence (urn:xdskit:com:c7ptmx37tfbcwy8ky70) was not found.",
                            Location = "Line 1022, Column 7",
                            Severity = ErrorSeverity.Error
                        },
                        new RegistryError
                        {
                            ErrorCode   = "RegistryError",
                            CodeContext = "RegistryPackage has too many items. Performance degraded",
                            Severity    = ErrorSeverity.Warning
                        }
                    }
                }
            };

            return(request);
        }