public void NoChangesDoesNotTriggerUpdate()
        {
            var original = new Data();
            var editRequest = new EditDataRequest();

            Assert.False(editRequest.TryUpdateFromMe(original));
        }
Example #2
0
        public void ValidateFailMissingDataEditTest()
        {
            //missing dataEdit
            EditDataRequest request = EditDataRequest.CreateEditDataRequest(projectId, false, null);

            Assert.ThrowsException <ServiceException>(() => request.Validate());
        }
Example #3
0
        public void ValidateSuccessTest()
        {
            EditDataRequest request = EditDataRequest.CreateEditDataRequest(
                projectId, false, dataEdit);

            request.Validate();
        }
        public void NoChangesWhenValueDoesNotChange()
        {
            var original = new Data();
            original.Header = "hello";
            var editRequest = new EditDataRequest();
            editRequest.Header = "hello";

            Assert.False(editRequest.TryUpdateFromMe(original));
        }
        public void UpdatingChildPropertyButNoChildValues()
        {
            var original = new Data();
            original.Child = new ChildData();

            var editRequest = new EditDataRequest();
            editRequest.Child = new EditChildDataRequest();

            bool wasUpdated = editRequest.TryUpdateFromMe(original);
            Assert.That(wasUpdated, Is.False);
        }
        public void UpdatesToCollectionTest()
        {
            var original = new Data();
            original.Custom = new List<string>() { "hello" };

            var editRequest = new EditDataRequest();
            editRequest.Custom = new List<string>() { "hello", "world" };

            bool wasUpdated = editRequest.TryUpdateFromMe(original);
            Assert.That(wasUpdated, Is.True);
        }
        public void UpdatingASingleProperty()
        {
            var original = new Data();
            original.Header = "hello";
            var editRequest = new EditDataRequest();
            editRequest.Header = "new val";
            bool thing = editRequest.TryUpdateFromMe(original);

            Assert.That(thing, Is.True);

            Assert.That(original.Header, Is.EqualTo("new val"));
        }
Example #8
0
        public void CanCreateEditDataRequestTest()
        {
            var             validator = new DataAnnotationsValidator();
            EditDataRequest request   = EditDataRequest.CreateEditDataRequest(
                projectId, false, dataEdit);
            ICollection <ValidationResult> results;

            Assert.IsTrue(validator.TryValidate(request, out results));

            //missing project id
            request = EditDataRequest.CreateEditDataRequest(-1, false, dataEdit);
            Assert.IsFalse(validator.TryValidate(request, out results));
        }
        public void UpdatingChildPropertyAndChildValues()
        {
            var original = new Data();
            original.Child = new ChildData();

            var editRequest = new EditDataRequest();
            var editChildDataRequest = new EditChildDataRequest();
            editChildDataRequest.Name = "new name";
            editRequest.Child = editChildDataRequest;

            bool wasUpdated = editRequest.TryUpdateFromMe(original);
            Assert.That(wasUpdated, Is.True);

            Assert.That(original.Child.Name, Is.EqualTo("new name"));
        }
Example #10
0
        public async Task <ContractExecutionResult> PostEditTbc([FromBody] EditDataRequest request)
        {
            request.Validate();

            if (!request.undo)
            {
                //Validate against existing data edits
                var getRequest = GetEditDataRequest.CreateGetEditDataRequest(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID,
                                                                             request.dataEdit.assetId, request.ProjectUid);
                var editResult = await PostEditDataAcquireTbc(getRequest);

                ValidateNoOverlap(editResult.dataEdits, request.dataEdit);
                //Validate request date range within production data date range
                await ValidateDates(request.ProjectUid.Value, request.dataEdit);
            }

            return(await RequestExecutorContainerFactory.Build <EditDataExecutor>(LoggerFactory, ConfigStore,
                                                                                  trexCompactionDataProxy : _tRexCompactionDataProxy, userId : GetUserId(), fileImportProxy : FileImportProxy
                                                                                  ).ProcessAsync(request));
        }
Example #11
0
        private ContractExecutionResult ProcessWithRaptor(EditDataRequest request)
        {
            TDateTime startTime;
            DateTime  endTime;

            if (request.dataEdit == null)
            {
                startTime = new TDateTime();
                endTime   = new DateTime();
            }
            else
            {
                var st = request.dataEdit.startUTC;
                startTime = new TDateTime((ushort)st.Year, (ushort)st.Month, (ushort)st.Day, (ushort)st.Hour,
                                          (ushort)st.Minute, (ushort)st.Second, (ushort)st.Millisecond);
                var et = request.dataEdit.endUTC;
                endTime = new TDateTime((ushort)et.Year, (ushort)et.Month, (ushort)et.Day, (ushort)et.Hour,
                                        (ushort)et.Minute, (ushort)et.Second, (ushort)et.Millisecond);
            }
            var returnResult = TTAGProcServerProcessResult.tpsprOK;
            var tagClient    = tagProcessor.ProjectDataServerTAGProcessorClient();

            if (request.undo)
            {
                if (request.dataEdit == null)
                {
                    returnResult = tagClient.SubmitOverrideDesignRemove(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, -1, new TDateTime());
                    if (returnResult == TTAGProcServerProcessResult.tpsprOK)
                    {
                        returnResult = tagClient.SubmitOverrideLayerRemove(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, -1, new TDateTime());
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(request.dataEdit.onMachineDesignName))
                    {
                        returnResult = tagClient.SubmitOverrideDesignRemove(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.dataEdit.assetId,
                                                                            startTime);
                    }
                    if (request.dataEdit.liftNumber.HasValue && returnResult == TTAGProcServerProcessResult.tpsprOK)
                    {
                        returnResult = tagClient.SubmitOverrideLayerRemove(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.dataEdit.assetId,
                                                                           startTime);
                    }
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(request.dataEdit.onMachineDesignName))
                {
                    //Machine design
                    returnResult = tagClient.SubmitDesignToOverride(
                        request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.dataEdit.assetId, request.dataEdit.onMachineDesignName, startTime,
                        endTime);
                }
                if (request.dataEdit.liftNumber.HasValue && returnResult == TTAGProcServerProcessResult.tpsprOK)
                {
                    //Lift number
                    returnResult = tagClient.SubmitLayerToOverride(
                        request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.dataEdit.assetId, request.dataEdit.liftNumber.Value, startTime, endTime);
                }
            }

            if (returnResult == TTAGProcServerProcessResult.tpsprOK)
            {
                return(new ContractExecutionResult());
            }

            throw CreateServiceException <EditDataExecutor>((int)returnResult);
        }