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)); }
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)); }
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))); }
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)); }
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)); }