Пример #1
0
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewRewetTest(BabyDiaperRewetEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.BabyDiaper;

            var babyDiaperTestValue = new BabyDiaperTestValue
            {
                DiaperCreatedTime             = viewModel.ProductionCodeTime,
                WeightDiaperDry               = viewModel.DiaperWeight,
                Rewet140Value                 = viewModel.RewetAfter140,
                Rewet210Value                 = viewModel.RewetAfter210,
                StrikeTroughValue             = viewModel.StrikeThrough,
                DistributionOfTheStrikeTrough = viewModel.Distribution,
                PenetrationTimeAdditionFirst  = viewModel.PenetrationTime1,
                PenetrationTimeAdditionSecond = viewModel.PenetrationTime2,
                PenetrationTimeAdditionThird  = viewModel.PenetrationTime3,
                PenetrationTimeAdditionFourth = viewModel.PenetrationTime4,
                TestType = viewModel.TestType
            };

            if (babyDiaperTestValue.TestType == TestTypeBabyDiaper.Rewet)
            {
                babyDiaperTestValue.PenetrationTimeAdditionFirst  = 0;
                babyDiaperTestValue.PenetrationTimeAdditionSecond = 0;
                babyDiaperTestValue.PenetrationTimeAdditionThird  = 0;
                babyDiaperTestValue.PenetrationTimeAdditionFourth = 0;
            }
            babyDiaperTestValue           = CalculateBabyDiaperRewetValues(babyDiaperTestValue, viewModel.TestSheetId);
            testValue.BabyDiaperTestValue = babyDiaperTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
Пример #2
0
        /// <summary>
        ///     Gets a new BabyDiaperRetentionEditViewModel
        /// </summary>
        /// <param name="retentionTestId">The Id of the Babydiaper retention test which will be edited</param>
        /// <returns>The BabyDiaperRetentionEditViewModel</returns>
        public BabyDiaperRetentionEditViewModel GetBabyDiapersRetentionEditViewModel(Int32 retentionTestId)
        {
            var testValue = TestBll.GetTestValue(retentionTestId);

            if (testValue.IsNull())
            {
                Logger.Error("TestValue mit id " + retentionTestId + "existiert nicht in DB!");
                return(null);
            }
            var babyDiapersTestValue = testValue.BabyDiaperTestValue;

            if (babyDiapersTestValue.IsNull())
            {
                Logger.Error("BabyDiaperRetentionTestValue mit id " + testValue.TestValueId + "existiert nicht in DB!");
                return(null);
            }
            if (babyDiapersTestValue.TestType != TestTypeBabyDiaper.Retention)
            {
                Logger.Error("Requestet test was not an BabyDiaperRetention Test. Id " + testValue.TestValueId);
                return(null);
            }
            var testSheetInfo = testValue.TestSheet;

            if (testSheetInfo.IsNull())
            {
                Logger.Error("TestBlatt mit id " + testValue.TestSheetId + "existiert nicht in DB!");
                return(null);
            }
            var notes      = testValue.TestValueNote;
            var errors     = TestBll.GetAllNoteCodes();
            var errorCodes = errors.Select(error => new ErrorCode {
                ErrorId = error.ErrorId, Name = error.ErrorCode + " - " + error.Value
            })
                             .ToList();

            if (notes.IsNull())
            {
                notes = new List <TestValueNote>();
            }
            var testNotes = notes.Select(note => new TestNote {
                Id = note.TestValueNoteId, ErrorCodeId = note.ErrorId, Message = note.Message
            })
                            .ToList();

            var viewModel = new BabyDiaperRetentionEditViewModel
            {
                TestValueId        = retentionTestId,
                TestSheetId        = testValue.TestSheetId,
                TestPerson         = testValue.LastEditedPerson,
                ProductionCode     = TestServiceHelper.CreateProductionCode(testSheetInfo),
                ProductionCodeDay  = testValue.DayInYearOfArticleCreation,
                ProductionCodeTime = babyDiapersTestValue.DiaperCreatedTime,
                DiaperWeight       = babyDiapersTestValue.WeightDiaperDry,
                WeightRetentionWet = babyDiapersTestValue.RetentionWetWeight,
                Notes     = testNotes,
                NoteCodes = errorCodes
            };

            return(viewModel);
        }
Пример #3
0
        /// <summary>
        ///     deletes the testvalue
        /// </summary>
        /// <param name="testValueId">id of the testvalue</param>
        /// <returns>The deleted testvalue</returns>
        public TestValue Delete(Int32 testValueId)
        {
            var result = TestBll.DeleteTestValue(testValueId);

            InkoRetentionServiceHelper.UpdateRetentionAverageAndStv(result.TestSheetId);
            return(result);
        }
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewAquisitionTest(InkoAquisitionEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.IncontinencePad;

            var incontinencePadTestValue = new IncontinencePadTestValue
            {
                IncontinencePadTime   = viewModel.ProductionCodeTime,
                ExpireMonth           = viewModel.ExpireMonth,
                ExpireYear            = viewModel.ExpireYear,
                AcquisitionTimeFirst  = viewModel.AquisitionAddition1,
                AcquisitionTimeSecond = viewModel.AquisitionAddition2,
                AcquisitionTimeThird  = viewModel.AquisitionAddition3,
                AcquisitionWeight     = viewModel.InkoWeight,
                RewetAfterAcquisitionTimeDryWeight = viewModel.FPDry,
                RewetAfterAcquisitionTimeWetWeight = viewModel.FPWet,
                TestType = TestTypeIncontinencePad.AcquisitionTimeAndRewet
            };

            incontinencePadTestValue           = CalculateInkoAquisitionValues(incontinencePadTestValue, viewModel.TestSheetId);
            testValue.IncontinencePadTestValue = incontinencePadTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
Пример #5
0
        /// <summary>
        ///     Updates an given Testvalue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>the updated test value</returns>
        public TestValue UpdateRetentionTest(InkoRetentionEditViewModel viewModel)
        {
            var testValue = TestBll.GetTestValue(viewModel.TestValueId);

            if (testValue.IsNull() || (testValue.ArticleTestType != ArticleType.IncontinencePad) ||
                (testValue.IncontinencePadTestValue.TestType != TestTypeIncontinencePad.Retention))
            {
                Logger.Error("Old Test not found in DB");
                return(null);
            }
            testValue.LastEditedDateTime         = DateTime.Now;
            testValue.LastEditedPerson           = viewModel.TestPerson;
            testValue.DayInYearOfArticleCreation = viewModel.ProductionCodeDay;
            testValue.IncontinencePadTestValue.IncontinencePadTime      = viewModel.ProductionCodeTime;
            testValue.IncontinencePadTestValue.ExpireMonth              = viewModel.ExpireMonth;
            testValue.IncontinencePadTestValue.ExpireYear               = viewModel.ExpireYear;
            testValue.IncontinencePadTestValue.RetentionWeight          = viewModel.InkoWeight;
            testValue.IncontinencePadTestValue.RetentionWetValue        = viewModel.InkoWeightWet;
            testValue.IncontinencePadTestValue.RetentionAfterZentrifuge = viewModel.InkoWeightAfterZentrifuge;
            testValue.IncontinencePadTestValue.TestType = TestTypeIncontinencePad.Retention;

            TestServiceHelper.UpdateNotes(viewModel.Notes, testValue);

            testValue.IncontinencePadTestValue = CalculateInkoRetentionValues(testValue.IncontinencePadTestValue, viewModel.TestSheetId);

            TestBll.UpdateTestValue(testValue);
            return(testValue);
        }
        /// <summary>
        ///     deletes the testvalue
        /// </summary>
        /// <param name="testValueId">id of the testvalue</param>
        /// <returns>The deleted testvalue</returns>
        public TestValue Delete(Int32 testValueId)
        {
            var result = TestBll.DeleteTestValue(testValueId);

            BabyDiaperRewetServiceHelper.UpdateRewetAverageAndStv(result.TestSheetId);
            return(result);
        }
        /// <summary>
        ///     Updates an given Testvalue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>the updated test value</returns>
        public TestValue UpdateAquisitionTest(InkoAquisitionEditViewModel viewModel)
        {
            var testValue = TestBll.GetTestValue(viewModel.TestValueId);

            if (testValue.IsNull() || (testValue.ArticleTestType != ArticleType.IncontinencePad) ||
                (testValue.IncontinencePadTestValue.TestType != TestTypeIncontinencePad.AcquisitionTimeAndRewet))
            {
                Logger.Error("Old Test not found in DB");
                return(null);
            }
            testValue.LastEditedDateTime         = DateTime.Now;
            testValue.LastEditedPerson           = viewModel.TestPerson;
            testValue.DayInYearOfArticleCreation = viewModel.ProductionCodeDay;
            testValue.IncontinencePadTestValue.IncontinencePadTime   = viewModel.ProductionCodeTime;
            testValue.IncontinencePadTestValue.ExpireMonth           = viewModel.ExpireMonth;
            testValue.IncontinencePadTestValue.ExpireYear            = viewModel.ExpireYear;
            testValue.IncontinencePadTestValue.AcquisitionTimeFirst  = viewModel.AquisitionAddition1;
            testValue.IncontinencePadTestValue.AcquisitionTimeSecond = viewModel.AquisitionAddition2;
            testValue.IncontinencePadTestValue.AcquisitionTimeThird  = viewModel.AquisitionAddition3;
            testValue.IncontinencePadTestValue.AcquisitionWeight     = viewModel.InkoWeight;
            testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight = viewModel.FPDry;
            testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight = viewModel.FPWet;
            testValue.IncontinencePadTestValue.TestType = TestTypeIncontinencePad.AcquisitionTimeAndRewet;

            TestServiceHelper.UpdateNotes(viewModel.Notes, testValue);

            testValue.IncontinencePadTestValue = CalculateInkoAquisitionValues(testValue.IncontinencePadTestValue, viewModel.TestSheetId);

            TestBll.UpdateTestValue(testValue);
            return(testValue);
        }
        /// <summary>
        ///     Calculates all values for the incontinence rewet test
        /// </summary>
        /// <param name="incontinencePadTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private IncontinencePadTestValue CalculateInkoRewetValues(IncontinencePadTestValue incontinencePadTestValue,
                                                                  Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            incontinencePadTestValue.RewetFreeDifference = incontinencePadTestValue.RewetFreeWetValue - incontinencePadTestValue.RewetFreeDryValue;
            incontinencePadTestValue.RewetFreeRw         = GetRewetFreeRwType(incontinencePadTestValue.RewetFreeDifference, productionOrder);
            return(incontinencePadTestValue);
        }
Пример #9
0
        /// <summary>
        ///     Calculates all values for the baby diaper rewet test
        /// </summary>
        /// <param name="babyDiaperTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private BabyDiaperTestValue CalculateBabyDiaperRewetValues(BabyDiaperTestValue babyDiaperTestValue,
                                                                   Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            babyDiaperTestValue.Rewet140Rw        = GetRewet140RwType(babyDiaperTestValue.Rewet140Value, productionOrder);
            babyDiaperTestValue.Rewet210Rw        = GetRewet210RwType(babyDiaperTestValue.Rewet210Value, productionOrder);
            babyDiaperTestValue.PenetrationRwType = GetPenetrationRwType(babyDiaperTestValue.PenetrationTimeAdditionFourth, productionOrder);
            return(babyDiaperTestValue);
        }
Пример #10
0
        /// <summary>
        ///     Calculates all values for the incontinence rewet test
        /// </summary>
        /// <param name="incontinencePadTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private IncontinencePadTestValue CalculateInkoRetentionValues(IncontinencePadTestValue incontinencePadTestValue,
                                                                      Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            incontinencePadTestValue.RetentionAbsorbtion = incontinencePadTestValue.RetentionWetValue - incontinencePadTestValue.RetentionWeight;
            incontinencePadTestValue.RetentionEndValue   = incontinencePadTestValue.RetentionAfterZentrifuge - incontinencePadTestValue.RetentionWeight;
            incontinencePadTestValue.RetentionRw         = GetRetentionRwType(incontinencePadTestValue.RetentionEndValue, productionOrder);
            return(incontinencePadTestValue);
        }
        /// <summary>
        ///     Calculates all values for the incontinence acquisition test
        /// </summary>
        /// <param name="incontinencePadTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private IncontinencePadTestValue CalculateInkoAquisitionValues(IncontinencePadTestValue incontinencePadTestValue,
                                                                       Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            incontinencePadTestValue.AcquisitionTimeFirstRw  = GetMaxRw(incontinencePadTestValue.AcquisitionTimeFirst, productionOrder.Article.MaxHyTec1);
            incontinencePadTestValue.AcquisitionTimeSecondRw = GetMaxRw(incontinencePadTestValue.AcquisitionTimeSecond, productionOrder.Article.MaxHyTec2);
            incontinencePadTestValue.AcquisitionTimeThirdRw  = GetMaxRw(incontinencePadTestValue.AcquisitionTimeThird, productionOrder.Article.MaxHyTec3);

            incontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference = incontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight
                                                                                 - incontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight;
            incontinencePadTestValue.RewetAfterAcquisitionTimeRw = GetMaxRw(incontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference,
                                                                            productionOrder.Article.MaxInkoRewetAfterAquisition);
            return(incontinencePadTestValue);
        }
Пример #12
0
        /// <summary>
        ///     Updates an given Testvalue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>the updated test value</returns>
        public TestValue UpdateRewetTest(BabyDiaperRewetEditViewModel viewModel)
        {
            var testValue = TestBll.GetTestValue(viewModel.TestValueId);

            if (testValue.IsNull() || (testValue.ArticleTestType != ArticleType.BabyDiaper) ||
                ((testValue.BabyDiaperTestValue.TestType != TestTypeBabyDiaper.Rewet) &&
                 (testValue.BabyDiaperTestValue.TestType != TestTypeBabyDiaper.RewetAndPenetrationTime)))
            {
                Logger.Error("Old Test not found in DB");
                return(null);
            }
            testValue.LastEditedDateTime                                = DateTime.Now;
            testValue.LastEditedPerson                                  = viewModel.TestPerson;
            testValue.DayInYearOfArticleCreation                        = viewModel.ProductionCodeDay;
            testValue.BabyDiaperTestValue.DiaperCreatedTime             = viewModel.ProductionCodeTime;
            testValue.BabyDiaperTestValue.WeightDiaperDry               = viewModel.DiaperWeight;
            testValue.BabyDiaperTestValue.Rewet140Value                 = viewModel.RewetAfter140;
            testValue.BabyDiaperTestValue.Rewet210Value                 = viewModel.RewetAfter210;
            testValue.BabyDiaperTestValue.StrikeTroughValue             = viewModel.StrikeThrough;
            testValue.BabyDiaperTestValue.DistributionOfTheStrikeTrough = viewModel.Distribution;
            if (viewModel.TestType == TestTypeBabyDiaper.RewetAndPenetrationTime)
            {
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionFirst  = viewModel.PenetrationTime1;
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionSecond = viewModel.PenetrationTime2;
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionThird  = viewModel.PenetrationTime3;
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionFourth = viewModel.PenetrationTime4;
            }
            else
            {
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionFirst  = 0;
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionSecond = 0;
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionThird  = 0;
                testValue.BabyDiaperTestValue.PenetrationTimeAdditionFourth = 0;
            }
            testValue.BabyDiaperTestValue.TestType = viewModel.TestType;

            TestServiceHelper.UpdateNotes(viewModel.Notes, testValue);

            testValue.BabyDiaperTestValue = CalculateBabyDiaperRewetValues(testValue.BabyDiaperTestValue,
                                                                           viewModel.TestSheetId);

            TestBll.UpdateTestValue(testValue);
            return(testValue);
        }
        /// <summary>
        ///     Updates the Average and standard deviation values of the testsheet for retention values
        /// </summary>
        /// <param name="testSheetId">id of the test sheet</param>
        /// <returns>the updated test sheet</returns>
        public TestSheet UpdateRetentionAverageAndStv(Int32 testSheetId)
        {
            var testSheet        = TestBll.GetTestSheetInfo(testSheetId);
            var retentionTestAvg =
                testSheet.TestValues.FirstOrDefault(
                    tv =>
                    (tv.ArticleTestType == ArticleType.BabyDiaper) && (tv.BabyDiaperTestValue.TestType == TestTypeBabyDiaper.Retention) &&
                    (tv.TestValueType == TestValueType.Average));
            var retentionTestStDev =
                testSheet.TestValues.FirstOrDefault(
                    tv =>
                    (tv.ArticleTestType == ArticleType.BabyDiaper) && (tv.BabyDiaperTestValue.TestType == TestTypeBabyDiaper.Retention) &&
                    (tv.TestValueType == TestValueType.StandardDeviation));

            UpdateRetentionAvg(testSheet, retentionTestAvg);
            UpdateRetentionStDev(testSheet, retentionTestAvg, retentionTestStDev);
            TestBll.UpdateTestSheet();
            return(testSheet);
        }
Пример #14
0
        private void UpdateInkoRetentionAvg(TestSheet testSheet, TestValue retentionTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempInko        = new IncontinencePadTestValue {
                RetentionRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.Retention))
                )
            {
                tempInko.RetentionWeight          += testValue.IncontinencePadTestValue.RetentionWeight;
                tempInko.RetentionWetValue        += testValue.IncontinencePadTestValue.RetentionWetValue;
                tempInko.RetentionAfterZentrifuge += testValue.IncontinencePadTestValue.RetentionAfterZentrifuge;
                tempInko.RetentionAbsorbtion      += testValue.IncontinencePadTestValue.RetentionAbsorbtion;
                tempInko.RetentionEndValue        += testValue.IncontinencePadTestValue.RetentionEndValue;
                if (testValue.IncontinencePadTestValue.RetentionRw == RwType.Worse)
                {
                    tempInko.RetentionRw = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            retentionTestAvg.IncontinencePadTestValue.RetentionWeight          = tempInko.RetentionWeight / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionWetValue        = tempInko.RetentionWetValue / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionAfterZentrifuge = tempInko.RetentionAfterZentrifuge / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionAbsorbtion      = tempInko.RetentionAbsorbtion / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionEndValue        = tempInko.RetentionEndValue / counter;
            if ((GetRetentionRwType(retentionTestAvg.IncontinencePadTestValue.RetentionEndValue, productionOrder) == RwType.Worse) && (tempInko.RetentionRw != RwType.Ok))
            {
                tempInko.RetentionRw = RwType.Worse;
            }
            retentionTestAvg.IncontinencePadTestValue.RetentionRw = tempInko.RetentionRw;
        }
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewRetentionTest(BabyDiaperRetentionEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.BabyDiaper;

            var babyDiaperTestValue = new BabyDiaperTestValue
            {
                DiaperCreatedTime  = viewModel.ProductionCodeTime,
                WeightDiaperDry    = viewModel.DiaperWeight,
                RetentionWetWeight = viewModel.WeightRetentionWet,
                TestType           = TestTypeBabyDiaper.Retention
            };

            babyDiaperTestValue           = CalculateBabyDiaperRetentionValues(babyDiaperTestValue, viewModel.TestSheetId);
            testValue.BabyDiaperTestValue = babyDiaperTestValue;

            testValue = TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
        private void UpdateRetentionAvg(TestSheet testSheet, TestValue retentionTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempBabyDiaper  = new BabyDiaperTestValue {
                RetentionRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue => (testValue.TestValueType == TestValueType.Single) && (testValue.BabyDiaperTestValue.TestType == TestTypeBabyDiaper.Retention))
                )
            {
                tempBabyDiaper.WeightDiaperDry                 += testValue.BabyDiaperTestValue.WeightDiaperDry;
                tempBabyDiaper.RetentionWetWeight              += testValue.BabyDiaperTestValue.RetentionWetWeight;
                tempBabyDiaper.RetentionAfterZentrifugeValue   += testValue.BabyDiaperTestValue.RetentionAfterZentrifugeValue;
                tempBabyDiaper.RetentionAfterZentrifugePercent += testValue.BabyDiaperTestValue.RetentionAfterZentrifugePercent;
                if (testValue.BabyDiaperTestValue.RetentionRw == RwType.Worse)
                {
                    tempBabyDiaper.RetentionRw = RwType.SomethingWorse;
                }
                tempBabyDiaper.SapGHoewiValue += testValue.BabyDiaperTestValue.SapGHoewiValue;
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            retentionTestAvg.BabyDiaperTestValue.WeightDiaperDry                 = tempBabyDiaper.WeightDiaperDry / counter;
            retentionTestAvg.BabyDiaperTestValue.RetentionWetWeight              = tempBabyDiaper.RetentionWetWeight / counter;
            retentionTestAvg.BabyDiaperTestValue.RetentionAfterZentrifugeValue   = tempBabyDiaper.RetentionAfterZentrifugeValue / counter;
            retentionTestAvg.BabyDiaperTestValue.RetentionAfterZentrifugePercent = tempBabyDiaper.RetentionAfterZentrifugePercent / counter;
            if ((GetRetentionRwType(retentionTestAvg.BabyDiaperTestValue.RetentionAfterZentrifugeValue, productionOrder) == RwType.Worse) &&
                (tempBabyDiaper.RetentionRw != RwType.Ok))
            {
                tempBabyDiaper.RetentionRw = RwType.Worse;
            }
            retentionTestAvg.BabyDiaperTestValue.RetentionRw    = tempBabyDiaper.RetentionRw;
            retentionTestAvg.BabyDiaperTestValue.SapGHoewiValue = tempBabyDiaper.SapGHoewiValue / counter;
        }
Пример #17
0
        private void UpdatePenetrationAvg(TestSheet testSheet, TestValue penetrationTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempBabyDiaper  = new BabyDiaperTestValue {
                PenetrationRwType = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) && (testValue.BabyDiaperTestValue.TestType == TestTypeBabyDiaper.RewetAndPenetrationTime))
                )
            {
                tempBabyDiaper.WeightDiaperDry += testValue.BabyDiaperTestValue.WeightDiaperDry;
                tempBabyDiaper.PenetrationTimeAdditionFirst  += testValue.BabyDiaperTestValue.PenetrationTimeAdditionFirst;
                tempBabyDiaper.PenetrationTimeAdditionSecond += testValue.BabyDiaperTestValue.PenetrationTimeAdditionSecond;
                tempBabyDiaper.PenetrationTimeAdditionThird  += testValue.BabyDiaperTestValue.PenetrationTimeAdditionThird;
                tempBabyDiaper.PenetrationTimeAdditionFourth += testValue.BabyDiaperTestValue.PenetrationTimeAdditionFourth;
                if (testValue.BabyDiaperTestValue.PenetrationRwType == RwType.Worse)
                {
                    tempBabyDiaper.PenetrationRwType = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            penetrationTestAvg.BabyDiaperTestValue.WeightDiaperDry = tempBabyDiaper.WeightDiaperDry / counter;
            penetrationTestAvg.BabyDiaperTestValue.PenetrationTimeAdditionFirst  = tempBabyDiaper.PenetrationTimeAdditionFirst / counter;
            penetrationTestAvg.BabyDiaperTestValue.PenetrationTimeAdditionSecond = tempBabyDiaper.PenetrationTimeAdditionSecond / counter;
            penetrationTestAvg.BabyDiaperTestValue.PenetrationTimeAdditionThird  = tempBabyDiaper.PenetrationTimeAdditionThird / counter;
            penetrationTestAvg.BabyDiaperTestValue.PenetrationTimeAdditionFourth = tempBabyDiaper.PenetrationTimeAdditionFourth / counter;
            if (GetPenetrationRwType(penetrationTestAvg.BabyDiaperTestValue.PenetrationTimeAdditionFourth, productionOrder) == RwType.Worse)
            {
                tempBabyDiaper.PenetrationRwType = RwType.Worse;
            }
            penetrationTestAvg.BabyDiaperTestValue.PenetrationRwType = tempBabyDiaper.PenetrationRwType;
        }
Пример #18
0
        /// <summary>
        ///     Gets the InkoRetentionEditViewModel for edit
        /// </summary>
        /// <param name="testSheetId">The Id of the test sheet where the Inko rewet test is for</param>
        /// <returns>The InkoRewetEditViewModel</returns>
        public InkoRetentionEditViewModel GetNewInkoRetentionEditViewModel(Int32 testSheetId)
        {
            var testSheet = TestBll.GetTestSheetInfo(testSheetId);

            if (testSheet.IsNull() || (testSheet.ArticleType != ArticleType.IncontinencePad))
            {
                Logger.Error("TestBlatt mit id " + testSheetId + "existiert nicht in DB!");
                return(null);
            }

            var errors     = TestBll.GetAllNoteCodes();
            var errorCodes = errors.Select(error => new ErrorCode {
                ErrorId = error.ErrorId, Name = error.ErrorCode + " - " + error.Value
            })
                             .ToList();

            var viewModel = new InkoRetentionEditViewModel
            {
                TestSheetId    = testSheetId,
                TestValueId    = -1,
                ProductionCode = TestServiceHelper.CreateProductionCode(testSheet),
                NoteCodes      = errorCodes,
                Notes          = new List <TestNote>()
            };

            var oldTestValue = testSheet.TestValues.Where(t => t.TestValueType == TestValueType.Single)
                               .ToList()
                               .LastOrDefault();

            if (oldTestValue == null)
            {
                return(viewModel);
            }
            viewModel.TestPerson         = oldTestValue.LastEditedPerson;
            viewModel.ProductionCodeDay  = oldTestValue.DayInYearOfArticleCreation;
            viewModel.ProductionCodeTime = oldTestValue.IncontinencePadTestValue.IncontinencePadTime;
            viewModel.ExpireMonth        = oldTestValue.IncontinencePadTestValue.ExpireMonth;
            viewModel.ExpireYear         = oldTestValue.IncontinencePadTestValue.ExpireYear;

            return(viewModel);
        }
        /// <summary>
        ///     Calculates all values for the baby diaper retention test
        /// </summary>
        /// <param name="babyDiaperTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private BabyDiaperTestValue CalculateBabyDiaperRetentionValues(BabyDiaperTestValue babyDiaperTestValue,
                                                                       Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            babyDiaperTestValue.RetentionAfterZentrifugeValue = babyDiaperTestValue.RetentionWetWeight -
                                                                babyDiaperTestValue.WeightDiaperDry;
            if (Math.Abs(babyDiaperTestValue.WeightDiaperDry) > 0.1)
            {
                babyDiaperTestValue.RetentionAfterZentrifugePercent = (babyDiaperTestValue.RetentionWetWeight -
                                                                       babyDiaperTestValue.WeightDiaperDry) * 100.0 /
                                                                      babyDiaperTestValue.WeightDiaperDry;
            }
            babyDiaperTestValue.RetentionRw    = GetRetentionRwType(babyDiaperTestValue.RetentionAfterZentrifugeValue, productionOrder);
            babyDiaperTestValue.SapType        = testSheet.SAPType;
            babyDiaperTestValue.SapNr          = testSheet.SAPNr;
            babyDiaperTestValue.SapGHoewiValue = (babyDiaperTestValue.RetentionWetWeight - babyDiaperTestValue.WeightDiaperDry - productionOrder.Component.PillowRetentWithoutSAP)
                                                 / productionOrder.Component.SAP;
            return(babyDiaperTestValue);
        }
Пример #20
0
        /// <summary>
        ///     Updates the Average and standard deviation values of the testsheet for retention values
        /// </summary>
        /// <param name="testSheetId">id of the test sheet</param>
        /// <returns>the updated test sheet</returns>
        public TestSheet UpdateRetentionAverageAndStv(Int32 testSheetId)
        {
            var testSheet            = TestBll.GetTestSheetInfo(testSheetId);
            var inkoRetentionTestAvg =
                testSheet.TestValues.FirstOrDefault(
                    tv =>
                    (tv.ArticleTestType == ArticleType.IncontinencePad) &&
                    (tv.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.Retention) &&
                    (tv.TestValueType == TestValueType.Average));
            var inkoRetentionTestStDev =
                testSheet.TestValues.FirstOrDefault(
                    tv =>
                    (tv.ArticleTestType == ArticleType.IncontinencePad) &&
                    (tv.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.Retention) &&
                    (tv.TestValueType == TestValueType.StandardDeviation));

            UpdateInkoRetentionAvg(testSheet, inkoRetentionTestAvg);
            UpdateInkoRetentionStDev(testSheet, inkoRetentionTestAvg, inkoRetentionTestStDev);

            TestBll.UpdateTestSheet();
            return(testSheet);
        }
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewRewetTest(InkoRewetEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.IncontinencePad;

            var incontinencePadTestValue = new IncontinencePadTestValue
            {
                IncontinencePadTime = viewModel.ProductionCodeTime,
                ExpireMonth         = viewModel.ExpireMonth,
                ExpireYear          = viewModel.ExpireYear,
                RewetFreeDryValue   = viewModel.FPDry,
                RewetFreeWetValue   = viewModel.FPWet,
                TestType            = TestTypeIncontinencePad.RewetFree
            };

            incontinencePadTestValue           = CalculateInkoRewetValues(incontinencePadTestValue, viewModel.TestSheetId);
            testValue.IncontinencePadTestValue = incontinencePadTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
        private void UpdateInkoRewetAvg(TestSheet testSheet, TestValue rewetTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempInko        = new IncontinencePadTestValue {
                RewetFreeRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.RewetFree))
                )
            {
                tempInko.RewetFreeDryValue   += testValue.IncontinencePadTestValue.RewetFreeDryValue;
                tempInko.RewetFreeWetValue   += testValue.IncontinencePadTestValue.RewetFreeWetValue;
                tempInko.RewetFreeDifference += testValue.IncontinencePadTestValue.RewetFreeDifference;
                if (testValue.IncontinencePadTestValue.RewetFreeRw == RwType.Worse)
                {
                    tempInko.RewetFreeRw = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            rewetTestAvg.IncontinencePadTestValue.RewetFreeDryValue   = tempInko.RewetFreeDryValue / counter;
            rewetTestAvg.IncontinencePadTestValue.RewetFreeWetValue   = tempInko.RewetFreeWetValue / counter;
            rewetTestAvg.IncontinencePadTestValue.RewetFreeDifference = tempInko.RewetFreeDifference / counter;
            if (GetRewetFreeRwType(rewetTestAvg.IncontinencePadTestValue.RewetFreeDifference, productionOrder) == RwType.Worse)
            {
                tempInko.RewetFreeRw = RwType.Worse;
            }
            rewetTestAvg.IncontinencePadTestValue.RewetFreeRw = tempInko.RewetFreeRw;
        }
        /// <summary>
        ///     Gets the BabyDiaperRewetEditViewModel for edit
        /// </summary>
        /// <param name="testSheetId">The Id of the test sheet where the Babydiaper rewet test is for</param>
        /// <returns>The BabyDiaperRewetEditViewModel</returns>
        public BabyDiaperRewetEditViewModel GetNewBabyDiaperRewetEditViewModel(Int32 testSheetId)
        {
            var testSheetInfo = TestBll.GetTestSheetInfo(testSheetId);

            if (testSheetInfo.IsNull())
            {
                Logger.Error("TestBlatt mit id " + testSheetId + "existiert nicht in DB!");
                return(null);
            }

            var errors     = TestBll.GetAllNoteCodes();
            var errorCodes = errors.Select(error => new ErrorCode {
                ErrorId = error.ErrorId, Name = error.ErrorCode + " - " + error.Value
            })
                             .ToList();
            var viewModel = new BabyDiaperRewetEditViewModel
            {
                TestSheetId    = testSheetId,
                TestValueId    = -1,
                ProductionCode = TestServiceHelper.CreateProductionCode(testSheetInfo),
                NoteCodes      = errorCodes,
                Notes          = new List <TestNote>()
            };

            var oldTestValue = testSheetInfo.TestValues.Where(t => t.TestValueType == TestValueType.Single)
                               .ToList()
                               .LastOrDefault();

            if (oldTestValue == null)
            {
                return(viewModel);
            }
            viewModel.TestPerson         = oldTestValue.LastEditedPerson;
            viewModel.ProductionCodeDay  = oldTestValue.DayInYearOfArticleCreation;
            viewModel.ProductionCodeTime = oldTestValue.BabyDiaperTestValue.DiaperCreatedTime;

            return(viewModel);
        }
Пример #24
0
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewRetentionTest(InkoRetentionEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.IncontinencePad;

            var incontinencePadTestValue = new IncontinencePadTestValue
            {
                IncontinencePadTime      = viewModel.ProductionCodeTime,
                ExpireMonth              = viewModel.ExpireMonth,
                ExpireYear               = viewModel.ExpireYear,
                RetentionWeight          = viewModel.InkoWeight,
                RetentionWetValue        = viewModel.InkoWeightWet,
                RetentionAfterZentrifuge = viewModel.InkoWeightAfterZentrifuge,
                TestType = TestTypeIncontinencePad.Retention
            };

            incontinencePadTestValue           = CalculateInkoRetentionValues(incontinencePadTestValue, viewModel.TestSheetId);
            testValue.IncontinencePadTestValue = incontinencePadTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
        /// <summary>
        ///     Updates an given Testvalue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>the updated test value</returns>
        public TestValue UpdateRetentionTest(BabyDiaperRetentionEditViewModel viewModel)
        {
            var testValue = TestBll.GetTestValue(viewModel.TestValueId);

            if (testValue.IsNull() || (testValue.ArticleTestType != ArticleType.BabyDiaper) || (testValue.BabyDiaperTestValue.TestType != TestTypeBabyDiaper.Retention))
            {
                Logger.Error("Old Test not found in DB");
                return(null);
            }
            testValue.LastEditedDateTime                     = DateTime.Now;
            testValue.LastEditedPerson                       = viewModel.TestPerson;
            testValue.DayInYearOfArticleCreation             = viewModel.ProductionCodeDay;
            testValue.BabyDiaperTestValue.DiaperCreatedTime  = viewModel.ProductionCodeTime;
            testValue.BabyDiaperTestValue.WeightDiaperDry    = viewModel.DiaperWeight;
            testValue.BabyDiaperTestValue.RetentionWetWeight = viewModel.WeightRetentionWet;

            TestServiceHelper.UpdateNotes(viewModel.Notes, testValue);

            testValue.BabyDiaperTestValue = CalculateBabyDiaperRetentionValues(testValue.BabyDiaperTestValue,
                                                                               viewModel.TestSheetId);

            TestBll.UpdateTestValue(testValue);
            return(testValue);
        }
Пример #26
0
        /// <summary>
        ///     Gets a new InkoRetentionEditViewModel
        /// </summary>
        /// <param name="rewetTestId">The Id of the Inko rewet test which will be edited</param>
        /// <returns>The InkoRewetEditViewModel</returns>
        public InkoRetentionEditViewModel GetInkoRetentionEditViewModel(Int32 rewetTestId)
        {
            var testValue = TestBll.GetTestValue(rewetTestId);

            if (testValue.IsNull())
            {
                Logger.Error("TestValue mit id " + rewetTestId + "existiert nicht in DB!");
                return(null);
            }
            var incontinencePadTestValue = testValue.IncontinencePadTestValue;

            if (incontinencePadTestValue.IsNull())
            {
                Logger.Error("IncontinencePadTestValue mit id " + testValue.TestValueId + "existiert nicht in DB!");
                return(null);
            }
            if (incontinencePadTestValue.TestType != TestTypeIncontinencePad.Retention)
            {
                Logger.Error("Requestet test was not an InkoRewet Test. Id " + testValue.TestValueId);
                return(null);
            }
            var testSheet = testValue.TestSheet;

            if (testSheet.IsNull())
            {
                Logger.Error("TestBlatt mit id " + testValue.TestSheetId + "existiert nicht in DB!");
                return(null);
            }
            var notes      = testValue.TestValueNote;
            var errors     = TestBll.GetAllNoteCodes();
            var errorCodes = errors.Select(error => new ErrorCode {
                ErrorId = error.ErrorId, Name = error.ErrorCode + " - " + error.Value
            })
                             .ToList();

            if (notes.IsNull())
            {
                notes = new List <TestValueNote>();
            }
            var testNotes = notes.Select(note => new TestNote {
                Id = note.TestValueNoteId, ErrorCodeId = note.ErrorId, Message = note.Message
            })
                            .ToList();

            var viewModel = new InkoRetentionEditViewModel
            {
                TestValueId               = rewetTestId,
                TestSheetId               = testValue.TestSheetId,
                TestPerson                = testValue.LastEditedPerson,
                ProductionCode            = TestServiceHelper.CreateProductionCode(testSheet),
                ProductionCodeDay         = testValue.DayInYearOfArticleCreation,
                ProductionCodeTime        = incontinencePadTestValue.IncontinencePadTime,
                ExpireMonth               = incontinencePadTestValue.ExpireMonth,
                ExpireYear                = incontinencePadTestValue.ExpireYear,
                InkoWeight                = incontinencePadTestValue.RetentionWeight,
                InkoWeightWet             = incontinencePadTestValue.RetentionWetValue,
                InkoWeightAfterZentrifuge = incontinencePadTestValue.RetentionAfterZentrifuge,
                Notes     = testNotes,
                NoteCodes = errorCodes
            };

            return(viewModel);
        }
Пример #27
0
        private void UpdateRewetAvg(TestSheet testSheet, TestValue rewetTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempBabyDiaper  = new BabyDiaperTestValue {
                Rewet140Rw = RwType.Ok, Rewet210Rw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    ((testValue.BabyDiaperTestValue.TestType == TestTypeBabyDiaper.Rewet) ||
                     (testValue.BabyDiaperTestValue.TestType == TestTypeBabyDiaper.RewetAndPenetrationTime)))
                )
            {
                tempBabyDiaper.WeightDiaperDry               += testValue.BabyDiaperTestValue.WeightDiaperDry;
                tempBabyDiaper.Rewet140Value                 += testValue.BabyDiaperTestValue.Rewet140Value;
                tempBabyDiaper.Rewet210Value                 += testValue.BabyDiaperTestValue.Rewet210Value;
                tempBabyDiaper.StrikeTroughValue             += testValue.BabyDiaperTestValue.StrikeTroughValue;
                tempBabyDiaper.DistributionOfTheStrikeTrough += testValue.BabyDiaperTestValue.DistributionOfTheStrikeTrough;
                if (testValue.BabyDiaperTestValue.Rewet140Rw == RwType.Worse)
                {
                    tempBabyDiaper.Rewet140Rw = RwType.SomethingWorse;
                }
                if (testValue.BabyDiaperTestValue.Rewet210Rw == RwType.Worse)
                {
                    tempBabyDiaper.Rewet210Rw = RwType.SomethingWorse;
                }
                if (testValue.BabyDiaperTestValue.PenetrationRwType == RwType.Worse)
                {
                    tempBabyDiaper.PenetrationRwType = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            rewetTestAvg.BabyDiaperTestValue.WeightDiaperDry               = tempBabyDiaper.WeightDiaperDry / counter;
            rewetTestAvg.BabyDiaperTestValue.Rewet140Value                 = tempBabyDiaper.Rewet140Value / counter;
            rewetTestAvg.BabyDiaperTestValue.Rewet210Value                 = tempBabyDiaper.Rewet210Value / counter;
            rewetTestAvg.BabyDiaperTestValue.StrikeTroughValue             = tempBabyDiaper.StrikeTroughValue / counter;
            rewetTestAvg.BabyDiaperTestValue.DistributionOfTheStrikeTrough = tempBabyDiaper.DistributionOfTheStrikeTrough / counter;
            if (GetRewet140RwType(rewetTestAvg.BabyDiaperTestValue.Rewet140Value, productionOrder) == RwType.Worse)
            {
                tempBabyDiaper.Rewet140Rw = RwType.Worse;
            }
            if (GetRewet210RwType(rewetTestAvg.BabyDiaperTestValue.Rewet210Value, productionOrder) == RwType.Worse)
            {
                tempBabyDiaper.Rewet210Rw = RwType.Worse;
            }
            if (GetPenetrationRwType(rewetTestAvg.BabyDiaperTestValue.PenetrationTimeAdditionFourth, productionOrder) == RwType.Worse)
            {
                tempBabyDiaper.PenetrationRwType = RwType.Worse;
            }

            rewetTestAvg.BabyDiaperTestValue.Rewet140Rw        = tempBabyDiaper.Rewet140Rw;
            rewetTestAvg.BabyDiaperTestValue.Rewet210Rw        = tempBabyDiaper.Rewet210Rw;
            rewetTestAvg.BabyDiaperTestValue.PenetrationRwType = tempBabyDiaper.PenetrationRwType;
        }
        private void UpdateInkoAquisitionAvg(TestSheet testSheet, TestValue aquisitionTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempInko        = new IncontinencePadTestValue {
                RewetFreeRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.AcquisitionTimeAndRewet))
                )
            {
                tempInko.AcquisitionTimeFirst  += testValue.IncontinencePadTestValue.AcquisitionTimeFirst;
                tempInko.AcquisitionTimeSecond += testValue.IncontinencePadTestValue.AcquisitionTimeSecond;
                tempInko.AcquisitionTimeThird  += testValue.IncontinencePadTestValue.AcquisitionTimeThird;
                tempInko.AcquisitionWeight     += testValue.IncontinencePadTestValue.AcquisitionWeight;

                tempInko.RewetAfterAcquisitionTimeDryWeight        += testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight;
                tempInko.RewetAfterAcquisitionTimeWetWeight        += testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight;
                tempInko.RewetAfterAcquisitionTimeWeightDifference += testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference;
                if (testValue.IncontinencePadTestValue.AcquisitionTimeFirstRw == RwType.Worse)
                {
                    tempInko.AcquisitionTimeFirstRw = RwType.SomethingWorse;
                }
                if (testValue.IncontinencePadTestValue.AcquisitionTimeSecondRw == RwType.Worse)
                {
                    tempInko.AcquisitionTimeSecondRw = RwType.SomethingWorse;
                }
                if (testValue.IncontinencePadTestValue.AcquisitionTimeThirdRw == RwType.Worse)
                {
                    tempInko.AcquisitionTimeThirdRw = RwType.SomethingWorse;
                }
                if (testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeRw == RwType.Worse)
                {
                    tempInko.RewetAfterAcquisitionTimeRw = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirst  = tempInko.AcquisitionTimeFirst / counter;
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecond = tempInko.AcquisitionTimeSecond / counter;
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThird  = tempInko.AcquisitionTimeThird / counter;
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionWeight     = tempInko.AcquisitionWeight / counter;
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight        = tempInko.RewetAfterAcquisitionTimeDryWeight / counter;
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight        = tempInko.RewetAfterAcquisitionTimeWetWeight / counter;
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference = tempInko.RewetAfterAcquisitionTimeWeightDifference / counter;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirst, productionOrder.Article.MaxHyTec1) == RwType.Worse)
            {
                tempInko.AcquisitionTimeFirstRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirstRw = tempInko.AcquisitionTimeFirstRw;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecond, productionOrder.Article.MaxHyTec2) == RwType.Worse)
            {
                tempInko.AcquisitionTimeSecondRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecondRw = tempInko.AcquisitionTimeSecondRw;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThird, productionOrder.Article.MaxHyTec3) == RwType.Worse)
            {
                tempInko.AcquisitionTimeThirdRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThirdRw = tempInko.AcquisitionTimeThirdRw;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference, productionOrder.Article.MaxInkoRewetAfterAquisition)
                == RwType.Worse)
            {
                tempInko.RewetAfterAcquisitionTimeRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeRw = tempInko.RewetAfterAcquisitionTimeRw;
        }
        /// <summary>
        ///     Gets a new BabyDiaperRewetEditViewModel or returns null if something is wrong
        /// </summary>
        /// <param name="rewetTestId">The Id of the Babydiaper rewet test which will be edited</param>
        /// <returns>The BabyDiaperRewetEditViewModel</returns>
        public BabyDiaperRewetEditViewModel GetBabyDiaperRewetEditViewModel(Int32 rewetTestId)
        {
            var testValue = TestBll.GetTestValue(rewetTestId);

            if (testValue.IsNull())
            {
                Logger.Error("TestValue mit id " + rewetTestId + "existiert nicht in DB!");
                return(null);
            }
            var babyDiapersTestValue = testValue.BabyDiaperTestValue;

            if (babyDiapersTestValue.IsNull())
            {
                Logger.Error("BabyDiaperRetentionTestValue mit id " + testValue.TestValueId + "existiert nicht in DB!");
                return(null);
            }
            if ((babyDiapersTestValue.TestType != TestTypeBabyDiaper.Rewet) && (babyDiapersTestValue.TestType != TestTypeBabyDiaper.RewetAndPenetrationTime))
            {
                Logger.Error("Requestet test was not an BabyDiaperRetention Test. Id " + testValue.TestValueId);
                return(null);
            }
            var testSheetInfo = testValue.TestSheet;

            if (testSheetInfo.IsNull())
            {
                Logger.Error("TestBlatt mit id " + testValue.TestSheetId + "existiert nicht in DB!");
                return(null);
            }
            var notes      = testValue.TestValueNote;
            var errors     = TestBll.GetAllNoteCodes();
            var errorCodes = errors.Select(error => new ErrorCode {
                ErrorId = error.ErrorId, Name = error.ErrorCode + " - " + error.Value
            })
                             .ToList();

            if (notes.IsNull())
            {
                notes = new List <TestValueNote>();
            }
            var testNotes = notes.Select(note => new TestNote {
                Id = note.TestValueNoteId, ErrorCodeId = note.ErrorId, Message = note.Message
            })
                            .ToList();

            var viewModel = new BabyDiaperRewetEditViewModel
            {
                TestValueId        = rewetTestId,
                TestSheetId        = testValue.TestSheetId,
                TestPerson         = testValue.LastEditedPerson,
                ProductionCode     = TestServiceHelper.CreateProductionCode(testSheetInfo),
                ProductionCodeDay  = testValue.DayInYearOfArticleCreation,
                ProductionCodeTime = babyDiapersTestValue.DiaperCreatedTime,
                DiaperWeight       = babyDiapersTestValue.WeightDiaperDry,
                RewetAfter140      = babyDiapersTestValue.Rewet140Value,
                RewetAfter210      = babyDiapersTestValue.Rewet210Value,
                StrikeThrough      = babyDiapersTestValue.StrikeTroughValue,
                Distribution       = babyDiapersTestValue.DistributionOfTheStrikeTrough,
                PenetrationTime1   = babyDiapersTestValue.PenetrationTimeAdditionFirst,
                PenetrationTime2   = babyDiapersTestValue.PenetrationTimeAdditionSecond,
                PenetrationTime3   = babyDiapersTestValue.PenetrationTimeAdditionThird,
                PenetrationTime4   = babyDiapersTestValue.PenetrationTimeAdditionFourth,
                TestType           = babyDiapersTestValue.TestType,
                Notes     = testNotes,
                NoteCodes = errorCodes
            };

            return(viewModel);
        }