Esempio n. 1
0
        public static void Main(string[] args)
        {
            InvoicingPath    InvoicePath      = new InvoicingPath();
            AvailabilityPath AvailabilityPath = new AvailabilityPath();

            (Order order, ProcessConfiguration processConfiguration) = setConfiguration();

            Func <Order, Double> CostOfOrder = CalcAdjustedCostofOrder(processConfiguration, InvoicePath, AvailabilityPath);

            Console.WriteLine(CostOfOrder(order));
            Console.ReadLine();
        }
Esempio n. 2
0
        /// ///  Return AvailabilityPath Composed Funcrtion
        public static Func <Order, ShippingDate> AvailabilityPathFunc(ProcessConfiguration c, AvailabilityPath spl)
        {
            Func <Order, ShippingDate> p = spl.AvailabilityFunctions.Where((x) => x.availabilityChoose == c.availabilityChoice).Select((x) => x.calcAvailability).FirstOrDefault()
                                           .Compose(spl.ShippingDateFunctions.Where((x) => x.shippingDateChoose == c.shippingDateChoice).Select((x) => x.calcShippingDate).FirstOrDefault());

            return(p);
        }
Esempio n. 3
0
 //Adjusted Cost for Order
 public static Func <Order, double> CalcAdjustedCostofOrder(ProcessConfiguration c, InvoicingPath InvoicePath, AvailabilityPath AvailabilityPath)
 {
     return((x) => AdjustCost(x, InvoicePathFunc(c, InvoicePath), AvailabilityPathFunc(c, AvailabilityPath)));
 }