Beispiel #1
0
        public async Task <IActionResult> GetDevices(DevicesParametersModel parameters)
        {
            if (parameters.Limit < Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit)
            {
                return(await Error(HttpStatusCode.BadRequest, "limit", "Invalid limit parameter"));
            }

            if (parameters.Page < Configurations.DefaultPageValue)
            {
                return(await Error(HttpStatusCode.BadRequest, "page", "Invalid request parameters"));
            }

            var devices = _deviceApiService.GetDevices(parameters.Ids, parameters.Limit, parameters.Page,
                                                       parameters.SinceId, parameters.CreatedAtMin, parameters.CreatedAtMax, parameters.Status)
                          .Where(d => TenantMappingService.Authorize(d));

            IList <DeviceDto> devicesAsDtos = devices.Select(device => _dtoHelper.PrepareDeviceDto(device)).ToList();

            var devicesRootObject = new DevicesRootObject {
                Devices = devicesAsDtos
            };

            var json = JsonFieldsSerializer.Serialize(devicesRootObject, parameters.Fields);

            return(new RawJsonActionResult(json));
        }
Beispiel #2
0
        public async Task <IActionResult> CreateDevice([ModelBinder(typeof(JsonModelBinder <DeviceDto>))] Delta <DeviceDto> deviceDelta)
        {
            if (!ModelState.IsValid)
            {
                return(await Error());
            }

            var newDevice = _factory.Initialize();

            deviceDelta.Merge(newDevice);

            await _deviceService.InsertDevice(newDevice);

            await UpdateTenantMappings(newDevice, deviceDelta.Dto.TenantIds);

            //activity log
            await UserActivityService.InsertActivityAsync("AddNewDevice", $"Added a new device (ID = {newDevice.Id})", newDevice);

            var newDeviceDto = _dtoHelper.PrepareDeviceDto(newDevice);

            var devicesRootObject = new DevicesRootObject();

            devicesRootObject.Devices.Add(newDeviceDto);

            var json = JsonFieldsSerializer.Serialize(devicesRootObject, string.Empty);

            return(new RawJsonActionResult(json));
        }
Beispiel #3
0
        protected async Task <IActionResult> RootObjectResult(IList <DeviceDto> entities, string fields)
        {
            var rootObj = new DevicesRootObject {
                Devices = entities
            };

            var json = JsonFieldsSerializer.Serialize(rootObj, fields);

            return(await Task.FromResult <IActionResult>(new RawJsonActionResult(json)));
        }
Beispiel #4
0
        public async Task <IActionResult> UpdateDeviceByAttributes([FromQuery] int id, [FromQuery] string serialno, [ModelBinder(typeof(JsonModelBinder <DeviceDto>))] Delta <DeviceDto> deviceDelta)
        {
            if (!ModelState.IsValid)
            {
                return(await Error());
            }

            Device currentDevice;

            if (id > 0)
            {
                currentDevice = _deviceApiService.GetDeviceById(id);
            }
            else if (!string.IsNullOrEmpty(serialno))
            {
                currentDevice = _deviceApiService.GetDeviceBySerialNo(serialno);
            }
            else
            {
                return(await Error(HttpStatusCode.BadRequest, "invalid", "invalid id or serial_no"));
            }

            if (currentDevice == null)
            {
                return(await Error(HttpStatusCode.NotFound, "device", "not found"));
            }

            deviceDelta.Merge(currentDevice);
            currentDevice.ModifiedOnUtc = DateTime.UtcNow;

            _deviceService.UpdateDevice(currentDevice);

            await UpdateTenantMappings(currentDevice, deviceDelta.Dto.TenantIds);

            await UserActivityService.InsertActivityAsync("EditDevice",
                                                          $"Edited a device (ID = {currentDevice.Id}, SN = {currentDevice.SerialNo})", currentDevice);

            var deviceDto = _dtoHelper.PrepareDeviceDto(currentDevice);

            var devicesRootObject = new DevicesRootObject();

            devicesRootObject.Devices.Add(deviceDto);

            var json = JsonFieldsSerializer.Serialize(devicesRootObject, string.Empty);

            return(new RawJsonActionResult(json));
        }
Beispiel #5
0
        public async Task <IActionResult> GetDeviceById(int id, string fields = "")
        {
            if (id <= 0)
            {
                return(await Error(HttpStatusCode.BadRequest, "id", "invalid id"));
            }

            var device = _deviceApiService.GetDeviceById(id);

            if (device == null)
            {
                return(await Error(HttpStatusCode.NotFound, "device", "not found"));
            }

            var deviceDto = _dtoHelper.PrepareDeviceDto(device);

            var devicesRootObject = new DevicesRootObject();

            devicesRootObject.Devices.Add(deviceDto);

            var json = JsonFieldsSerializer.Serialize(devicesRootObject, fields);

            return(new RawJsonActionResult(json));
        }