public void Heal(IncrementalValue value, int modifier = 1)
        {
            if (modifier < 1) modifier = 1;

            currentValue += (int)value * modifier;
            if (currentValue > maximumValue)
                currentValue = maximumValue;
        }
        public void AddToMax(IncrementalValue value, int modifier = 1)
        {
            if (modifier < 1) modifier = 1;

            maximumValue = (int)maximumValue + ((int)value * modifier);
            if (currentValue > maximumValue)
                currentValue = maximumValue;
        }
        public void Damage(IncrementalValue value, int modifier = 1)
        {
            if (modifier < 1) modifier = 1;

            currentValue -= (int)value * modifier;
            if (currentValue < 0)
                currentValue = 0;
        }
        private List <IncrementalColumn> GetIncrementalConfigurations(Binding binding, BindingExecution bindingExecution, Field[] sourceEntityFields)
        {
            this.LogDebug("Checking Incremental Configurations", bindingExecution);

            var incrementalColumns = new List <IncrementalColumn>();

            if (bindingExecution.LoadType != BindingLoadType.Incremental)
            {
                return(incrementalColumns);
            }

            if (binding.IncrementalConfigurations.Count == 0)
            {
                return(incrementalColumns);
            }

            foreach (IncrementalConfiguration incrementalConfiguration in binding.IncrementalConfigurations)
            {
                this.LogDebug($"Processing incremental configuration: {Serialize(incrementalConfiguration)} \n\tfor binding: {Serialize(bindingExecution)}");

                IncrementalValue incrementalValue;
                if (bindingExecution.BatchExecution.IncrementalStartDateTime.HasValue)
                {
                    incrementalValue = new IncrementalValue
                    {
                        DestinationBindingId   = bindingExecution.BindingId,
                        LastMaxIncrementalDate = bindingExecution.BatchExecution.IncrementalStartDateTime
                    };
                }
                else
                {
                    using (IProcessingContextWrapper processingContextWrapper = this.processingContextWrapperFactory.CreateProcessingContextWrapper())
                    {
                        incrementalValue = processingContextWrapper.GetIncrementalValue(incrementalConfiguration);
                    }
                }

                this.LogDebug($"Found incrementalValue: {Serialize(incrementalValue)}");

                if (incrementalValue?.LastMaxIncrementalDate == null)
                {
                    continue;
                }

                incrementalColumns.Add(new IncrementalColumn
                {
                    Name     = incrementalConfiguration.IncrementalColumnName,
                    Operator = IncrementalOperator.GreaterThanOrEqualTo,
                    Type     = sourceEntityFields.First(f => f.FieldName == incrementalConfiguration.IncrementalColumnName).DataType,
                    Value    = Serialize(incrementalValue.LastMaxIncrementalDate.Value).Replace("\"", string.Empty)
                });
            }

            this.LogDebug($"processed the following incrementalColumns: {Serialize(incrementalColumns)}");

            return(incrementalColumns);
        }
        public void NonNullIncrementalValuesAreUnchanged()
        {
            // Arrange
            var records = new List <YearlyData>()
            {
                new YearlyData {
                    ProductName = "Comp", OriginYear = 2017, DevelopmentYear = 2017, IncrementalValue = 10m
                },
                new YearlyData {
                    ProductName = "Comp", OriginYear = 2017, DevelopmentYear = 2018, IncrementalValue = 11m
                },
                new YearlyData {
                    ProductName = "Comp", OriginYear = 2017, DevelopmentYear = 2019, IncrementalValue = 12m
                }
            };

            // Act
            var result = IncrementalValue.DefaultNullsToZeroes(records);

            Assert.That(result[0].IncrementalValue, Is.EqualTo(10m));
            Assert.That(result[1].IncrementalValue, Is.EqualTo(11m));
            Assert.That(result[2].IncrementalValue, Is.EqualTo(12m));
        }
        public void MissingIncrementalValuesAreConsideredToBeZero()
        {
            // Arrange
            var records = new List <YearlyData>()
            {
                new YearlyData {
                    ProductName = "Comp", OriginYear = 2017, DevelopmentYear = 2017, IncrementalValue = null
                },
                new YearlyData {
                    ProductName = "Comp", OriginYear = 2017, DevelopmentYear = 2018, IncrementalValue = null
                },
                new YearlyData {
                    ProductName = "Comp", OriginYear = 2017, DevelopmentYear = 2019, IncrementalValue = null
                }
            };

            // Act
            var result = IncrementalValue.DefaultNullsToZeroes(records);

            Assert.That(result[0].IncrementalValue, Is.EqualTo(0));
            Assert.That(result[1].IncrementalValue, Is.EqualTo(0));
            Assert.That(result[2].IncrementalValue, Is.EqualTo(0));
        }
 public IncrementalPair(IncrementalValue maxValue, int modifier)
 {
     currentValue = (int)maxValue * modifier;
     maximumValue = currentValue;
 }
示例#8
0
 public void AddOrUpdateIncrementalValue(
     IncrementalValue maxIncrementalValue,
     IncrementalConfiguration incrementalConfiguration)
 {
     throw new System.NotImplementedException();
 }