public PartialViewResult Details(int?ID) { var repo = new CommodityRepository(); var result = repo.GetCommodities(ID); return(PartialView(result)); }
public Task Start() { return(Task.Factory.StartNew(() => { if (Token == null) { Token = new CancellationTokenSource(); } AskRepositoryTask = AskRepository.Start(Token); OpenAsksByBuyerCommdoity.Clear(); OpenAsks.Clear(); var commodities = CommodityRepository.GetCommodities(); Parallel.ForEach(commodities, c => OpenAsksByBuyerCommdoity.AddOrUpdate(c.CommodityID, new ConcurrentDictionary <int, ConcurrentDictionary <long, ThreadSafeAsk> >(), (k, o) => o)); Parallel.ForEach(OpenAsksByBuyerCommdoity, buyCommodityDictionary => { foreach (var commodity in commodities) { buyCommodityDictionary.Value.AddOrUpdate(commodity.CommodityID, new ConcurrentDictionary <long, ThreadSafeAsk>(), (k, o) => o); } }); Parallel.ForEach(AskRepository.GetAsks(), ask => { ThreadSafeAsk tAsk = CreateAsk(new ThreadSafeAsk(ask)); foreach (var commodityBuyID in tAsk.CommodityBuyID) { foreach (var commoditySellID in tAsk.CommoditySellID) { OpenAsksByBuyerCommdoity[commodityBuyID][commoditySellID].AddOrUpdate(tAsk.AskID, tAsk, (k, o) => o); } } OpenAsks.AddOrUpdate(tAsk.AskID, tAsk, (k, o) => o); }); })); }
public void Process() { try { logger.Debug(string.Format("ThreadNum={0}开始创建", CurrentThreadNum)); CommodityRepository commodityRepository = new CommodityRepository(); ILuceneBulid builder = new LuceneBulid(); bool isFirst = true; int pageIndex = 1; while (!CTS.IsCancellationRequested) { List <User> commodityList = commodityRepository.QueryListByEF(CurrentThreadNum, pageIndex, 1000); if (commodityList == null || commodityList.Count == 0) { break; } else { builder.BuildIndex(commodityList, PathSuffix, isFirst); logger.Debug(string.Format("ThreadNum={0}完成{1}条的创建", CurrentThreadNum, 1000 * pageIndex++)); isFirst = false; } } } catch (Exception ex) { CTS.Cancel(); logger.Error(string.Format("ThreadNum={0}出现异常", CurrentThreadNum), ex); } finally { logger.Debug(string.Format("ThreadNum={0}完成创建", CurrentThreadNum)); } }
/// <summary> /// 数据库取10000条数据测试 /// </summary> /// <returns></returns> private static List <Commodity> GetList() { CommodityRepository repository = new CommodityRepository(); List <Commodity> commodityList = repository.QueryList(1, 1, 5000); return(commodityList); }
public ActionResult Index() { var repo = new CommodityRepository(); var commModel = repo.GetCommodities(); return(View(commModel)); }
public void Process() { try { logger.Debug(string.Format("ThreadNum={0}开始创建", CurrentThreadNum)); CommodityRepository commodityRepository = new CommodityRepository(); LuceneBulid builder = new LuceneBulid(); bool isFirst = true; int pageIndex = 1; if (service == null) { while (!CTS.IsCancellationRequested) { List <Commodity> commodityList; commodityList = commodityRepository.QueryList(CurrentThreadNum, pageIndex, 1000); if (commodityList == null || commodityList.Count == 0) { break; } else { builder.BuildIndex(commodityList, PathSuffix, isFirst); logger.Debug(string.Format("ThreadNum={0}完成{1}条的创建", CurrentThreadNum, 1000 * pageIndex++)); isFirst = false; } } } else { while (!CTS.IsCancellationRequested) { lock (_lock) { //新增代码,从Redis逐行获取 var result = service.BlockingPopItemFromList("commodity", TimeSpan.FromSeconds(3)); if (string.IsNullOrEmpty(result)) { break; } else { var commodity = JsonHelper.JsonToObj <Commodity>(result); builder.InsertIndex(commodity); } } } } } catch (Exception ex) { CTS.Cancel(); logger.Error(string.Format("ThreadNum={0}出现异常", CurrentThreadNum), ex); } finally { logger.Debug(string.Format("ThreadNum={0}完成创建", CurrentThreadNum)); } }
public ActionResult requestform() { CountryRepository cr = new CountryRepository(); CommodityRepository comR = new CommodityRepository(); var requestForm = new RequestModel(); var countries = cr.GetAllCountries(); requestForm.Origin = new List <SelectListItem>(); requestForm.DestinationCountry = new List <SelectListItem>(); // add origin dropdown. foreach (Country c in countries) { SelectListItem lst = new SelectListItem() { Text = c.CountryName, Value = c.CountryId.ToString() }; //Origin.Add(lst); requestForm.Origin.Add(lst); requestForm.DestinationCountry.Add(lst); } requestForm.DestinationCity = new List <SelectListItem>(); requestForm.Commodity = new List <SelectListItem>(); var commodities = comR.GetAllCommodity(); foreach (Commodity c in commodities) { SelectListItem cLst = new SelectListItem() { Text = c.CommodityName, Value = c.CommodityName }; requestForm.Commodity.Add(cLst); } SelectListItem opentop = new SelectListItem() { Text = "Open Top", Value = "Open Top" }; SelectListItem flatrack = new SelectListItem() { Text = "Flat Rack", Value = "Flat Rack" }; SelectListItem reefer = new SelectListItem() { Text = "Reefer", Value = "Reefer" }; requestForm.OtherContainerType = new List <SelectListItem>(); requestForm.OtherContainerType.Add(opentop); requestForm.OtherContainerType.Add(flatrack); requestForm.OtherContainerType.Add(reefer); return(View(requestForm)); }
public void SubmitOffer() { Trader me = null; TradingPost post = null; Commodity commondity = null; NewTradeOffer offer = null; int id = 0; var dbName = "SubmitOffer"; "Given I am a trader".x(async() => { var traderRepository = new TraderRepository(CreateNewContext(dbName)); id = await traderRepository.New(TestTradeDataStatic.MargamanTrader); me = await traderRepository.Get(id); }); "And I have a trading post".x(async() => { var systemRepository = new AstralSystemRepository(CreateNewContext(dbName)); await systemRepository.New(TestSystemDataStatic.StantonSystem); var system = await systemRepository.Get(id); post = system.TradePoints.OfType <TradingPost>().First(); }); "And I have a new commodity".x(async() => { var commodityRepo = new CommodityRepository(CreateNewContext(dbName)); var id = await commodityRepo.New(TestTradeDataStatic.AgriciumCommondity); commondity = await commodityRepo.Get(id); }); "And I have an offer".x(() => offer = new NewTradeOffer { Id = 0, TraderId = me.Id, TradePointId = post.Id, CommodityId = commondity.Id, PricePerUnit = 23.99M, OfferType = (int)OfferType.Buy }); "When I submit the offer".x(async() => { var traderRepository = new TraderRepository(CreateNewContext(dbName)); var command = new NewTradeOfferCommand(traderRepository); id = await command.Execute(offer); }); "Then the Offer is displayed".x(async() => { var traderRepository = new TraderRepository(CreateNewContext(dbName), true); var trader = await traderRepository.Get(me.Id); AssertOffer(trader.TradeOffers.First(o => o.Id == id), offer); }); }
public ActionResult Create(CommodityModel commodity) { if (ModelState.IsValid) { var repo = new CommodityRepository(); var saved = repo.SaveNewCommodity(commodity); if (saved) { return(RedirectToAction("index", "Home")); } } return(View(commodity)); }
public AfricanFarmerCommoditiesUnitOfWork( AbstractRepository <Address> addressRepository, AbstractRepository <Driver> driverRepository, AbstractRepository <Invoice> invoiceRepository, AbstractRepository <Item> itemRepository, AbstractRepository <Itinary> itinaryRepository, AbstractRepository <Location> locationRepository, AbstractRepository <Schedule> scheduleRepository, AbstractRepository <Vehicle> vehicleRepository, AbstractRepository <SchedulesPricing> schedulesPricingRepository, AbstractRepository <DealsPricing> dealsPricingRepository, AbstractRepository <TransportPricing> transportPricingRepository, AbstractRepository <User> userRepository, AbstractRepository <Role> rolesRepository, AbstractRepository <UserRole> userInRolesRepository, AbstractRepository <VehicleCategory> vehicleCategoryRepository, AbstractRepository <FoodHubStorage> foodHubStorageRepository, AbstractRepository <VehicleCapacity> vehicleCapacityRepository, AbstractRepository <FoodHub> foodHubRepository, AbstractRepository <CommodityUnit> commodityUnitRepository, AbstractRepository <Commodity> commodityRepository, AbstractRepository <CommodityCategory> commodityCategoryRepository, AbstractRepository <ActiveEnrouteCommodityMonitor> activeEnrouteCommodityMonitorRepository, AbstractRepository <TransportSchedule> transportScheduleRepository, AbstractRepository <Company> companyRepository, AfricanFarmerCommoditiesDBContext africanFarmerCommoditiesDbContext) { AfricanFarmerCommoditiesDbContext = africanFarmerCommoditiesDbContext as AfricanFarmerCommoditiesDBContext; _addressRepository = addressRepository as AddressRepository; _addressRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _driverRepository = driverRepository as DriverRepository; _driverRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _invoiceRepository = invoiceRepository as InvoiceRepository; _invoiceRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _itemRepository = itemRepository as ItemRepository; _itemRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _itinaryRepository = itinaryRepository as ItinaryRepository; _itinaryRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _locationRepository = locationRepository as LocationRepository; _locationRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _scheduleRepository = scheduleRepository as ScheduleRepository; _scheduleRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _vehicleRepository = vehicleRepository as VehicleRepository; _vehicleRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _dealsPricingRepository = dealsPricingRepository as DealsPricingRepository; _dealsPricingRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _schedulesPricingRepository = schedulesPricingRepository as SchedulesPricingRepository; _schedulesPricingRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _userRepository = userRepository as UserRepository; _userRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _rolesRepository = rolesRepository as RolesRepository; _rolesRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _userInRolesRepository = userInRolesRepository as UserInRolesRepository; _userInRolesRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _transportPricingRepository = transportPricingRepository as TransportPricingRepository; _transportPricingRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _vehicleCategoryRepository = vehicleCategoryRepository as VehicleCategoryRepository; _vehicleCategoryRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _foodHubStorageRepository = foodHubStorageRepository as FoodHubStorageRepository; _foodHubStorageRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _foodHubRepository = foodHubRepository as FoodHubRepository; _foodHubRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _vehicleCapacityRepository = vehicleCapacityRepository as VehicleCapacityRepository; _vehicleCapacityRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _commodityUnitRepository = commodityUnitRepository as CommodityUnitRepository; _commodityUnitRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _commodityRepository = commodityRepository as CommodityRepository; _commodityRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _commodityCategoryRepository = commodityCategoryRepository as CommodityCategoryRepository; _commodityCategoryRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _activeEnrouteCommodityMonitorRepository = activeEnrouteCommodityMonitorRepository as ActiveEnrouteCommodityMonitorRepository; _activeEnrouteCommodityMonitorRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _transportScheduleRepostiory = transportScheduleRepository as TransportScheduleRepository; _transportScheduleRepostiory.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; _companyRepository = companyRepository as CompanyRepository; _companyRepository.AfricanFarmerCommoditiesDBContext = africanFarmerCommoditiesDbContext; }
public void LoadTest() { try { CommodityRepository commodityRepository = new CommodityRepository(); var commodities = commodityRepository.GetCommodityPrices().ToArray(); UserRepository userRepository = new UserRepository(); var users = userRepository.GetUsers().ToArray(); CancellationTokenSource cancelationToken = new CancellationTokenSource(); List <Task> tasks = new List <Task>(); double[] adjustments = new double[] { 0.8, 0.85, 0.85, 0.9, 0.9, 0.91, 0.91, 0.91, 0.92, 0.92, 0.92, 0.92, 0.93, 0.93, 0.93, 0.93, 0.93, 0.94, 0.94, 0.94, 0.94, 0.94, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.07, 1.07, 1.07, 1.07, 1.08, 1.08, 1.08, 1.08, 1.08, 1.08, 1.08, 1.09, 1.09, 1.09, 1.09, 1.1, 1.1, 1.1, 1.15, 1.15, 1.2 }; int i = 0; while (i < Workers) { Task t = Task.Factory.StartNew(() => { while (!cancelationToken.IsCancellationRequested) { Stopwatch watch = new Stopwatch(); Ask ask = new Ask(); IEnumerable <Order> orders = null; bool error = false; try { Random rand = new Random((int)DateTime.Now.Ticks); int buyCommodityIndex = rand.Next(0, commodities.Length - 1); int sellCommodityIndex = rand.Next(0, commodities.Length - 1); while (buyCommodityIndex == sellCommodityIndex) { sellCommodityIndex = rand.Next(0, commodities.Length - 1); } var buyCommodity = commodities[buyCommodityIndex]; var sellCommodity = commodities[sellCommodityIndex]; double buyRatio = sellCommodity.PriceInGold / buyCommodity.PriceInGold; ask.AskDate = DateTime.UtcNow; ask.ApplyCommissionToBuy = buyRatio < 0; ask.BuyRatio = (sellCommodity.PriceInGold * adjustments[rand.Next(0, adjustments.Length - 1)]).ToFlooredInt(); ask.SellRatio = (buyCommodity.PriceInGold * adjustments[rand.Next(0, adjustments.Length - 1)]).ToFlooredInt(); ask.CommodityBuyID = buyCommodity.CommodityID; ask.CommoditySellID = sellCommodity.CommodityID; ask.AllowPartialFill = rand.Next(0, 100) >= 30; ask.BuyQuantity = rand.Next(5000, 1500000); ask.UserID = users[rand.Next(0, users.Length - 1)].UserID; ask.MaxLegDepth = 4; watch.Start(); orders = OrderProcessor.Singleton.ExecuteAsk(ask); watch.Stop(); } catch (Exception ex) { TestContext.WriteLine(ex.ToString()); error = true; } TestContext.WriteLine(string.Format("Elapsed: {0}, AskID: {1}, OrderIDs: {2}", watch.ElapsedMilliseconds, ask.AskID, orders != null ? orders.Select(o => o.OrderID.ToString()).Aggregate((result, next) => result + "," + next) : "No Order")); if (error) { break; } } }, cancelationToken.Token); tasks.Add(t); i++; } Task.Delay(60000).Wait(); cancelationToken.Cancel(false); Task.WaitAll(tasks.ToArray()); } catch (Exception) { throw; } }
//Load the repository via DI public CommoditiesController(CommodityRepository commodities) { //Set the local variable to the injected one _commodities = commodities; }
static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(); try { OP.Singleton.Start().Wait(); CommodityRepository commodityRepository = new CommodityRepository(); var commodities = commodityRepository.GetCommodityPrices().ToArray(); UserRepository userRepository = new UserRepository(); var users = userRepository.GetUsers().ToArray(); CancellationTokenSource cancelationToken = new CancellationTokenSource(); List <Task> tasks = new List <Task>(); double[] adjustments = new double[] { 0.8, 0.85, 0.85, 0.9, 0.9, 0.91, 0.91, 0.91, 0.92, 0.92, 0.92, 0.92, 0.93, 0.93, 0.93, 0.93, 0.93, 0.94, 0.94, 0.94, 0.94, 0.94, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.96, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.97, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.07, 1.07, 1.07, 1.07, 1.08, 1.08, 1.08, 1.08, 1.08, 1.08, 1.08, 1.09, 1.09, 1.09, 1.09, 1.1, 1.1, 1.1, 1.15, 1.15, 1.2 }; int i = 0; while (i < Workers) { Task t = Task.Factory.StartNew(() => { while (!cancelationToken.IsCancellationRequested) { Stopwatch watch = new Stopwatch(); Ask ask = new Ask(); Order order = null; bool error = false; try { Random rand = new Random((int)DateTime.Now.Ticks); int buyCommodityIndex = rand.Next(0, commodities.Length - 1); int sellCommodityIndex = rand.Next(0, commodities.Length - 1); while (buyCommodityIndex == sellCommodityIndex) { sellCommodityIndex = rand.Next(0, commodities.Length - 1); } var buyCommodity = commodities[buyCommodityIndex]; var sellCommodity = commodities[sellCommodityIndex]; double buyRatio = sellCommodity.PriceInGold / buyCommodity.PriceInGold; ask.AskDate = DateTime.UtcNow; ask.ApplyCommissionToBuy = buyRatio < 0; ask.BuyRatio = (sellCommodity.PriceInGold * adjustments[rand.Next(0, adjustments.Length - 1)]).ToFlooredInt(); ask.SellRatio = (buyCommodity.PriceInGold * adjustments[rand.Next(0, adjustments.Length - 1)]).ToFlooredInt(); ask.CommodityBuyID = buyCommodity.CommodityID; ask.CommoditySellID = sellCommodity.CommodityID; ask.AllowPartialFill = rand.Next(0, 100) >= 30; ask.AskQuantity = rand.Next(5000, 1500000); ask.UserID = users[rand.Next(0, users.Length - 1)].UserID; ask.MaxLegDepth = 4; watch.Start(); order = OP.Singleton.ExecuteAsk(ask); watch.Stop(); } catch (FaultException <FX> ex) { Log.Error(string.Format("Error executing Ask: {0}", ex.Detail.Exception)); error = true; } catch (Exception ex) { Log.Error("Error executing ask", ex); error = true; } Log.Debug(string.Format("Elapsed: {0}, AskID: {1}, OrderID: {2}", watch.ElapsedMilliseconds, ask.AskID, order != null ? order.OrderID.ToString() : "No Order")); if (error) { break; } } }, cancelationToken.Token); tasks.Add(t); i++; } Console.WriteLine("Press enter to terminate test."); Console.ReadLine(); cancelationToken.Cancel(false); Task.WaitAll(tasks.ToArray()); } catch (Exception ex) { Log.Error("Error in Main Method", ex); } }