public Calculation AddCalculation(string calculation) { var expression = new Expression(calculation); var calc = new Calculation() { CalcString = calculation, Result = Convert.ToDouble(expression.Evaluate()) }; if (Double.IsNaN(calc.Result)) { throw new Exception("Invalid Result, Cannot Be NaN"); } repo.Add(calc); return(calc); }
public CalculationData Calculate(long applicationId) { var application = _applications.Get(applicationId); if (application.AirWaybillId == null) { throw new InvalidOperationException( "For calculation an air waybill should be presented. Applicaiton id: " + application.Id); } var awb = _awbs.Get(application.AirWaybillId.Value).First(); var weight = application.Weight ?? 0; var tariffPerKg = application.TariffPerKg ?? 0; var scotch = GetTapeCost(application); var transitCost = application.TransitCostEdited ?? application.TransitCost ?? 0; var pickupCost = application.PickupCostEdited ?? application.PickupCost ?? 0; var calculation = new CalculationData { AirWaybillDisplay = AwbHelper.GetAirWaybillDisplay(awb), ApplicationDisplay = application.GetApplicationDisplay(), ClientId = application.ClientId, FactureCost = application.FactureCostEdited ?? application.FactureCost ?? 0, FactureCostEx = application.FactureCostExEdited ?? application.FactureCostEx ?? 0, MarkName = application.MarkName, FactoryName = application.FactoryName, ScotchCost = scotch, TariffPerKg = tariffPerKg, Weight = weight, TransitCost = transitCost, PickupCost = pickupCost, CreationTimestamp = DateTimeProvider.Now, Count = application.Count ?? 0, Invoice = application.Invoice, Value = application.Value, Class = application.Class, InsuranceRate = application.InsuranceRate, Profit = application.CalculationProfit, TotalTariffCost = application.CalculationTotalTariffCost }; _calculations.Add(calculation, applicationId); return(calculation); }
public Calculation AddCalculation(PolicyId policyId, PeriodId periodId, string name, string employeeIdDelimitedList) { try { using (var tr = new TransactionScope()) { var calculation = new Calculation(calculationRep.GetNextId(), periodRep.GetById(periodId), PolicyRep.GetById(policyId), name, DateTime.Now, employeeIdDelimitedList); calculationRep.Add(calculation); tr.Complete(); return(calculation); } } catch (Exception exp) { var res = calculationRep.TryConvertException(exp); if (res == null) { throw; } throw res; } }
//public IEnumerable<Calculation> GetUserCalculationsByCalculationTypes(IEnumerable<long> calculationTypeIDs, long userID) //{ // return _calculationRepository // .GetMany(c => c.Owner.Id == userID && c.CalculationTypeID.HasValue && calculationTypeIDs.Contains(c.CalculationTypeID.Value)); //} public void AddCalculation(Calculation calculation) { _calculationRepository.Add(calculation); SaveCalculation(); }