Exemple #1
0
        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());
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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());
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        public void Test_OverrideEventRequest_Creation()
        {
            var request = new OverrideEventRequest();

            Assert.NotNull(request);
        }