Ejemplo n.º 1
0
        private List <AbstractBidder> CreateBidders(List <bidder> bidders, double activityReq, IEnumerable <bidder_assigned_strategy> bidStrats, List <AuctionItem> items)
        {
            Dictionary <int, int>             idToStrat = bidStrats.ToDictionary(b => b.bidder_idx, b => b.bidder_strategy_id);
            Dictionary <int, bidder_strategy> strategies;

            using (var db = new kffg_simulations2Context())
            {
                strategies = db.bidder_strategy.ToDictionary(s => s.id, s => s);
            }

            List <AbstractBidder> robotBidders = new List <AbstractBidder>();

            foreach (bidder b in bidders)
            {
                string          lpSolvePath    = AppDomain.CurrentDomain.BaseDirectory;
                int             maxEligibility = MaxEligibility(b.bidder_value, items);
                bidder_strategy strat          = strategies[idToStrat[b.idx]];

                switch (strat.id)
                {
                case 1:
                    robotBidders.Add(new LexicographicBidder(b, activityReq, maxEligibility));
                    break;

                case 2:
                    robotBidders.Add(new OptimizedBidderSimple(b, activityReq, lpSolvePath, maxEligibility));
                    break;

                default:
                    throw new Exception("Invalid strategy id");
                }
            }

            return(robotBidders);
        }
        private Auction CreateAuction(auction a)
        {
            using (kffg_simulations2Context db = new kffg_simulations2Context())
            {
                simulation simModel   = db.simulations.First(s => s.id == a.simulation_id);
                parameter  parameters = db.parameters.First(p => p.id == simModel.parameters_id);
                Dictionary <string, clock_item> keyToPEA = db.clock_item.Where(ci => ci.pea_group_id == parameters.pea_group_id && ci.item_set_id == parameters.item_set_id)
                                                           .ToList()
                                                           .ToDictionary(ci => ForwardAuction.ProductKey(ci), ci => ci);

                List <bidder> bidders = db.bidders.Where(b => b.simulation_id == a.simulation_id).ToList();
                IEnumerable <bidder_assigned_strategy> strats = db.bidder_assigned_strategy.Where(s => s.auction_id == a.id);

                statusVM = new AuctionStatusViewModel();
                return(new Auction(a, keyToPEA, bidders, strats, parameters, statusVM));
            }
        }
Ejemplo n.º 3
0
 public LoadParametersViewModel(kffg_simulations2Context db)
 {
     this.db = db;
 }