Exemplo n.º 1
0
        /// <summary>
        /// Returns the domain entity for a view model.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        private Calculation GetCalculationFromViewModel(CalculationViewModel model)
        {
            var calculation = new Calculation
            {
                Id      = model.Id ?? 0,
                UserId  = UserId,
                Width   = model.Width,
                Height  = model.Height,
                BorderX = model.BorderX,
                BorderY = model.BorderY,
                DrillingPointDistanceX = model.DrillingPointDistanceX,
                DrillingPointDistanceY = model.DrillingPointDistanceY,
                SealingSlabDiameter    = model.SealingSlabDiameter,
                Depth                              = model.Depth,
                PixelsPerMeter                     = model.PixelsPerMeter,
                StandardDerivationOffset           = model.StandardDerivationOffset,
                StandardDerivationRadius           = model.StandardDerivationRadius,
                StandardDerivationDrillingPoint    = model.StandardDerivationDrillingPoint,
                TimeStamp                          = DateTime.Now,
                Iterations                         = model.Iterations,
                WaterLevelDifference               = model.WaterLevelDifference,
                SealingSlabThickness               = model.SealingSlabThickness,
                PermeabilityOfSoleWithoutUnsetArea = model.PermeabilityOfSoleWithoutUnsetArea,
                PermeabilityOfSoleAtUnsetArea      = model.PermeabilityOfSoleAtUnsetArea,
                ResidualWaterResult                = model.ResidualWaterResult
            };

            return(calculation);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns the derivation preview image file for a view model.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public FileContentResult DerivationPreviewImage(CalculationViewModel model)
        {
            var calculation = GetCalculationFromViewModel(model);
            var image       = new CalculationService().GetDerivationPreviewImage(calculation);

            return(File(GetBytesFromImage(image), MimeMapping.GetMimeMapping(previewFileName), previewFileName));
        }
Exemplo n.º 3
0
        public PartialViewResult Execute(CalculationViewModel model)
        {
            if (ModelState.IsValid)
            {
                bool status = ExecuteActionWithValidation(() =>
                {
                    var calculation = GetCalculationFromViewModel(model);

                    var calculationService = new CalculationService();
                    calculationService.Execute(calculation);

                    // Rebind View
                    model = GetViewModelFromCalculation(calculationService.GetViewById(calculation.Id));

                    SetSuccessMessage("The calculation is enqueued.");
                });

                if (status)
                {
                    // Clear ModelState otherwise Id will stay 0
                    ModelState.Clear();
                    return(PartialView("Form", model));
                }
            }

            return(PartialView("Form"));
        }
Exemplo n.º 4
0
        public PoissonPage()
        {
            InitializeComponent();
            var item = new PoissonModel();

            BindingContext = _viewModel = new CalculationViewModel(item);
        }
Exemplo n.º 5
0
        public MainWindow()
        {
            InitializeComponent();

            ViewModel = new CalculationViewModel();
            this.DataContext = ViewModel;
        }
Exemplo n.º 6
0
            public static void ExportEnergyLabel(PackagedSolution packaged)
            {
                if (packaged.EnergyLabel.Count <= 0)
                {
                    return;
                }

                var fixedDoc = new FixedDocument();

                var v  = new LabelLayout();
                var vm = new LabelExportViewModel(packaged);

                fixedDoc.Pages.Add(CreatePageContent(v, vm));

                var calculationLayout    = new CalculationLayout();
                var calculationViewModel = new CalculationViewModel(packaged.EnergyLabel);

                calculationViewModel.Setup();

                fixedDoc.Pages.Add(CreatePageContent(calculationLayout, calculationViewModel));

                if (packaged.EnergyLabel.Count > 1)
                {
                    calculationLayout    = new CalculationLayout();
                    calculationViewModel = new CalculationViewModel(packaged.EnergyLabel);
                    calculationViewModel.SetupSpecialPage();
                    fixedDoc.Pages.Add(CreatePageContent(calculationLayout, calculationViewModel));
                }

                IDocumentPaginatorSource dps = fixedDoc;

                RunSaveDialog(fixedDoc.DocumentPaginator, packaged.Name);
            }
Exemplo n.º 7
0
        private void btn_Calculation_Click(object sender, EventArgs e)
        {
            //создаем модель и заполняем её аргументами
            var model = new CalculationViewModel
            {
                Argument1             = this.viewUI.GetArgument1(),
                Argument2             = this.viewUI.GetArgument2(),
                SelectedOperationType = this.viewUI.GetOperationType()
            };

            string operationResult = string.Empty;

            try
            {
                //получаем результат операции от презентера
                operationResult = this.presenter.Calculation(model);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }

            //отображаем результат операции
            this.viewUI.SetOperationResult(operationResult);
        }
        public ActionResult Calculate(CalculationViewModel vm)
        {
            // 入力チェック
            if (vm.LeftNum == string.Empty || vm.RightNum == string.Empty)
            {
                return(View());
            }

            // ViewModel -> Model
            var calculator = new Calculator();

            calculator.LeftNum  = int.Parse(vm.LeftNum);
            calculator.RightNum = int.Parse(vm.RightNum);
            calculator.Operator = vm.SelectedOperator;

            // 計算
            var service         = new CalculationService();
            var calculatedValue = service.calculate(calculator);

            // Model -> ViewModel
            var resultVM = new CalculationResultViewModel();

            resultVM.CalculatedValue = calculatedValue.ToString();

            return(View("Result", resultVM));
        }
 public Calculation()
 {
     InitializeComponent();
     Loaded += (s, e) =>
     {
         DataContext = new CalculationViewModel();
     };
 }
Exemplo n.º 10
0
        public ValuePage()
        {
            InitializeComponent();

            var item = new ValueBetModel();

            BindingContext = _viewModel = new CalculationViewModel(item);
        }
Exemplo n.º 11
0
 public List <LoanViewModel> Calculation(CalculationViewModel loan)
 {
     if (loan == null)
     {
         return(null);
     }
     return(_mortgageService.LoanCalculation(loan.LoanAmount, loan.InterestRate, loan.Years, loan.LoanType));
 }
Exemplo n.º 12
0
        public ProbabilityPage()
        {
            InitializeComponent();

            var item = new ProbabilityBetModel();

            BindingContext = _viewModel = new CalculationViewModel(item);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Returns the details form for an existing calculation by its id.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        public ActionResult Details(int id)
        {
            var calculation = new CalculationService().GetViewById(id);

            CalculationViewModel calculationModel = GetViewModelFromCalculation(calculation);

            return(View(calculationModel));
        }
Exemplo n.º 14
0
        public ViewWindow()
        {
            InitializeComponent();

            var intervals = (RangeConfiguration)ConfigurationManager.GetSection("RangeConfiguration");

            _viewModel = new CalculationViewModel(intervals.Ranges);

            _threadSafeVM = new SynchronizedNotifyPropertyChanged <CalculationViewModel>(_viewModel, this);
        }
Exemplo n.º 15
0
        public void GivenInputHasConsecutiveOperatorsErrorIsThrownAndNoResultGiven()
        {
            var viewModel = new CalculationViewModel()
            {
                Expression = "12+-67"
            };

            var errors = viewModel.Validate();

            Assert.IsNotEmpty(errors);
        }
Exemplo n.º 16
0
        public void GivenValidInputErrorIsNotThrownAndResultIsGiven(string expressionInput)
        {
            var viewModel = new CalculationViewModel()
            {
                Expression = expressionInput
            };

            var errors = viewModel.Validate();

            Assert.IsEmpty(errors);
        }
Exemplo n.º 17
0
        public void GivenAlphabeticInputErrorIsThrownAndNoResultGiven()
        {
            var viewModel = new CalculationViewModel()
            {
                Expression = "House"
            };

            var errors = viewModel.Validate();

            Assert.IsNotEmpty(errors);
        }
Exemplo n.º 18
0
        public void GivenBracketsInputErrorIsThrownAndNoResultGiven()
        {
            var viewModel = new CalculationViewModel()
            {
                Expression = "2*(2+8)"
            };

            var errors = viewModel.Validate();

            Assert.IsNotEmpty(errors);
        }
Exemplo n.º 19
0
        public void GivenDecimalInputErrorIsThrownAndNoResultGiven()
        {
            var viewModel = new CalculationViewModel()
            {
                Expression = "1.3+4"
            };

            var errors = viewModel.Validate();

            Assert.IsNotEmpty(errors);
        }
Exemplo n.º 20
0
        public void GivenInputBeginsWithOperatorErrorIsThrownAndNoResultGiven()
        {
            var viewModel = new CalculationViewModel()
            {
                Expression = "+2*2+8"
            };

            var errors = viewModel.Validate();

            Assert.IsNotEmpty(errors);
        }
Exemplo n.º 21
0
        /// <summary>
        /// Returns the underlying price based on the given parameters
        /// </summary>
        /// <param name="model">The calculation model</param>
        /// <returns></returns>
        public JsonResult GetStatistics(CalculationViewModel model)
        {
            var result =
                Mapper.Map <CalculationResultViewModel>(
                    _priceCalculatorService.CalculatePotentialEarnings(Mapper.Map <ICalculation>(model)));

            return(Json(new
            {
                Result = RenderPartialViewToString("ViewModelCalculationResult", result)
            }));
        }
Exemplo n.º 22
0
        public void Initialize()
        {
            _mortgageServiceMock = new Mock <IMortgageService>();
            _objController       = new MortgageApiController(_mortgageServiceMock.Object);


            _listMortgages = new List <Mortgage>()
            {
                new Mortgage()
                {
                    MortgageId = 1, Name = "Test", MortgageType = MortgageType.Fixed, InterestRepayment = InterestRepayment.InterestOnly, EffectiveStartDate = DateTime.Now.AddDays(-365), EffectiveEndDate = DateTime.Now, TermsInMonths = 12, CancellationFee = 0, EstablishmentFee = 1000, InterestRate = 13.5M
                },
                new Mortgage()
                {
                    MortgageId = 2, Name = "TestOne", MortgageType = MortgageType.Variable, InterestRepayment = InterestRepayment.InterestOnly, EffectiveStartDate = DateTime.Now.AddDays(-365), EffectiveEndDate = DateTime.Now, TermsInMonths = 12, CancellationFee = 0, EstablishmentFee = 1000, InterestRate = 13.5M
                },
            };

            _listLoan = new List <LoanViewModel>()
            {
                new LoanViewModel()
                {
                    PrincipalAmount = 200000, EMIAmount = 35000, EMIDate = DateTime.Now.AddDays(-30), InterestAmount = 13000, TotalAmount = 35000
                },
                new LoanViewModel()
                {
                    PrincipalAmount = 200000, EMIAmount = 33000, EMIDate = DateTime.Now, InterestAmount = 13000, TotalAmount = 35000
                }
            };

            calc = new CalculationViewModel()
            {
                LoanAmount = 200000, InterestRate = 13.5, LoanType = "Variable", Years = 10
            };


            _mortgage = new Mortgage()
            {
                MortgageId         = 1,
                Name               = "Test",
                MortgageType       = MortgageType.Fixed,
                InterestRepayment  = InterestRepayment.InterestOnly,
                EffectiveStartDate = DateTime.Now.AddDays(-365),
                EffectiveEndDate   = DateTime.Now,
                TermsInMonths      = 12,
                CancellationFee    = 0,
                EstablishmentFee   = 1000,
                InterestRate       = 13.5M
            };
        }
Exemplo n.º 23
0
        public ActionResult Delete(Guid id, CalculationViewModel model)
        {
            try
            {
                _commandDispatcher.Execute(new CalculationRemoveCommand(id, model.OriginalVersion));

                return(RedirectToAction("Index"));
            }
            catch (DomainValidationException validationException)
            {
                ModelState.AddModelError(validationException.Property, validationException.Message);
            }

            return(View(model));
        }
Exemplo n.º 24
0
        /// <summary>
        /// Вычисление
        /// </summary>
        /// <param name="model">ViewModel для presenter</param>
        /// <returns>результат операции (строка)</returns>
        public string Calculation(CalculationViewModel model)
        {
            //проверили и типизировали данные из модели
            var argument1 = Converter.IntFromString(model.Argument1,
                                                    "Недопустимое значение первого аргумента.");
            var argument2 = Converter.IntFromString(model.Argument2,
                                                    "Недопустимое значение второго аргумента.");
            var operationType = Converter.OperationTypeFromString(model.SelectedOperationType,
                                                                  "Не выбран тип операции.");
            //вызвали службу и заполнили модель результатом операции
            decimal operationResult;

            switch (operationType)
            {
            //Сложение
            case OperationTypes.Addition:
                operationResult = calculationService.Addition(argument1, argument2);
                break;

            //Вычитание
            case OperationTypes.Subtraction:
                operationResult = calculationService.Subtraction(argument1, argument2);
                break;

            //Умножение
            case OperationTypes.Multiplication:
                operationResult = calculationService.Multiplication(argument1, argument2);
                break;

            //Деление
            case OperationTypes.Division:
                operationResult = calculationService.Division(argument1, argument2);
                break;

            default:
                operationResult = 0;
                throw new Exception("Не удалось получить результат");
            }

            //Сохранение
            storageService.Save(argument1,
                                argument2,
                                operationResult,
                                operationType);
            //возвращаем результат операции
            return(operationResult.ToString());
        }
Exemplo n.º 25
0
        public ActionResult Edit(Guid id, CalculationViewModel model)
        {
            try
            {
                _commandDispatcher.Execute(new CalculationChangeCommand(id, model.OriginalVersion, model.Name, model.Wkn,
                                                                        model.Multiplier, model.StrikePrice, model.Underlying, model.InitialSl,
                                                                        model.InitialTp, model.PricePerUnit, model.OrderCosts, model.Description, model.Units, model.IsLong));

                return(RedirectToAction("Index"));
            }
            catch (DomainValidationException validationException)
            {
                ModelState.AddModelError(validationException.Property, validationException.Message);
            }

            return(View(model));
        }
Exemplo n.º 26
0
        public ActionResult CalculationForm(CalculationViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //Передаем ViewModel в презентер и получаем измененную ViewModel
                    model.OperationResult = presenter.Calculation(model);
                }
                catch (Exception e)
                {
                    //выводим сообщение об ошибке
                    return(RedirectToAction("ShowError", "Error", e.Message));
                }
            }

            return(View(model));
        }
Exemplo n.º 27
0
        public IActionResult PerformCalculation(CalculationViewModel model)
        {
            var errors = model.Validate();

            if (errors.Count > 0)
            {
                foreach (var error in errors)
                {
                    ModelState.AddModelError(error.Key, error.Value);
                }

                return(View("Index", model));
            }

            model.Result = CalculationHelper.GetExpressionResult(model.Expression);

            return(View("Index", model));
        }
Exemplo n.º 28
0
        public void InvokeCalculationMethod_WithCorrectModel_WithOperationType_Multiplication_ExpectedCorrectModel_WithCorrectOperationResult()
        {
            //arrange

            //модель, передаваемая в качестве аргумента
            var model = new CalculationViewModel
            {
                Argument1             = "1",
                Argument2             = "2",
                SelectedOperationType = "Умножение"
            };

            //act
            string operationResult = presenter.Calculation(model);

            //assert
            Assert.AreEqual("2", operationResult);
        }
        public void DivideCommandTest()
        {
            // Arrange
            CalculationViewModel target = new CalculationViewModel();
            int firstNumber             = 4;
            int secondNumber            = 2;
            int expected = 2;
            int actual;

            target.FirstNumber  = firstNumber;
            target.SecondNumber = secondNumber;

            // Act
            target.DivideCommand.Execute(null);
            actual = target.Result;

            // Assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 30
0
        public PartialViewResult DerivationPreview(CalculationViewModel model)
        {
            if (ModelState.IsValid)
            {
                bool status = ExecuteActionWithValidation(() =>
                {
                    model.HasDerivationPreview = true;

                    SetSuccessMessage("Parameters are valid for preview.");
                });

                if (status)
                {
                    return(PartialView("Form", model));
                }
            }

            return(PartialView("Form"));
        }
Exemplo n.º 31
0
        public PartialViewResult Cancel(CalculationViewModel model)
        {
            if (ModelState.IsValid)
            {
                bool status = ExecuteActionWithValidation(() =>
                {
                    new CalculationService().Cancel(model.Id.Value);

                    SetSuccessMessage("The calculation will be cancelled.");
                });

                if (status)
                {
                    return(PartialView("Form", model));
                }
            }

            return(PartialView("Form"));
        }