public async Task Test_OverrideEventRequest_RemoveMultipleOverridesForSingleAsset() { AddApplicationGridRouting(); var refDate = DateTime.UtcNow; var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var bulldozer = siteModel.Machines.Locate("Bulldozer", false); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].LayerIDStateEvents.PutValueAtDate(refDate.AddMinutes(-150), 1); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].LayerOverrideEvents.PutValueAtDate(refDate.AddMinutes(-90), new OverrideEvent <ushort>(refDate.AddMinutes(-60), 2)); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].LayerOverrideEvents.PutValueAtDate(refDate.AddMinutes(-120), new OverrideEvent <ushort>(refDate.AddMinutes(-100), 4)); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].MachineDesignNameIDStateEvents.PutValueAtDate(refDate.AddMinutes(-150), 1); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].DesignOverrideEvents.PutValueAtDate(refDate.AddMinutes(-90), new OverrideEvent <int>(refDate.AddMinutes(-60), 2)); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].DesignOverrideEvents.PutValueAtDate(refDate.AddMinutes(-120), new OverrideEvent <int>(refDate.AddMinutes(-100), 4)); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(true, siteModel, refDate); arg.StartUTC = Consts.MIN_DATETIME_AS_UTC; arg.EndUTC = Consts.MAX_DATETIME_AS_UTC; var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.True(response.Success); Assert.Equal(0, siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].LayerOverrideEvents.Count()); Assert.Equal(0, siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].DesignOverrideEvents.Count()); }
/// <summary> /// Processes the request asynchronously. /// </summary> protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { var request = CastRequestObjectTo <TRexEditDataRequest>(item); var result = new ContractExecutionResult(); try { log.LogInformation($"#In# RemoveEditDataExecutor. Remove data edit {JsonConvert.SerializeObject(request)}"); var overrideRequest = new OverrideEventRequest(); var arg = new OverrideEventRequestArgument(true, request.ProjectUid, request.AssetUid, request.StartUtc, request.EndUtc, request.MachineDesignName, (ushort?)request.LiftNumber); var overrideResult = await overrideRequest.ExecuteAsync(arg); if (!overrideResult.Success) { log.LogInformation($"Failed to remove data edit: {overrideResult.Message}"); result = new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError, overrideResult.Message); } } finally { log.LogInformation($"#Out# RemoveEditDataExecutor. Add data edit {JsonConvert.SerializeObject(request)}"); } return(result); }
public async Task Test_OverrideEventRequest_OverrideNotFound() { AddApplicationGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(true, siteModel, DateTime.UtcNow); var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.False(response.Success); Assert.Equal("No override event(s) found to remove", response.Message); }
public async Task Test_OverrideEventRequest_InvalidDateRange() { AddApplicationGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(false, siteModel, DateTime.UtcNow); arg.StartUTC = arg.EndUTC; var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.False(response.Success); Assert.Equal($"Invalid date range. Start:{arg.StartUTC} End:{arg.EndUTC}", response.Message); }
public async Task Test_OverrideEventRequest_MissingAsset(bool remove) { AddApplicationGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(remove, siteModel, DateTime.UtcNow); arg.AssetID = Guid.NewGuid(); var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.False(response.Success); Assert.Equal($"Failed to locate machine {arg.AssetID}", response.Message); }
public async Task Test_OverrideEventRequest_MissingOverrides() { AddApplicationGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(false, siteModel, DateTime.UtcNow); arg.MachineDesignName = null; arg.LayerID = null; var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.False(response.Success); Assert.Equal("Missing override values", response.Message); }
public async Task Test_OverrideEventRequest_NoExistingOverrides() { AddApplicationGridRouting(); var refDate = DateTime.UtcNow; var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var bulldozer = siteModel.Machines.Locate("Bulldozer", false); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].MachineDesignNameIDStateEvents.PutValueAtDate(refDate.AddMinutes(-150), 1); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].LayerIDStateEvents.PutValueAtDate(refDate.AddMinutes(-150), 1); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(false, siteModel, refDate); var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.True(response.Success); Assert.Equal(1, siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].LayerOverrideEvents.Count()); Assert.Equal(1, siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].DesignOverrideEvents.Count()); }
public async Task Test_OverrideEventRequest_OverlappingDesignOverrides(int startMins, int endMins) { AddApplicationGridRouting(); var refDate = DateTime.UtcNow; var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var bulldozer = siteModel.Machines.Locate("Bulldozer", false); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].MachineDesignNameIDStateEvents.PutValueAtDate(refDate.AddMinutes(-150), 1); siteModel.MachinesTargetValues[bulldozer.InternalSiteModelMachineIndex].DesignOverrideEvents.PutValueAtDate(refDate.AddMinutes(startMins), new OverrideEvent <int>(refDate.AddMinutes(endMins), 2)); var request = new OverrideEventRequest(); var arg = CreateOverrideEventRequestArgument(false, siteModel, refDate); arg.LayerID = null; var response = await request.ExecuteAsync(arg); response.Should().NotBeNull(); Assert.False(response.Success); Assert.Equal($"Design override failed event date validation {arg.StartUTC}-{arg.EndUTC}", response.Message); }
public void Test_OverrideEventRequest_Creation() { var request = new OverrideEventRequest(); Assert.NotNull(request); }