/// <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);
        }
        /// <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);
        }
예제 #3
0
 public ActionResult AddNote(InkoAquisitionEditViewModel viewModel)
 {
     if (viewModel.Notes.IsNull())
     {
         viewModel.Notes = new List <TestNote>();
     }
     viewModel.Notes.Add(new TestNote());
     return(View("Edit", viewModel));
 }
        /// <summary>
        ///     Saves or updates the InkoAquisitionEditViewModel
        /// </summary>
        /// <param name="viewModel">The viewmodel which will be saved or updated</param>
        /// <returns>The saved or updated TestValue</returns>
        public TestValue Save(InkoAquisitionEditViewModel viewModel)
        {
            TestValue testValue;

            try
            {
                testValue = viewModel.TestValueId <= 0
                    ? InkoAquisitionServiceHelper.SaveNewAquisitionTest(viewModel)
                    : InkoAquisitionServiceHelper.UpdateAquisitionTest(viewModel);
                InkoAquisitionServiceHelper.UpdateAquisitionAverageAndStv(viewModel.TestSheetId);
            }
            catch (Exception e)
            {
                Logger.Error("Update oder Create new Test Value ist fehlgeschlagen: " + e.Message);
                testValue = null;
            }
            return(testValue);
        }
        /// <summary>
        ///     Gets the InkoAquisitionEditViewModel for edit
        /// </summary>
        /// <param name="testSheetId">The Id of the test sheet where the Inko rewet test is for</param>
        /// <returns>The InkoAquisitionEditViewModel</returns>
        public InkoAquisitionEditViewModel GetNewInkoAquisitionEditViewModel(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 InkoAquisitionEditViewModel
            {
                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>
        ///     Gets a new InkoAquisitionEditViewModel
        /// </summary>
        /// <param name="rewetTestId">The Id of the Inko rewet test which will be edited</param>
        /// <returns>The InkoAquisitionEditViewModel</returns>
        public InkoAquisitionEditViewModel GetInkoAquisitionEditViewModel(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.AcquisitionTimeAndRewet)
            {
                Logger.Error("Requestet test was not an InkoAquisition 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 InkoAquisitionEditViewModel
            {
                TestValueId         = rewetTestId,
                TestSheetId         = testValue.TestSheetId,
                TestPerson          = testValue.LastEditedPerson,
                ProductionCode      = TestServiceHelper.CreateProductionCode(testSheet),
                ProductionCodeDay   = testValue.DayInYearOfArticleCreation,
                ProductionCodeTime  = incontinencePadTestValue.IncontinencePadTime,
                ExpireMonth         = incontinencePadTestValue.ExpireMonth,
                ExpireYear          = incontinencePadTestValue.ExpireYear,
                AquisitionAddition1 = incontinencePadTestValue.AcquisitionTimeFirst,
                AquisitionAddition2 = incontinencePadTestValue.AcquisitionTimeSecond,
                AquisitionAddition3 = incontinencePadTestValue.AcquisitionTimeThird,
                InkoWeight          = incontinencePadTestValue.AcquisitionWeight,
                FPDry     = incontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight,
                FPWet     = incontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight,
                Notes     = testNotes,
                NoteCodes = errorCodes
            };

            return(viewModel);
        }
예제 #7
0
        public ActionResult Save(InkoAquisitionEditViewModel viewModel)
        {
            var savedModel = InkoAquisitionService.Save(viewModel);

            return(RedirectToAction("Edit", "LaborCreatorInko", new { area = "Labor", id = savedModel.TestSheetId }));
        }