private CalculateVatRequest CreateCalculateVatRequest() { CalculateVatRequest result = new CalculateVatRequest(); decimal netto = 0; bool isValidNetto = Decimal.TryParse(tbNetto.Text, out netto); result.Netto = netto; result.TaxRate = ((GuiObjects.ListElement <decimal>)cbbTaxRate.SelectedItem).Value; return(result); }
protected override IEnumerable<Message> Validate<T1>(CalculateRequestBase request) { CalculateVatRequest innerRequest = (CalculateVatRequest)request; if (!validRates.Contains(innerRequest.TaxRate)) { yield return CreateError("Stawka podatku nieprawidłowa."); } if (innerRequest.Netto < 0 || innerRequest.Netto > arbitraryMaximumSensibleNetto) { yield return CreateError("Kwota netto nieprawidłowa."); } }
private void btnCalculate_Click(object sender, EventArgs e) { Logic.Logic logic = new Logic.Logic(); CalculateVatRequest request = CreateCalculateVatRequest(); CalculateVatResponse response = logic.HandleCalculateRequest(request) as CalculateVatResponse; if (response != null && response.IsValid) { //zakładając że chcemy zaokrąglenie response.Result = Math.Round(response.Result, 2, MidpointRounding.AwayFromZero); tbBrutto.Text = String.Format("{0:0.##}", response.Result); } else { // można też gdzieś wrzucić komunikaty walidacyjne tbBrutto.Text = String.Empty; } }
protected override decimal CalculateResult<T1>(CalculateRequestBase request) { CalculateVatRequest innerRequest = (CalculateVatRequest)request; decimal result = (innerRequest.TaxRate + 1) * innerRequest.Netto; return result; }