예제 #1
0
 partial void onUpdating(
     DateTime aDate,
     DateTime?aNullableDate,
     TimeSpan aTime,
     TimeSpan?aNullableTime,
     DateTime aDateMinutes,
     DateTime?aNullableDateMinutes,
     DateTime aDateSeconds,
     DateTime?aNullableDateSeconds,
     DateTime aDateTime,
     DateTime?aNullableDateTime,
     TimeSpan aTimeSpan,
     TimeSpan?aNullableTimeSpan,
     decimal aDecimal,
     decimal?aNullableDecimal,
     decimal aDecimal2,
     decimal?aNullableDecimal2,
     decimal aDecimal4,
     decimal?aNullableDecimal4,
     decimal aDecimal5,
     decimal?aNullableDecimal5,
     bool aBool,
     bool?aNullableBool,
     int aInt,
     int?aNullableInt,
     long aLong,
     long?aNullableLong,
     char aChar,
     char?aNullableChar,
     string aString,
     string?aNullableString,
     SampleStateEnum aEnum,
     SampleStateEnum?aNullableEnum,
     ref bool isCancelled);
예제 #2
0
        public Sample(
            string text,
            bool flag,
            int number,
            decimal amount,
            decimal amount4,
            decimal?amount5,
            decimal preciseDecimal,
            SampleStateEnum sampleState,
            DateTime dateOnly,
            TimeSpan timeOnly,
            DateTime dateTimeTicks,
            DateTime dateTimeMinute,
            DateTime dateTimeSecond,
            SampleMaster?oneMaster,
            SampleMaster?otherMaster,
            string?optional,
            bool isStoring = true)
        {
            Key            = StorageExtensions.NoKey;
            Text           = text;
            Flag           = flag;
            Number         = number;
            Amount         = amount.Round(2);
            Amount4        = amount4.Round(4);
            Amount5        = amount5.Round(5);
            PreciseDecimal = preciseDecimal;
            SampleState    = sampleState;
            DateOnly       = dateOnly.Floor(Rounding.Days);
            TimeOnly       = timeOnly.Round(Rounding.Seconds);
            DateTimeTicks  = dateTimeTicks;
            DateTimeMinute = dateTimeMinute.Round(Rounding.Minutes);
            DateTimeSecond = dateTimeSecond.Round(Rounding.Seconds);
            OneMaster      = oneMaster;
            OtherMaster    = otherMaster;
            Optional       = optional;
            sampleDetails  = new List <SampleDetail>();
#if DEBUG
            DC.Trace?.Invoke($"new Sample: {ToTraceString()}");
#endif
            if (OneMaster != null)
            {
                OneMaster.AddToSampleX(this);
            }
            if (OtherMaster != null)
            {
                OtherMaster.AddToSampleX(this);
            }
            onConstruct();
            if (DC.Data?.IsTransaction ?? false)
            {
                DC.Data.AddTransaction(new TransactionItem(7, TransactionActivityEnum.New, Key, this));
            }

            if (isStoring)
            {
                Store();
            }
        }
예제 #3
0
 partial void onUpdating(
     string text,
     bool flag,
     int number,
     decimal amount,
     decimal amount4,
     decimal?amount5,
     decimal preciseDecimal,
     SampleStateEnum sampleState,
     DateTime dateOnly,
     TimeSpan timeOnly,
     DateTime dateTimeTicks,
     DateTime dateTimeMinute,
     DateTime dateTimeSecond,
     SampleMaster?oneMaster,
     SampleMaster?otherMaster,
     string?optional,
     ref bool isCancelled);
예제 #4
0
        public void Update(
            DateTime aDate,
            DateTime?aNullableDate,
            TimeSpan aTime,
            TimeSpan?aNullableTime,
            DateTime aDateMinutes,
            DateTime?aNullableDateMinutes,
            DateTime aDateSeconds,
            DateTime?aNullableDateSeconds,
            DateTime aDateTime,
            DateTime?aNullableDateTime,
            TimeSpan aTimeSpan,
            TimeSpan?aNullableTimeSpan,
            decimal aDecimal,
            decimal?aNullableDecimal,
            decimal aDecimal2,
            decimal?aNullableDecimal2,
            decimal aDecimal4,
            decimal?aNullableDecimal4,
            decimal aDecimal5,
            decimal?aNullableDecimal5,
            bool aBool,
            bool?aNullableBool,
            int aInt,
            int?aNullableInt,
            long aLong,
            long?aNullableLong,
            char aChar,
            char?aNullableChar,
            string aString,
            string?aNullableString,
            SampleStateEnum aEnum,
            SampleStateEnum?aNullableEnum)
        {
            var clone       = new DataTypeSample(this);
            var isCancelled = false;

            onUpdating(
                aDate,
                aNullableDate,
                aTime,
                aNullableTime,
                aDateMinutes,
                aNullableDateMinutes,
                aDateSeconds,
                aNullableDateSeconds,
                aDateTime,
                aNullableDateTime,
                aTimeSpan,
                aNullableTimeSpan,
                aDecimal,
                aNullableDecimal,
                aDecimal2,
                aNullableDecimal2,
                aDecimal4,
                aNullableDecimal4,
                aDecimal5,
                aNullableDecimal5,
                aBool,
                aNullableBool,
                aInt,
                aNullableInt,
                aLong,
                aNullableLong,
                aChar,
                aNullableChar,
                aString,
                aNullableString,
                aEnum,
                aNullableEnum,
                ref isCancelled);
            if (isCancelled)
            {
                return;
            }

#if DEBUG
            DC.Trace?.Invoke($"Updating DataTypeSample: {ToTraceString()}");
#endif
            var isChangeDetected = false;
            var aDateRounded     = aDate.Floor(Rounding.Days);
            if (ADate != aDateRounded)
            {
                ADate            = aDateRounded;
                isChangeDetected = true;
            }
            var aNullableDateRounded = aNullableDate.Floor(Rounding.Days);
            if (ANullableDate != aNullableDateRounded)
            {
                ANullableDate    = aNullableDateRounded;
                isChangeDetected = true;
            }
            var aTimeRounded = aTime.Round(Rounding.Seconds);
            if (ATime != aTimeRounded)
            {
                ATime            = aTimeRounded;
                isChangeDetected = true;
            }
            var aNullableTimeRounded = aNullableTime.Round(Rounding.Seconds);
            if (ANullableTime != aNullableTimeRounded)
            {
                ANullableTime    = aNullableTimeRounded;
                isChangeDetected = true;
            }
            var aDateMinutesRounded = aDateMinutes.Round(Rounding.Minutes);
            if (ADateMinutes != aDateMinutesRounded)
            {
                ADateMinutes     = aDateMinutesRounded;
                isChangeDetected = true;
            }
            var aNullableDateMinutesRounded = aNullableDateMinutes.Round(Rounding.Minutes);
            if (ANullableDateMinutes != aNullableDateMinutesRounded)
            {
                ANullableDateMinutes = aNullableDateMinutesRounded;
                isChangeDetected     = true;
            }
            var aDateSecondsRounded = aDateSeconds.Round(Rounding.Seconds);
            if (ADateSeconds != aDateSecondsRounded)
            {
                ADateSeconds     = aDateSecondsRounded;
                isChangeDetected = true;
            }
            var aNullableDateSecondsRounded = aNullableDateSeconds.Round(Rounding.Seconds);
            if (ANullableDateSeconds != aNullableDateSecondsRounded)
            {
                ANullableDateSeconds = aNullableDateSecondsRounded;
                isChangeDetected     = true;
            }
            if (ADateTime != aDateTime)
            {
                ADateTime        = aDateTime;
                isChangeDetected = true;
            }
            if (ANullableDateTime != aNullableDateTime)
            {
                ANullableDateTime = aNullableDateTime;
                isChangeDetected  = true;
            }
            if (ATimeSpan != aTimeSpan)
            {
                ATimeSpan        = aTimeSpan;
                isChangeDetected = true;
            }
            if (ANullableTimeSpan != aNullableTimeSpan)
            {
                ANullableTimeSpan = aNullableTimeSpan;
                isChangeDetected  = true;
            }
            if (ADecimal != aDecimal)
            {
                ADecimal         = aDecimal;
                isChangeDetected = true;
            }
            if (ANullableDecimal != aNullableDecimal)
            {
                ANullableDecimal = aNullableDecimal;
                isChangeDetected = true;
            }
            var aDecimal2Rounded = aDecimal2.Round(2);
            if (ADecimal2 != aDecimal2Rounded)
            {
                ADecimal2        = aDecimal2Rounded;
                isChangeDetected = true;
            }
            var aNullableDecimal2Rounded = aNullableDecimal2.Round(2);
            if (ANullableDecimal2 != aNullableDecimal2Rounded)
            {
                ANullableDecimal2 = aNullableDecimal2Rounded;
                isChangeDetected  = true;
            }
            var aDecimal4Rounded = aDecimal4.Round(4);
            if (ADecimal4 != aDecimal4Rounded)
            {
                ADecimal4        = aDecimal4Rounded;
                isChangeDetected = true;
            }
            var aNullableDecimal4Rounded = aNullableDecimal4.Round(4);
            if (ANullableDecimal4 != aNullableDecimal4Rounded)
            {
                ANullableDecimal4 = aNullableDecimal4Rounded;
                isChangeDetected  = true;
            }
            var aDecimal5Rounded = aDecimal5.Round(5);
            if (ADecimal5 != aDecimal5Rounded)
            {
                ADecimal5        = aDecimal5Rounded;
                isChangeDetected = true;
            }
            var aNullableDecimal5Rounded = aNullableDecimal5.Round(5);
            if (ANullableDecimal5 != aNullableDecimal5Rounded)
            {
                ANullableDecimal5 = aNullableDecimal5Rounded;
                isChangeDetected  = true;
            }
            if (ABool != aBool)
            {
                ABool            = aBool;
                isChangeDetected = true;
            }
            if (ANullableBool != aNullableBool)
            {
                ANullableBool    = aNullableBool;
                isChangeDetected = true;
            }
            if (AInt != aInt)
            {
                AInt             = aInt;
                isChangeDetected = true;
            }
            if (ANullableInt != aNullableInt)
            {
                ANullableInt     = aNullableInt;
                isChangeDetected = true;
            }
            if (ALong != aLong)
            {
                ALong            = aLong;
                isChangeDetected = true;
            }
            if (ANullableLong != aNullableLong)
            {
                ANullableLong    = aNullableLong;
                isChangeDetected = true;
            }
            if (AChar != aChar)
            {
                AChar            = aChar;
                isChangeDetected = true;
            }
            if (ANullableChar != aNullableChar)
            {
                ANullableChar    = aNullableChar;
                isChangeDetected = true;
            }
            if (AString != aString)
            {
                AString          = aString;
                isChangeDetected = true;
            }
            if (ANullableString != aNullableString)
            {
                ANullableString  = aNullableString;
                isChangeDetected = true;
            }
            if (AEnum != aEnum)
            {
                AEnum            = aEnum;
                isChangeDetected = true;
            }
            if (ANullableEnum != aNullableEnum)
            {
                ANullableEnum    = aNullableEnum;
                isChangeDetected = true;
            }
            if (isChangeDetected)
            {
                onUpdated(clone);
                if (Key >= 0)
                {
                    DC.Data.DataTypeSamples.ItemHasChanged(clone, this);
                }
                else if (DC.Data.IsTransaction)
                {
                    DC.Data.AddTransaction(new TransactionItem(0, TransactionActivityEnum.Update, Key, this, oldItem: clone));
                }
                HasChanged?.Invoke(clone, this);
            }
#if DEBUG
            DC.Trace?.Invoke($"Updated DataTypeSample: {ToTraceString()}");
#endif
        }
예제 #5
0
        public DataTypeSample(
            DateTime aDate,
            DateTime?aNullableDate,
            TimeSpan aTime,
            TimeSpan?aNullableTime,
            DateTime aDateMinutes,
            DateTime?aNullableDateMinutes,
            DateTime aDateSeconds,
            DateTime?aNullableDateSeconds,
            DateTime aDateTime,
            DateTime?aNullableDateTime,
            TimeSpan aTimeSpan,
            TimeSpan?aNullableTimeSpan,
            decimal aDecimal,
            decimal?aNullableDecimal,
            decimal aDecimal2,
            decimal?aNullableDecimal2,
            decimal aDecimal4,
            decimal?aNullableDecimal4,
            decimal aDecimal5,
            decimal?aNullableDecimal5,
            bool aBool,
            bool?aNullableBool,
            int aInt,
            int?aNullableInt,
            long aLong,
            long?aNullableLong,
            char aChar,
            char?aNullableChar,
            string aString,
            string?aNullableString,
            SampleStateEnum aEnum,
            SampleStateEnum?aNullableEnum,
            bool isStoring = true)
        {
            Key                  = StorageExtensions.NoKey;
            ADate                = aDate.Floor(Rounding.Days);
            ANullableDate        = aNullableDate.Floor(Rounding.Days);
            ATime                = aTime.Round(Rounding.Seconds);
            ANullableTime        = aNullableTime.Round(Rounding.Seconds);
            ADateMinutes         = aDateMinutes.Round(Rounding.Minutes);
            ANullableDateMinutes = aNullableDateMinutes.Round(Rounding.Minutes);
            ADateSeconds         = aDateSeconds.Round(Rounding.Seconds);
            ANullableDateSeconds = aNullableDateSeconds.Round(Rounding.Seconds);
            ADateTime            = aDateTime;
            ANullableDateTime    = aNullableDateTime;
            ATimeSpan            = aTimeSpan;
            ANullableTimeSpan    = aNullableTimeSpan;
            ADecimal             = aDecimal;
            ANullableDecimal     = aNullableDecimal;
            ADecimal2            = aDecimal2.Round(2);
            ANullableDecimal2    = aNullableDecimal2.Round(2);
            ADecimal4            = aDecimal4.Round(4);
            ANullableDecimal4    = aNullableDecimal4.Round(4);
            ADecimal5            = aDecimal5.Round(5);
            ANullableDecimal5    = aNullableDecimal5.Round(5);
            ABool                = aBool;
            ANullableBool        = aNullableBool;
            AInt                 = aInt;
            ANullableInt         = aNullableInt;
            ALong                = aLong;
            ANullableLong        = aNullableLong;
            AChar                = aChar;
            ANullableChar        = aNullableChar;
            AString              = aString;
            ANullableString      = aNullableString;
            AEnum                = aEnum;
            ANullableEnum        = aNullableEnum;
#if DEBUG
            DC.Trace?.Invoke($"new DataTypeSample: {ToTraceString()}");
#endif
            onConstruct();
            if (DC.Data?.IsTransaction ?? false)
            {
                DC.Data.AddTransaction(new TransactionItem(0, TransactionActivityEnum.New, Key, this));
            }

            if (isStoring)
            {
                Store();
            }
        }
예제 #6
0
        public void Update(
            string text,
            bool flag,
            int number,
            decimal amount,
            decimal amount4,
            decimal?amount5,
            decimal preciseDecimal,
            SampleStateEnum sampleState,
            DateTime dateOnly,
            TimeSpan timeOnly,
            DateTime dateTimeTicks,
            DateTime dateTimeMinute,
            DateTime dateTimeSecond,
            SampleMaster?oneMaster,
            SampleMaster?otherMaster,
            string?optional)
        {
            if (Key >= 0)
            {
                if (oneMaster?.Key < 0)
                {
                    throw new Exception($"Sample.Update(): It is illegal to add stored Sample '{this}'" + Environment.NewLine +
                                        $"to OneMaster '{oneMaster}', which is not stored.");
                }
                if (otherMaster?.Key < 0)
                {
                    throw new Exception($"Sample.Update(): It is illegal to add stored Sample '{this}'" + Environment.NewLine +
                                        $"to OtherMaster '{otherMaster}', which is not stored.");
                }
            }
            var clone       = new Sample(this);
            var isCancelled = false;

            onUpdating(
                text,
                flag,
                number,
                amount,
                amount4,
                amount5,
                preciseDecimal,
                sampleState,
                dateOnly,
                timeOnly,
                dateTimeTicks,
                dateTimeMinute,
                dateTimeSecond,
                oneMaster,
                otherMaster,
                optional,
                ref isCancelled);
            if (isCancelled)
            {
                return;
            }

#if DEBUG
            DC.Trace?.Invoke($"Updating Sample: {ToTraceString()}");
#endif
            var isChangeDetected = false;
            if (Text != text)
            {
                Text             = text;
                isChangeDetected = true;
            }
            if (Flag != flag)
            {
                Flag             = flag;
                isChangeDetected = true;
            }
            if (Number != number)
            {
                Number           = number;
                isChangeDetected = true;
            }
            var amountRounded = amount.Round(2);
            if (Amount != amountRounded)
            {
                Amount           = amountRounded;
                isChangeDetected = true;
            }
            var amount4Rounded = amount4.Round(4);
            if (Amount4 != amount4Rounded)
            {
                Amount4          = amount4Rounded;
                isChangeDetected = true;
            }
            var amount5Rounded = amount5.Round(5);
            if (Amount5 != amount5Rounded)
            {
                Amount5          = amount5Rounded;
                isChangeDetected = true;
            }
            if (PreciseDecimal != preciseDecimal)
            {
                PreciseDecimal   = preciseDecimal;
                isChangeDetected = true;
            }
            if (SampleState != sampleState)
            {
                SampleState      = sampleState;
                isChangeDetected = true;
            }
            var dateOnlyRounded = dateOnly.Floor(Rounding.Days);
            if (DateOnly != dateOnlyRounded)
            {
                DateOnly         = dateOnlyRounded;
                isChangeDetected = true;
            }
            var timeOnlyRounded = timeOnly.Round(Rounding.Seconds);
            if (TimeOnly != timeOnlyRounded)
            {
                TimeOnly         = timeOnlyRounded;
                isChangeDetected = true;
            }
            if (DateTimeTicks != dateTimeTicks)
            {
                DateTimeTicks    = dateTimeTicks;
                isChangeDetected = true;
            }
            var dateTimeMinuteRounded = dateTimeMinute.Round(Rounding.Minutes);
            if (DateTimeMinute != dateTimeMinuteRounded)
            {
                DateTimeMinute   = dateTimeMinuteRounded;
                isChangeDetected = true;
            }
            var dateTimeSecondRounded = dateTimeSecond.Round(Rounding.Seconds);
            if (DateTimeSecond != dateTimeSecondRounded)
            {
                DateTimeSecond   = dateTimeSecondRounded;
                isChangeDetected = true;
            }
            if (OneMaster is null)
            {
                if (oneMaster is null)
                {
                    //nothing to do
                }
                else
                {
                    OneMaster = oneMaster;
                    OneMaster.AddToSampleX(this);
                    isChangeDetected = true;
                }
            }
            else
            {
                if (oneMaster is null)
                {
                    OneMaster.RemoveFromSampleX(this);
                    OneMaster        = null;
                    isChangeDetected = true;
                }
                else
                {
                    if (OneMaster != oneMaster)
                    {
                        OneMaster.RemoveFromSampleX(this);
                        OneMaster = oneMaster;
                        OneMaster.AddToSampleX(this);
                        isChangeDetected = true;
                    }
                }
            }
            if (OtherMaster is null)
            {
                if (otherMaster is null)
                {
                    //nothing to do
                }
                else
                {
                    OtherMaster = otherMaster;
                    OtherMaster.AddToSampleX(this);
                    isChangeDetected = true;
                }
            }
            else
            {
                if (otherMaster is null)
                {
                    OtherMaster.RemoveFromSampleX(this);
                    OtherMaster      = null;
                    isChangeDetected = true;
                }
                else
                {
                    if (OtherMaster != otherMaster)
                    {
                        OtherMaster.RemoveFromSampleX(this);
                        OtherMaster = otherMaster;
                        OtherMaster.AddToSampleX(this);
                        isChangeDetected = true;
                    }
                }
            }
            if (Optional != optional)
            {
                Optional         = optional;
                isChangeDetected = true;
            }
            if (isChangeDetected)
            {
                onUpdated(clone);
                if (Key >= 0)
                {
                    DC.Data.SampleX.ItemHasChanged(clone, this);
                }
                else if (DC.Data.IsTransaction)
                {
                    DC.Data.AddTransaction(new TransactionItem(7, TransactionActivityEnum.Update, Key, this, oldItem: clone));
                }
                HasChanged?.Invoke(clone, this);
            }
#if DEBUG
            DC.Trace?.Invoke($"Updated Sample: {ToTraceString()}");
#endif
        }