public async Task <int> AddChildScans(AddChildScansModel model) { try { return(await RestClient.Instance.PostAsync <int>($"{KamajiScanActions.AddChildScans}", model)); } catch (Exception ex) { await OfflineData.From(model, nameof(EditScan), ex).SaveAsync(); return(-1); } }
internal async Task<int> AddChildScans(AddChildScansModel model) { int ret = 0; if (model.IsModelValid()) { IScanModel parent = await this.GetScanBy(model.Parent.ResourceName, model.Parent.Asset); List<IScanModel> childList = new List<IScanModel>(); foreach (ScanModel child in model.Childs) { if (model.IsModelValid()) { IScanModel entity = this.Db.ModelFactory.CreateScanModel(); entity.Asset = child.Asset; entity.CreatedDate = await this.Db.GetDbDateTime(); entity.Enabled = true; entity.Period = parent.Period; entity.State = ScanState.NotStarted; entity.MaxErrorLimit = parent.MaxErrorLimit; entity.MaxOperationLimit = parent.MaxOperationLimit; entity.Type = parent.Type; entity.ScanResourceId = parent.ScanResourceId; entity.SelectedNodeId = parent.SelectedNodeId; entity.SaveType = parent.SaveType; entity.ParentId = parent.ScanId; childList.Add(entity); } } if (childList.Any()) { foreach (IScanModel child in childList) { try { await this.Db.Scans.Save(child); } catch (Exception ex) { await Utility.CreateLogger(nameof(ScanWorks), nameof(AddChildScans)).Code(14).Error(ex).SaveAsync(); } } // ret = await this.Db.Scans.BatchSave(childList); } } return ret; }
private async Task HandleOfflineData(string nodeAddress) { ScanWorks scan = new ScanWorks(this.Db); var offlineDataList = await NodesClient.Instance.GetOfflineData(nodeAddress); if (!offlineDataList.IsEmptyList()) { foreach (var offline in offlineDataList) { if (!String.IsNullOrEmpty(offline.Operation) && !String.IsNullOrEmpty(offline.Json)) { try { switch (offline.Operation) { case "SaveScanInstance": ScanInstanceModel sim = JsonConvert.DeserializeObject <ScanInstanceModel>(offline.Json); await scan.SaveScanInstance(sim); break; case "SaveScanInstanceOrEditResult": ScanInstanceModel sim2 = JsonConvert.DeserializeObject <ScanInstanceModel>(offline.Json); await scan.SaveScanInstanceOrEditResult(sim2); break; case "EditScan": //Burası kuyruğa eklendiği için iptal edildçi. //ScanModel sm = JsonConvert.DeserializeObject<ScanModel>(offline.Json); // await scan.EditScan(sm); break; case "AddChildScans": AddChildScansModel asm = JsonConvert.DeserializeObject <AddChildScansModel>(offline.Json); await scan.AddChildScans(asm); break; } } catch (Exception ex) { var logger = Utility.CreateLogger(nameof(HandleOfflineData), nameof(HandleOfflineData)).Code(468); await logger.Error(ex.FindRoot() ?? ex).SaveAsync(); ConsoleObserver.Instance.Notify(nameof(HandleOfflineData), nameof(HandleOfflineData), ex); } } try { if (offline.Id > 0) { await NodesClient.Instance.DeleteOfflineData(nodeAddress, offline.Id); } } catch (Exception ex) { var logger = Utility.CreateLogger(nameof(HandleOfflineData), nameof(HandleOfflineData)).Code(467); await logger.Error(ex.FindRoot() ?? ex).SaveAsync(); ConsoleObserver.Instance.Notify(nameof(HandleOfflineData), nameof(HandleOfflineData), ex); } } } }
public Task <IActionResult> AddChildScans(AddChildScansModel model) => this.ResultAsync(() => new ScanWorks(this.Db).AddChildScans(model));