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; }