QueueJob - model and DB migration
This commit is contained in:
@@ -26,7 +26,7 @@ public class LayersController : Controller
|
||||
GoogleSheetsHelper googleSheetsHelper,
|
||||
GoogleDriveHelper googleDriveHelper,
|
||||
IConfiguration configuration
|
||||
)
|
||||
)
|
||||
{
|
||||
_db = db;
|
||||
if (googleSheetsHelper.Service is not null)
|
||||
@@ -182,6 +182,83 @@ public class LayersController : Controller
|
||||
return Ok(true);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("AutoImportWithQueue/{apiKey}")]
|
||||
[AllowAnonymous]
|
||||
public async Task<IActionResult> AutoImportWithQueue(string apiKey)
|
||||
{
|
||||
if (Request.Host.Value != _configuration["apiLocalUrl"] || apiKey != _configuration["apiKey"])
|
||||
{
|
||||
return Unauthorized();
|
||||
}
|
||||
|
||||
var importWorkerLayers = _db.Layers
|
||||
.Include(x => x.Records)
|
||||
.Where(x =>
|
||||
x.Records!.Any(y => y.Code == "Type" && y.Desc1 == "ImportWorker") &&
|
||||
x.Records!.Any(y => y.Code == "IsEnabled" && y.Desc1 == "True")
|
||||
)
|
||||
.OrderBy(x => x.CreatedAt)
|
||||
.ToList();
|
||||
|
||||
if (importWorkerLayers.Count == 0)
|
||||
{
|
||||
_logsController.AddEntry(new LogEntry
|
||||
{
|
||||
Title = "No Layers to import.",
|
||||
Type = LogEntryType.Info,
|
||||
LogType = LogType.Queue,
|
||||
CreatedAt = DateTime.UtcNow
|
||||
});
|
||||
return Ok();
|
||||
}
|
||||
|
||||
foreach (var importWorker in importWorkerLayers)
|
||||
{
|
||||
try
|
||||
{
|
||||
/*
|
||||
await _queue.AddJob(new QueueJob
|
||||
{
|
||||
LayerId = importWorker.Id,
|
||||
Type = JobType.ImportWorker,
|
||||
});
|
||||
*/
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logsController.AddEntry(new LogEntry
|
||||
{
|
||||
Title = $"Error while adding job into queue (import): {importWorker.Name}, {importWorker.Id}",
|
||||
Type = LogEntryType.Error,
|
||||
LogType = LogType.Queue,
|
||||
Message = e.ToString(),
|
||||
CreatedAt = DateTime.UtcNow
|
||||
});
|
||||
}
|
||||
}
|
||||
return Ok();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("ProcessQueue/{apiKey}")]
|
||||
[AllowAnonymous]
|
||||
public async Task<IActionResult> ProcessQueue(string apiKey)
|
||||
{
|
||||
/*
|
||||
var allJobs = await _queue.GetJobs();
|
||||
var importJobs = allJobs
|
||||
.Where(x => x.Type == JobType.ImportWorker && x.Status == JobStatus.New);
|
||||
|
||||
foreach (var job in importJobs)
|
||||
{
|
||||
job.Attempts = job.Attempts + 1;
|
||||
//await _queue.UpdateJob(job);
|
||||
}
|
||||
*/
|
||||
return Ok();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("AutoImport/{apiKey}")]
|
||||
[AllowAnonymous]
|
||||
@@ -200,8 +277,8 @@ public class LayersController : Controller
|
||||
var importWorkerLayers = _db.Layers
|
||||
.Include(x => x.Records)
|
||||
.Where(x =>
|
||||
x.Records!.Any(y => y.Code == "Type" && y.Desc1 == "ImportWorker") &&
|
||||
x.Records!.Any(y => y.Code == "IsEnabled" && y.Desc1 == "True")
|
||||
x.Records!.Any(y => y.Code == "Type" && y.Desc1 == "ImportWorker") &&
|
||||
x.Records!.Any(y => y.Code == "IsEnabled" && y.Desc1 == "True")
|
||||
)
|
||||
.OrderBy(x => x.CreatedAt)
|
||||
.ToList();
|
||||
@@ -231,7 +308,7 @@ public class LayersController : Controller
|
||||
var importer = new MorskaFk2Importer(_db, _googleSheetValues, this);
|
||||
importer.Import(importWorker);
|
||||
Thread.Sleep(5000); // be aware of GSheet API quota
|
||||
|
||||
|
||||
_logsController.AddEntry(new LogEntry
|
||||
{
|
||||
Title = $"{importWorker.Name}, {importWorker.Id}",
|
||||
@@ -665,9 +742,10 @@ public class LayersController : Controller
|
||||
|
||||
if (!double.TryParse(data[1][i].ToString(), CultureInfo.GetCultureInfo("pl-PL"),
|
||||
out var value) ||
|
||||
double.Abs((double)(record.Value1-value)!) < 0.01) continue;
|
||||
double.Abs((double)(record.Value1 - value)!) < 0.01) continue;
|
||||
isUpToDate = false;
|
||||
}
|
||||
|
||||
foreach (var record in newestLayer.Records!)
|
||||
{
|
||||
if (data[0].Contains(record.Code))
|
||||
@@ -678,6 +756,7 @@ public class LayersController : Controller
|
||||
WriteToConsole($"Code not found in GoogleSheet: {record.Code}");
|
||||
isUpToDate = false;
|
||||
}
|
||||
|
||||
return isUpToDate;
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,7 @@ public class LogsController : Controller
|
||||
LogType.Process => "Process",
|
||||
LogType.PowerBi => "PowerBIAccess",
|
||||
LogType.DataInbox => "DataInbox",
|
||||
LogType.Queue => "Queue",
|
||||
_ => "Other"
|
||||
};
|
||||
var response = _googleSheetValues.Get(_configuration["appLogsFile"], $"{type}!A:A").Execute();
|
||||
|
||||
Reference in New Issue
Block a user