/// <summary> /// Gets the new <see cref="IMarket"/> instance /// </summary> /// <param name="sportEvent">A <see cref="ISportEvent"/> representing the sport event associated with the generated message</param> /// <param name="market">The <see cref="market"/> instance used</param> /// <param name = "producerId" > A producerId of the<see cref="ISportEvent"/></param> /// <param name="sportId">A sportId of the <see cref="ISportEvent"/></param> /// <param name="cultures">The list of cultures that should be prefetched</param> /// <returns>Returns the new <see cref="IMarket"/> instance</returns> protected virtual IMarketCancel GetMarketCancel(ISportEvent sportEvent, market market, int producerId, URN sportId, IEnumerable <CultureInfo> cultures) { Guard.Argument(sportEvent, nameof(sportEvent)).NotNull(); Guard.Argument(market, nameof(market)).NotNull(); var cultureInfos = cultures.ToList(); var specifiers = string.IsNullOrEmpty(market.specifiers) ? null : FeedMapperHelper.GetSpecifiers(market.specifiers); var additionalInfo = string.IsNullOrEmpty(market.extended_specifiers) ? null : FeedMapperHelper.GetSpecifiers(market.extended_specifiers); var marketDefinition = new MarketDefinition(market.id, _marketCacheProvider, sportId, producerId, specifiers, cultureInfos, _externalExceptionStrategy); return(new MarketCancel(market.id, specifiers, additionalInfo, _nameProviderFactory.BuildNameProvider(sportEvent, market.id, specifiers), _mappingProviderFactory.BuildMarketMappingProvider(sportEvent, market.id, specifiers, producerId, sportId), marketDefinition, market.void_reasonSpecified ? market.void_reason : (int?)null, _voidReasonCache, cultureInfos)); }
/// <summary> /// Gets the new <see cref="IMarketWithProbabilities"/> instance /// </summary> /// <param name="sportEvent">A <see cref="ISportEvent"/> representing the sport event associated with the generated message</param> /// <param name="marketOddsChange">The <see cref="oddsChangeMarket"/> instance used</param> /// <param name="producerId">A producerId specifying message producerId</param> /// <param name="sportId">A sportId of the <see cref="ISportEvent"/></param> /// <param name="cultures">The list of cultures that should be prefetched</param> /// <returns>Returns the new <see cref="IMarketWithOdds"/> instance</returns> protected virtual IMarketWithProbabilities GetMarketWithProbabilities(ISportEvent sportEvent, oddsChangeMarket marketOddsChange, int producerId, URN sportId, IEnumerable <CultureInfo> cultures) { var cultureInfos = cultures.ToList(); var specifiers = string.IsNullOrEmpty(marketOddsChange.specifiers) ? null : FeedMapperHelper.GetSpecifiers(marketOddsChange.specifiers); var additionalInfo = string.IsNullOrEmpty(marketOddsChange.extended_specifiers) ? null : FeedMapperHelper.GetSpecifiers(marketOddsChange.extended_specifiers); var nameProvider = _nameProviderFactory.BuildNameProvider(sportEvent, marketOddsChange.id, specifiers); var mappingProvider = _mappingProviderFactory.BuildMarketMappingProvider(sportEvent, marketOddsChange.id, specifiers, producerId, sportId); var marketDefinition = new MarketDefinition(marketOddsChange.id, _marketCacheProvider, sportId, producerId, specifiers, cultureInfos, _externalExceptionStrategy); return(new MarketWithProbabilities(marketOddsChange.id, specifiers, additionalInfo, nameProvider, mappingProvider, MessageMapperHelper.GetEnumValue <MarketStatus>(marketOddsChange.status), marketOddsChange.outcome? .Select(outcomeOdds => new OutcomeProbabilities( outcomeOdds.id, outcomeOdds.activeSpecified ? (bool?)(outcomeOdds.active != 0) : null, outcomeOdds.probabilitiesSpecified ? (double?)outcomeOdds.probabilities : null, nameProvider, mappingProvider, cultureInfos, new OutcomeDefinition(marketOddsChange.id, outcomeOdds.id, _marketCacheProvider, specifiers, cultureInfos, _externalExceptionStrategy))), marketDefinition, cultureInfos, marketOddsChange.cashout_statusSpecified ? (CashoutStatus?)MessageMapperHelper.GetEnumValue <CashoutStatus>(marketOddsChange.cashout_status) : null)); }
public HttpResponseMessage getClientMarketDef(int ClientId, int MarketDefId) { AuthController objAuth = new AuthController(); if (objAuth.CheckUserClients(ClientId) == 0) { return(Request.CreateResponse(HttpStatusCode.Unauthorized, "You have no permission to view/edit this market")); } var entity = _db.MarketDefinitions.FirstOrDefault(m => m.Id == MarketDefId && m.ClientId == ClientId); if (entity == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, "This market is not available, please try another.")); } else { MarketDefinition marketDef = _db.Database.SqlQuery <MarketDefinition>("Select * from MarketDefinitions Where ID=" + MarketDefId).FirstOrDefault(); var marketDefBaseMaps = _db.MarketDefinitionBaseMaps.Where(MD => MD.MarketDefinitionId == MarketDefId).ToList(); //List<MarketDefinitionPack> marketDefinitionPacks = _db.Database.SqlQuery<MarketDefinitionPack>("Select * from MarketDefinitionPacks Where MarketDefinitionID="+ MarketDefId).ToList(); marketDef.MarketDefinitionBaseMaps = marketDefBaseMaps; //marketDef.MarketDefinitionPacks = marketDefinitionPacks; var json = JsonConvert.SerializeObject(marketDef, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); return(Request.CreateResponse(HttpStatusCode.OK, marketDef)); } }
private void OnMarketDefinitionChange(MarketDefinition marketDefinition) { _marketDefinition = marketDefinition; if (marketDefinition.Runners != null) { foreach (RunnerDefinition runnerDefinition in marketDefinition.Runners) { OnRunnerDefinitionChange(runnerDefinition); } } }
public async Task <HttpResponseMessage> SaveMarketGroupDetails(int MarketDefId, int ClientId) { HttpContent requestContent = Request.Content; string jsonContent = requestContent.ReadAsStringAsync().Result; var marketDefinitionDetails = JsonConvert.DeserializeObject <MarketDefinitionDetails>(jsonContent); MarketDefinition marketDefinition = marketDefinitionDetails.MarketDefinition; var IsEdit = MarketDefId > 0 ? 1 : 0; List <MarketDefinitionPack> marketDefinitionPacks = marketDefinition.MarketDefinitionPacks;//store Packs List <MarketDefinitionBaseMap> marketDefinitionBaseMaps = marketDefinition.MarketDefinitionBaseMaps; marketDefinition.MarketDefinitionPacks = null; marketDefinition.MarketDefinitionBaseMaps = null; //to delete previous market base //_db.Database.ExecuteSqlCommand("Delete from MarketDefinitionbaseMaps Where marketdefinitionid=" + MarketDefId); SqlParameter paramMarketID = new SqlParameter("@MarketDefID", MarketDefId); await _db.Database.ExecuteSqlCommandAsync("exec DeleteMarketDefinitionBaseMap @MarketDefID", paramMarketID); var mkt = new MarketDefinition() { Id = MarketDefId, Name = marketDefinition.Name, ClientId = ClientId, Client = null, MarketDefinitionBaseMaps = null, MarketDefinitionPacks = null, LastSaved = DateTime.Now }; _db.MarketDefinitions.AddOrUpdate(mkt); _db.SaveChanges(); MarketDefId = mkt.Id; // to update market definitionId in base maps foreach (MarketDefinitionBaseMap rec in marketDefinitionBaseMaps) { rec.MarketDefinitionId = MarketDefId; } //to add marketbase again. _db.MarketDefinitionBaseMaps.AddRange(marketDefinitionBaseMaps); await _db.SaveChangesAsync(); await SaveMarketPacks(marketDefinitionPacks, MarketDefId); await SaveGroupData(MarketDefId, marketDefinitionDetails.GroupView, IsEdit); await SaveMarketGroupPack(MarketDefId, marketDefinitionDetails.MarketGroupPack, IsEdit); if (marketDefinitionDetails.MarketGroupFilter != null) { await SaveMarketGroupFilter(MarketDefId, marketDefinitionDetails.MarketGroupFilter, IsEdit); } //return market info var returnDetails = new MarketDefinition() { Id = MarketDefId, Name = mkt.Name, ClientId = mkt.ClientId }; return(Request.CreateResponse(HttpStatusCode.OK, returnDetails)); }
public void Setup() { var client = context.Clients.FirstOrDefault(c => c.Name == "demonstration"); if (client != null) { demoClientId = client.Id; marketDefinition = context.MarketDefinitions.FirstOrDefault(m => m.ClientId == client.Id); } user = context.Users.FirstOrDefault(u => u.UserName.ToLower() == "*****@*****.**"); }
public void HandleNullSelectionIdInRunnerDefinition() { var rd = new RunnerDefinition { AdjustmentFactor = 54.32 }; var md = new MarketDefinition { Runners = new List <RunnerDefinition> { rd }, }; var mc = new MarketChangeStub().WithMarketDefinition(md); _market.OnChange(_change.WithMarketChange(mc).Build()); }
/// <summary> /// Gets the new <see cref="IMarketWithSettlement"/> instance /// </summary> /// <param name="sportEvent">A <see cref="ISportEvent"/> representing the sport event associated with the generated message</param> /// <param name="marketSettlement">The <see cref="betSettlementMarket"/> instance used</param> /// <param name="producerId">A producerId of the <see cref="ISportEvent"/></param> /// <param name="sportId">A producerId of the <see cref="ISportEvent"/></param> /// <param name="cultures">The list of cultures that should be prefetched</param> /// <returns>Returns the new <see cref="IMarketWithSettlement"/> instance</returns> protected virtual IMarketWithSettlement GetMarketWithResults(ISportEvent sportEvent, betSettlementMarket marketSettlement, int producerId, URN sportId, IEnumerable <CultureInfo> cultures) { Guard.Argument(sportEvent, nameof(sportEvent)).NotNull(); Guard.Argument(marketSettlement, nameof(marketSettlement)).NotNull(); var cultureInfos = cultures.ToList(); var specifiers = string.IsNullOrEmpty(marketSettlement.specifiers) ? null : FeedMapperHelper.GetSpecifiers(marketSettlement.specifiers); var additionalInfo = string.IsNullOrEmpty(marketSettlement.extended_specifiers) ? null : FeedMapperHelper.GetSpecifiers(marketSettlement.extended_specifiers); var nameProvider = _nameProviderFactory.BuildNameProvider(sportEvent, marketSettlement.id, specifiers); var mappingProvider = _mappingProviderFactory.BuildMarketMappingProvider(sportEvent, marketSettlement.id, specifiers, producerId, sportId); var outcomes = (IEnumerable <IOutcomeSettlement>)marketSettlement.Items?.Select(outcome => new OutcomeSettlement( outcome.dead_heat_factorSpecified ? (double?)outcome.dead_heat_factor : null, outcome.id, outcome.result, MessageMapperHelper.GetVoidFactor(outcome.void_factorSpecified, outcome.void_factor), nameProvider, mappingProvider, cultureInfos, new OutcomeDefinition(marketSettlement.id, outcome.id, _marketCacheProvider, specifiers, cultureInfos, _externalExceptionStrategy))) ?? new List <IOutcomeSettlement>(); var marketDefinition = new MarketDefinition(marketSettlement.id, _marketCacheProvider, sportId, producerId, specifiers, cultureInfos, _externalExceptionStrategy); return(new MarketWithSettlement(marketSettlement.id, specifiers, additionalInfo, outcomes, nameProvider, mappingProvider, marketDefinition, marketSettlement.void_reasonSpecified ? (int?)marketSettlement.void_reason : null, _namedValuesProvider.VoidReasons, cultureInfos)); }
public void HandleRunnerDefinitionForRunnerThatDoesNotExist() { var rc = new RunnerChangeStub(); var rd = new RunnerDefinition { SelectionId = 1, AdjustmentFactor = 54.32, }; var md = new MarketDefinition { Runners = new List <RunnerDefinition> { rd }, }; var mc = new MarketChangeStub() .WithMarketDefinition(md) .WithRunnerChange(rc); _market.OnChange(_change.WithMarketChange(mc).Build()); }
public void OnMarketDefinitionAdjustmentFactorIsSet() { var rc = new RunnerChangeStub(); var rd = new RunnerDefinition { SelectionId = 12345, AdjustmentFactor = 54.32, }; var md = new MarketDefinition { Runners = new List <RunnerDefinition> { rd }, }; var mc = new MarketChangeStub() .WithMarketDefinition(md).WithRunnerChange(rc); _market.OnChange(_change.WithMarketChange(mc).Build()); Assert.Equal(54.32, _market.Runners[12345].AdjustmentFactor); }
/// <summary> /// Gets the new <see cref="IMarketWithOdds"/> instance /// </summary> /// <param name="sportEvent">A <see cref="ISportEvent"/> representing the sport event associated with the generated message</param> /// <param name="marketOddsChange">The <see cref="oddsChangeMarket"/> instance used</param> /// <param name="producerId">A producerId of the <see cref="ISportEvent"/></param> /// <param name="sportId">A sportId of the <see cref="ISportEvent"/></param> /// <param name="cultures">The list of cultures that should be prefetched</param> /// <returns>Returns the new <see cref="IMarketWithOdds"/> instance</returns> protected virtual IMarketWithOdds GetMarketWithOdds(ISportEvent sportEvent, oddsChangeMarket marketOddsChange, int producerId, URN sportId, IEnumerable <CultureInfo> cultures) { var cultureInfos = cultures.ToList(); var specifiers = string.IsNullOrEmpty(marketOddsChange.specifiers) ? null : FeedMapperHelper.GetSpecifiers(marketOddsChange.specifiers); var additionalInfo = string.IsNullOrEmpty(marketOddsChange.extended_specifiers) ? null : FeedMapperHelper.GetSpecifiers(marketOddsChange.extended_specifiers); var marketMetadata = marketOddsChange.market_metadata == null || !marketOddsChange.market_metadata.next_betstopSpecified ? new MarketMetadata(null) : new MarketMetadata(marketOddsChange.market_metadata.next_betstop); var nameProvider = _nameProviderFactory.BuildNameProvider(sportEvent, marketOddsChange.id, specifiers); var mappingProvider = _mappingProviderFactory.BuildMarketMappingProvider(sportEvent, marketOddsChange.id, specifiers, producerId, sportId); var outcomes = marketOddsChange.outcome?.Select(outcome => GetOutcomeWithOdds(sportEvent, nameProvider, mappingProvider, outcome, cultureInfos, new OutcomeDefinition(marketOddsChange.id, outcome.id, _marketCacheProvider, specifiers, cultureInfos, _externalExceptionStrategy))); var marketDefinition = new MarketDefinition(marketOddsChange.id, _marketCacheProvider, sportId, producerId, specifiers, cultureInfos, _externalExceptionStrategy); return(new MarketWithOdds(marketOddsChange.id, specifiers, additionalInfo, nameProvider, mappingProvider, MessageMapperHelper.GetEnumValue <MarketStatus>(marketOddsChange.status), marketOddsChange.cashout_statusSpecified ? (CashoutStatus?)MessageMapperHelper.GetEnumValue <CashoutStatus>(marketOddsChange.cashout_status) : null, marketOddsChange.favouriteSpecified && marketOddsChange.favourite == 1, outcomes, marketMetadata, marketDefinition, cultureInfos)); }
public virtual void onMessage(MarketDefinition message, QuickFix.SessionID session) { throw new QuickFix.UnsupportedMessageType(); }
public virtual void onMessage( MarketDefinition message, QuickFix.SessionID session ) { throw new QuickFix.UnsupportedMessageType(); }
public void SaveVersion <T>(T cName, int UserId) { int Version = 0; MarketDefinition val = (MarketDefinition)(object)cName; var result = _db.MarketDefinitions_History.Where(i => i.MarketDefId == val.Id).OrderByDescending(x => x.Version).FirstOrDefault(); Version = (result == null) ? 1 : result.Version + 1; MarketDefinitions_History obj = new MarketDefinitions_History(); val.CopyProperties(obj); obj.MarketDefId = val.Id; obj.Version = Version; obj.ModifiedDate = DateTime.Now; obj.UserId = UserId; foreach (MarketDefinitionBaseMap baseMap in val.MarketDefinitionBaseMaps) { MarketDefBaseMap_History baseObj = new MarketDefBaseMap_History(); baseMap.CopyProperties(baseObj); baseObj.MarketDefId = val.Id; baseObj.Version = Version; var mbData = _db.MarketBase_History.Where(b => b.MBId == baseMap.MarketBaseId).OrderByDescending(o => o.Version).FirstOrDefault(); baseObj.MarketBaseVersion = (mbData == null)? 1:mbData.Version; foreach (AdditionalFilter addFilter in baseMap.Filters) { AdditionalFilter_History addFilterHistory = new AdditionalFilter_History(); addFilter.CopyProperties(addFilterHistory); addFilterHistory.MarketDefVersion = Version; if (baseObj.Filters == null) { baseObj.Filters = new List <AdditionalFilter_History>(); } baseObj.Filters.Add(addFilterHistory); } if (obj.MarketDefBaseMap_History == null) { obj.MarketDefBaseMap_History = new List <MarketDefBaseMap_History>(); } obj.MarketDefBaseMap_History.Add(baseObj); } foreach (MarketDefinitionPack pack in val.MarketDefinitionPacks) { MarketDefPack_History packHistory = new MarketDefPack_History(); packHistory.MarketDefVersion = Version; pack.CopyProperties(packHistory); if (obj.MarketDefPack_History == null) { obj.MarketDefPack_History = new List <MarketDefPack_History>(); } obj.MarketDefPack_History.Add(packHistory); } //obj.MarketDefId = val.Id; //obj.Version = Version; //obj.Name = val.Name; //obj.ModifiedDate = DateTime.Now; //obj.ClientId = val.ClientId; //obj.Description = val.Description; //obj.UserId = UserId; //MarketDefBaseMap_History baseObj = new MarketDefBaseMap_History(); //foreach(MarketDefinitionBaseMap baseMap in val.MarketDefinitionBaseMaps) //{ // baseObj = new MarketDefBaseMap_History(); // baseObj.Id = baseMap.Id; // baseObj.MarketBaseId = baseMap.MarketBaseId; // baseObj.MarketBaseVersion = 1; // baseObj.MarketDefId = val.Id; // baseObj.Version = Version; // baseObj.Name = baseMap.Name; // baseObj.DataRefreshType = baseMap.DataRefreshType; // foreach(AdditionalFilter addFilter in baseMap.Filters) // { // AdditionalFilter_History addFilterHistory = new AdditionalFilter_History(); // addFilterHistory.Criteria = addFilter.Criteria; // addFilterHistory.Id = addFilter.Id; // addFilterHistory.IsEnabled = addFilter.IsEnabled; // addFilterHistory.MarketDefBaseMap_HistoryId = addFilter.MarketDefinitionBaseMapId; // addFilterHistory.MarketDefVersion = Version; // addFilterHistory.Values = addFilter.Values; // addFilterHistory.Name = addFilter.Name; // //if (baseObj.Filters == null) // // baseObj.Filters = new List<AdditionalFilter_History>(); // //baseObj.Filters.Add(addFilterHistory); // } // if (obj.MarketDefBaseMap_History == null) // obj.MarketDefBaseMap_History = new List<MarketDefBaseMap_History>(); // obj.MarketDefBaseMap_History.Add(baseObj); //} //MarketDefPack_History packHistory = new MarketDefPack_History(); //foreach(MarketDefinitionPack pack in val.MarketDefinitionPacks) //{ // packHistory = new MarketDefPack_History(); // packHistory.Alignment = pack.Alignment; // packHistory.ATC4 = pack.ATC4; // packHistory.ChangeFlag = pack.ChangeFlag; // packHistory.DataRefreshType = pack.DataRefreshType; // packHistory.Factor = pack.Factor; // packHistory.Id = pack.Id; // packHistory.Manufacturer = pack.Manufacturer; // packHistory.MarketBaseId = pack.MarketBaseId; // packHistory.MarketDefVersion = Version; // packHistory.MarketDefinitionId = pack.MarketDefinitionId; // packHistory.Molecule = pack.Molecule; // packHistory.NEC4 = pack.NEC4; // packHistory.PFC = pack.PFC; // packHistory.Product = pack.Product; // if (obj.MarketDefPack_History == null) // obj.MarketDefPack_History = new List<MarketDefPack_History>(); // obj.MarketDefPack_History.Add(packHistory); //} _db.MarketDefinitions_History.Add(obj); _db.SaveChanges(); }
public MarketChangeStub WithMarketDefinition(MarketDefinition marketDefinition) { MarketDefinition = marketDefinition; return(this); }