Example #1
0
 public IActionResult Post([FromBody] ArchiveTaskDescriptor descriptor)
 {
     if (_taskRunner.TasksView.Any(t => t.IsRunning))
     {
         descriptor.SetError("Операция по архивированию дневника уже выполняется");
         return(Json(descriptor));
     }
     _taskRunner.AddTask(descriptor);
     return(Json(descriptor));
 }
Example #2
0
        public DiaryArchiver GetArchiver(ArchiveTaskDescriptor descriptor)
        {
            var cfg    = ConfigureLog(descriptor.WorkingDir);
            var logger = _serviceProvider.GetRequiredService <ILogger <DiaryArchiver> >();

            try
            {
                EnsureDirs(descriptor);
                var context = GetContext(descriptor);
                descriptor.Archiver = new DiaryArchiver(logger, descriptor, context);
                descriptor.Archiver.WorkFinished += (s, e) =>
                {
                    UnsetLog(cfg);
                };
                return(descriptor.Archiver);
            }
            catch (Exception e)
            {
                UnsetLog(cfg);
                descriptor.SetError(e.Message);
                return(null);
            }
        }