Beispiel #1
0
        public ProcessedQuote ProcessQuote(double totalFilimentUsed, double totalPrintTime, QuoteRequest quote)
        {
            ProcessedQuote processedQuote = new ProcessedQuote();

            processedQuote.TotalFilimentUsed = totalFilimentUsed;
            processedQuote.TotalPrintTime    = totalPrintTime;

            processedQuote.PrinterTimeCost = (totalPrintTime / 60) * _printOptionsAccessor.Value.PrinterTimeCost;

            var costperkilo = _printOptionsAccessor.Value.Materials[0].CostPerGram * 1000;
            var costpermm   = costperkilo / (330 * 1000);

            processedQuote.MaterialCost = totalFilimentUsed * costpermm;

            processedQuote.FixedCost = _printOptionsAccessor.Value.FixedCosts.Consumables + _printOptionsAccessor.Value.FixedCosts.Electricity + _printOptionsAccessor.Value.FixedCosts.PrinterDepreciation;
            processedQuote.TimeCost  = ((_printOptionsAccessor.Value.Timing.JobEnd + _printOptionsAccessor.Value.Timing.JobStart + _printOptionsAccessor.Value.Timing.ModelPrep + _printOptionsAccessor.Value.Timing.PostProcessing + _printOptionsAccessor.Value.Timing.PrinterPrep + _printOptionsAccessor.Value.Timing.Slicing + _printOptionsAccessor.Value.Timing.SupportRemoval) * _printOptionsAccessor.Value.Timing.CostPerMin);

            processedQuote.BaseTotal = processedQuote.PrinterTimeCost + processedQuote.MaterialCost + processedQuote.FixedCost + processedQuote.TimeCost;
            var failureCost = processedQuote.BaseTotal * _printOptionsAccessor.Value.CostAdjustments.FailureRate;
            var markup      = processedQuote.BaseTotal * _printOptionsAccessor.Value.CostAdjustments.Markup;

            processedQuote.QuoteTotal = processedQuote.BaseTotal + failureCost + markup;

            return(processedQuote);
        }
 private static void AddCalculatedRowData(DataRow row, ProcessedQuote pq)
 {
     foreach (var calculation in pq)
     {
         row[calculation.Key.ToString()] = calculation.Value;
     }
 }
 private static void AddQuoteRowData(string shareId, DataRow row, ProcessedQuote pq)
 {
     row["StockId"] = shareId;
     row["Date"] = pq.Quote.Date;
     row["Open"] = pq.Quote.Open;
     row["High"] = pq.Quote.High;
     row["Low"] = pq.Quote.Low;
     row["Close"] = pq.Quote.Close;
     row["Volume"] = pq.Quote.Volume;
     row["AdjClose"] = pq.Quote.AdjClose;
 }