public async Task <ActionResult> Invoke([FromBody] UpdateLayerDto dto) { await _validator.Validate(dto); var status = await _statusTable.GetStatus(WorkspaceId, LayerId); if (!status.HasValue) { return(NotFound()); } if (dto.DataLocation != null) { // in other cases we will have to create a new conversion job var job = new ConversionJobData { LayerId = LayerId, WorkspaceId = WorkspaceId, LayerName = dto.Name, DataLocation = dto.DataLocation, Description = dto.Description }; await _gdConversionQueue.Queue(job); await _statusTable.UpdateStatus(WorkspaceId, LayerId, LayerStatus.Processing); } return(Accepted(new LayerStatusDto { Id = LayerId, Status = LayerStatus.Processing })); }
public async Task <ActionResult> Invoke([FromBody] CreateLayerDto dto) { var id = Guid.NewGuid().ToString(); ConversionJobData job = new ConversionJobData { LayerId = id, WorkspaceId = WorkspaceId, LayerName = dto.Name, DataLocation = dto.DataLocation, Description = dto.Description }; await _gdConversionQueue.Queue(job); await _statusTable.UpdateStatus(WorkspaceId, id, LayerStatus.Processing); if (dto.Styles != null) { await _layerStyleService.Update(WorkspaceId, id, dto.Styles); } return(Accepted(new LayerStatusDto { Id = id, Status = LayerStatus.Processing })); }
public async Task <QueuedConversionJob> Queue(ConversionJobData job) { var queued = new CloudQueueMessage(JsonConvert.SerializeObject(job)); await _queue.AddMessageAsync(queued); return(new QueuedConversionJob { Id = queued.Id, PopReceipt = queued.PopReceipt, Content = JsonConvert.DeserializeObject <ConversionJobData>(queued.AsString), // todo: verify if this asString works as expected }); }
public Task <QueuedConversionJob> Queue(ConversionJobData job) { System.Diagnostics.Debug.WriteLine($"Queueing job to {_queueDatabase.DataSource} (Enter)"); var id = Guid.NewGuid().ToString(); using (var addMsgCmd = new SqliteCommand()) { addMsgCmd.Connection = _queueDatabase; addMsgCmd.CommandText = "INSERT INTO Queue(ID, PopCount, Content) VALUES($QueueId, 0, $content)"; addMsgCmd.Parameters.AddWithValue("$content", JsonConvert.SerializeObject(job)); addMsgCmd.Parameters.AddWithValue("$QueueId", id); addMsgCmd.ExecuteScalar(); } System.Diagnostics.Debug.WriteLine($"Queueing job to {_queueDatabase.DataSource} (Exit)"); return(Task.FromResult(new QueuedConversionJob { Id = id, PopReceipt = null, Content = job })); }