public static ISdkConfiguration BuilderSetters() { return(MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetPort(1) .SetVirtualHost("/virtualHost") .SetUseSsl(false) .SetNode(2) .SetBookmakerId(3) .SetLimitId(4) .SetCurrency("EUR") .SetSenderChannel(SenderChannel.Internet) .SetAccessToken("accessToken") .SetProvideAdditionalMarketSpecifiers(false) .SetExclusiveConsumer(false) .SetKeycloakHost("keycloakHost") .SetKeycloakUsername("keycloakUsername") .SetKeycloakPassword("keycloakPassword") .SetKeycloakSecret("keycloakSecret") .SetMtsClientApiHost("clientApiHost") .SetTicketResponseTimeout(10000) .SetTicketCancellationResponseTimeout(10001) .SetTicketCashoutResponseTimeout(10002) .SetNonSrSettleResponseTimeout(10003) .Build()); }
public void BuilderMissingHost() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .Build(); }
public void BuilderSetters() { var config = MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetPort(1) .SetVirtualHost("/virtualHost") .SetUseSsl(false) .SetSslServerName("sslServerName") .SetNode(2) .SetBookmakerId(3) .SetLimitId(4) .SetCurrency("EUR") .SetSenderChannel(SenderChannel.Internet) .SetAccessToken("accessToken") .SetProvideAdditionalMarketSpecifiers(false) .SetExclusiveConsumer(false) .SetKeycloakHost("keycloakHost") .SetKeycloakUsername("keycloakUsername") .SetKeycloakPassword("keycloakPassword") .SetKeycloakSecret("keycloakSecret") .SetMtsClientApiHost("clientApiHost") .SetTicketResponseTimeout(10000) .SetTicketCancellationResponseTimeout(10001) .SetTicketCashoutResponseTimeout(10002) .SetNonSrSettleResponseTimeout(10003) .Build(); CheckAllSettings( config, "username", "password", "host", 1, "/virtualHost", false, "sslServerName", 2, 3, 4, "EUR", SenderChannel.Internet, "accessToken", false, false, 3600, 1000000, false, "keycloakHost", "keycloakUsername", "keycloakPassword", "keycloakSecret", "clientApiHost", 10000, 10000, 10001, 10002, 10003); }
public void CheckMinimalConfigTest() { var newConfig = MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("mtsgate-ci.betradar.com") .SetVirtualHost("/vhost") .SetLimitId(111) //.SetBookmakerId(333) .SetAccessToken("erErk34kfErr") .SetCurrency("EUR") .SetNode(10) .SetMtsClientApiHost("https://mts-api-ci.betradar.com/edge/proxy") .SetKeycloakHost("https://mts-auth-ci.betradar.com") //.SetKeycloakUsername("keycloackUsername") //.SetKeycloakPassword("keycloackPassword") .SetKeycloakSecret("53d342-4a7c-dgdbd23-9e1b-93822f2") .Build(); InitReportManager(newConfig); var minDate = DateTime.Now.AddDays(-14); var maxDate = DateTime.Now; var ccfChanges = _reportManager.GetHistoryCcfChangeCsvExportAsync(minDate, maxDate, 1, null, null, SourceType.Customer, "keyUsername", "keyPassword").Result; Assert.IsNotNull(ccfChanges); Assert.AreEqual(6974, ccfChanges.Count); }
private void InitReportManager(ISdkConfiguration config = null) { var newConfig = config ?? MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("mtsgate-ci.betradar.com") .SetVirtualHost("/vhost") .SetLimitId(111) .SetBookmakerId(333) .SetAccessToken("erErk34kfErr") .SetCurrency("EUR") .SetNode(10) .SetMtsClientApiHost("https://mts-api-ci.betradar.com/edge/proxy") .SetKeycloakHost("https://mts-auth-ci.betradar.com") .SetKeycloakUsername("keycloackUsername") .SetKeycloakPassword("keycloackPassword") .SetKeycloakSecret("53d342-4a7c-dgdbd23-9e1b-93822f2") .Build(); _mtsAuthService = new MtsAuthServiceHelper(config); var uri = new Uri(newConfig.KeycloakHost + "/ReportingCcf/external/api/report/export/history/ccf/changes/client/api"); _mockDataFetcher = new Mock <DataFetcherHelper>(); _mockDataFetcher.Setup(p => p.GetDataAsync(It.IsAny <Uri>())).Returns(new DataFetcherHelper(BuilderFactoryHelper.UriReplacements).GetDataAsync(uri)); _reportManager = new ReportManager(_mockDataFetcher.Object, uri.OriginalString, _mtsAuthService, null, newConfig); }
public void BuilderNullPassword() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword(null) .SetHost("host") .Build(); }
public void BuilderEmptyUsername() { MtsSdk.CreateConfigurationBuilder() .SetUsername("") .SetPassword("password") .SetHost("host") .Build(); }
public static ISdkConfiguration BuilderMinimalConfiguration() { return(MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .Build()); }
public void BuilderTicketCashoutResponseTimeoutToHigh() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetTicketCashoutResponseTimeout(SdkInfo.TicketCashoutResponseTimeoutMax + 1) .Build(); }
public void BuilderTicketCancellationResponseTimeoutToLow() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetTicketCancellationResponseTimeout(SdkInfo.TicketCancellationResponseTimeoutMin - 1) .Build(); }
public void BuilderNullKeycloakSecret() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetKeycloakSecret(null) .Build(); }
public void BuilderCurrencyToLong() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetCurrency("EUREUR") .Build(); }
public void BuilderNegativeLimitId() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetLimitId(-1) .Build(); }
public void BuilderNullClientApiHost() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetMtsClientApiHost(null) .Build(); }
public void BuilderMissingKeycloakSecret() { MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .SetMtsClientApiHost("clientApi") .SetKeycloakHost("keycloak") .Build(); }
public void BuilderMinimalConfiguration() { var config = MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("host") .Build(); CheckAllSettings(config); }
public void MtsSdkIsConstructedSuccessfully() { var config = _childContainer1.Resolve <ISdkConfiguration>(); Assert.IsNotNull(config); var sdk = new MtsSdk(config); Assert.IsNotNull(sdk); }
public static ISdkConfiguration GetSdkConfiguration() { return(MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("127.0.0.1") .SetVirtualHost("/test") .SetUseSsl(true) .SetLimitId(111) .SetBookmakerId(222) .SetAccessToken("aaa") .SetCurrency("mBTC") .SetNode(10) .SetSenderChannel(SenderChannel.Mobile) .Build()); }
/// <summary> /// Starts the MTS Sdk Session /// </summary> public void Start() { try { _log.Info("Running the MTS SDK Non-Blocking mode."); _log.Info("Retrieving configuration from application configuration file."); var config = MtsSdk.GetConfiguration(); _log.Info("Creating root MTS SDK instance."); _mtsSdk = new MtsSdk(config); #region Testing Section ////handles database related operations //_ticketService = new TicketService(_log); ////handles all MTS events //_factory = _mtsSdk.BuilderFactory; //_ticketHandler = new MTSTicketsHandlers(_mtsSdk, _factory, _log); //TestSendTicket(); #endregion _log.Info("Attaching to events."); AttachToFeedEvents(_mtsSdk); _log.Info("Opening the sdk instance (creating and opening connection to the AMPQ broker)"); _mtsSdk.Open(); _factory = _mtsSdk.BuilderFactory; //handles database related operations _ticketService = new TicketService(_log); //handles all MTS events _ticketHandler = new MTSTicketsHandlers(_mtsSdk, _factory, _log); //starting timer to get ticket updates from database _timer = new Timer(TicketUpdatesTimer_Tick, null, _updateInterval, _updateInterval); _log.Info("MTS SDK started successfully. Hit <enter> to quit if in console mode."); Console.WriteLine(string.Empty); Console.ReadLine(); } catch (Exception error) { EventLog.WriteEntry("Service ", error.ToString(), EventLogEntryType.Error); } }
public void Init() { var config = MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("mtsgate-ci.betradar.com") .SetVirtualHost("/vhost") .SetLimitId(111) .SetBookmakerId(333) .SetAccessToken("erErk34kfErr") .SetCurrency("EUR") .SetNode(10) .SetMtsClientApiHost("https://mts-api-ci.betradar.com/edge/proxy") .SetKeycloakHost("https://mts-auth-ci.betradar.com") .SetKeycloakUsername("keycloackUsername") .SetKeycloakPassword("keycloackPassword") .SetKeycloakSecret("53d342-4a7c-dgdbd23-9e1b-93822f2") .Build(); InitReportManager(config); }
public MtsAuthServiceHelper(ISdkConfiguration config = null) { var newConfig = config ?? MtsSdk.CreateConfigurationBuilder() .SetUsername("username") .SetPassword("password") .SetHost("mtsgate-ci.betradar.com") .SetVirtualHost("/vhost") .SetLimitId(111) .SetBookmakerId(333) .SetAccessToken("erErk34kfErr") .SetCurrency("EUR") .SetNode(10) .SetMtsClientApiHost("https://mts-api-ci.betradar.com/edge/proxy") .SetKeycloakHost("https://mts-auth-ci.betradar.com") .SetKeycloakUsername("keycloackUsername") .SetKeycloakPassword("keycloackPassword") .SetKeycloakSecret("53d342-4a7c-dgdbd23-9e1b-93822f2") .Build(); var uri = new Uri(newConfig.KeycloakHost + "/auth/realms/mts/protocol/openid-connect/token"); var mockDataFetcher = new Mock <DataFetcherHelper>(); mockDataFetcher.Setup(p => p.GetDataAsync(It.IsAny <Uri>())).Returns(new DataFetcherHelper(BuilderFactoryHelper.UriReplacements).GetDataAsync(uri)); mockDataFetcher.Setup(p => p.PostDataAsync(It.IsAny <Uri>(), It.IsAny <HttpContent>())).Returns(new DataFetcherHelper(BuilderFactoryHelper.UriReplacements).PostDataAsync(uri, null)); var deserializer = new SDK.Entities.Internal.JsonDeserializer <AccessTokenDTO>(); var mapper = new KeycloakAuthorizationMapperFactory(); var dataProvider = new DataProvider <AccessTokenDTO, KeycloakAuthorization>( uri.AbsoluteUri, mockDataFetcher.Object, mockDataFetcher.Object, deserializer, mapper); _mtsAuthService = new MtsAuthService(dataProvider, newConfig); }
public void Run() { _log.LogInformation("Running the MTS SDK ticket integration examples"); _log.LogInformation("Retrieving configuration from application configuration file"); var config = MtsSdk.GetConfiguration(); _log.LogInformation("Creating root MTS SDK instance"); _mtsSdk = new MtsSdk(config, _loggerFactory); _log.LogInformation("Attaching to events"); AttachToFeedEvents(_mtsSdk); _log.LogInformation("Opening the sdk instance (creating and opening connection to the AMPQ broker)"); _mtsSdk.Open(); var ticketExamples = new TicketExamples(_mtsSdk.BuilderFactory); _factory = _mtsSdk.BuilderFactory; _log.LogInformation("Example 1"); _mtsSdk.SendTicket(ticketExamples.Example1()); _log.LogInformation("Example 2"); _mtsSdk.SendTicket(ticketExamples.Example2()); _log.LogInformation("Example 3"); _mtsSdk.SendTicket(ticketExamples.Example3()); _log.LogInformation("Example 4"); _mtsSdk.SendTicket(ticketExamples.Example4()); _log.LogInformation("Example 5"); _mtsSdk.SendTicket(ticketExamples.Example5()); _log.LogInformation("Example 6"); _mtsSdk.SendTicket(ticketExamples.Example6()); _log.LogInformation("Example 7"); _mtsSdk.SendTicket(ticketExamples.Example7()); _log.LogInformation("Example 8"); _mtsSdk.SendTicket(ticketExamples.Example8()); _log.LogInformation("Example 9"); _mtsSdk.SendTicket(ticketExamples.Example9()); _log.LogInformation("Example 10"); _mtsSdk.SendTicket(ticketExamples.Example10()); _log.LogInformation("Example 11"); _mtsSdk.SendTicket(ticketExamples.Example11()); _log.LogInformation("Example 12"); _mtsSdk.SendTicket(ticketExamples.Example12()); _log.LogInformation("Example 13"); _mtsSdk.SendTicket(ticketExamples.Example13()); _log.LogInformation("Example 14"); _mtsSdk.SendTicket(ticketExamples.Example14()); _log.LogInformation("Examples successfully executed. Hit <enter> to quit"); Console.WriteLine(string.Empty); Console.ReadLine(); _log.LogInformation("Detaching from events"); DetachFromFeedEvents(_mtsSdk); _log.LogInformation("Closing the connection and disposing the instance"); _mtsSdk.Close(); _log.LogInformation("Example stopped"); }
public void Run() { _log.LogInformation("Running the MTS SDK cashout example"); _log.LogInformation("Retrieving configuration from application configuration file"); var config = MtsSdk.GetConfiguration(); _log.LogInformation("Creating root MTS SDK instance"); _mtsSdk = new MtsSdk(config, _loggerFactory); _log.LogInformation("Attaching to events"); AttachToFeedEvents(_mtsSdk); _log.LogInformation("Opening the sdk instance (creating and opening connection to the AMPQ broker)"); _mtsSdk.Open(); _factory = _mtsSdk.BuilderFactory; // create ticket (in order to be accepted, correct values must be entered) // values below are just for demonstration purposes and will not be accepted //cashout ticket is available only for live events var r = new Random(); _originalTicket = _factory.CreateTicketBuilder() .SetTicketId("ticketId-" + r.Next()) .SetSender(_factory.CreateSenderBuilder() .SetCurrency("EUR") .SetEndCustomer(_factory.CreateEndCustomerBuilder() .SetId("customerClientId-" + r.Next()) .SetConfidence(1) .SetIp(IPAddress.Loopback) .SetLanguageId("en") .SetDeviceId("UsersDevice-" + r.Next()) .Build()) .Build()) .AddBet(_factory.CreateBetBuilder() .SetBetId("betId-" + r.Next()) .SetBetBonus(1) .SetStake(123450000, StakeType.Total) .AddSelectedSystem(1) .AddSelection(_factory.CreateSelectionBuilder() .SetEventId("1") .SetIdUof(1, $"sr:match:{r.Next()}", 1, "1", string.Empty, null) .SetOdds(11000) .Build()) .Build()) .BuildTicket(); // send ticket to the MTS. Since this is a non-blocking way of sending, the response will raise the event TicketResponseReceived _log.LogInformation("Send ticket to the MTS."); _mtsSdk.SendTicket(_originalTicket); _log.LogInformation("Example successfully executed. Hit <enter> to quit"); Console.WriteLine(string.Empty); Console.ReadLine(); _log.LogInformation("Detaching from events"); DetachFromFeedEvents(_mtsSdk); _log.LogInformation("Closing the connection and disposing the instance"); _mtsSdk.Close(); _log.LogInformation("Example stopped"); }
public void Run() { _log.Info("Running the MTS SDK Basic example"); _log.Info("Retrieving configuration from application configuration file"); var config = MtsSdk.GetConfiguration(); _log.Info("Creating root MTS SDK instance"); _mtsSdk = new MtsSdk(config); _log.Info("Attaching to events"); AttachToFeedEvents(_mtsSdk); _log.Info("Opening the sdk instance (creating and opening connection to the AMPQ broker)"); _mtsSdk.Open(); _factory = _mtsSdk.BuilderFactory; // create ticket (in order to be accepted, correct values must be entered) // values below are just for demonstration purposes and will not be accepted var r = new Random(); var ticket = _factory.CreateTicketBuilder() .SetTicketId("ticketId-" + r.Next()) .SetSender(_factory.CreateSenderBuilder() .SetCurrency("EUR") .SetEndCustomer(_factory.CreateEndCustomerBuilder() .SetId("customerClientId-" + r.Next()) .SetConfidence(1) .SetIp(IPAddress.Loopback) .SetLanguageId("en") .SetDeviceId("UsersDevice-" + r.Next()) .Build()) .Build()) .AddBet(_factory.CreateBetBuilder() .SetBetId("betId-" + r.Next()) .SetBetBonus(1) .SetStake(15000, StakeType.Total) .AddSelectedSystem(1) .AddSelection(_factory.CreateSelectionBuilder() .SetEventId("1") .SetIdUof(3, $"sr:match:{r.Next()}", 12, "1", string.Empty, null) .SetOdds(11000) .Build()) .Build()) .BuildTicket(); // send ticket to the MTS. Since this is a blocking way of sending, the response will be result of the method (no event handler will be raised) _log.Info("Send ticket to the MTS and wait for the response."); var ticketResponse = _mtsSdk.SendTicketBlocking(ticket); _log.Info($"TicketResponse received. Status={ticketResponse.Status}, Reason={ticketResponse.Reason.Message}."); if (ticketResponse.Status == TicketAcceptance.Accepted) { //required only if 'explicit acking' is enabled in MTS admin ticketResponse.Acknowledge(); //if for some reason we want to cancel ticket, this is how we can do it var ticketCancel = _factory.CreateTicketCancelBuilder().BuildTicket(ticket.TicketId, ticket.Sender.BookmakerId, TicketCancellationReason.BookmakerTechnicalIssue); var ticketCancelResponse = _mtsSdk.SendTicketCancelBlocking(ticketCancel); _log.Info($"Ticket '{ticket.TicketId}' response is {ticketCancelResponse.Status}. Reason={ticketCancelResponse.Reason?.Message}"); if (ticketCancelResponse.Status == TicketCancelAcceptance.Cancelled) { //mandatory for all cancellations, except for TimeOutTriggered cancellation ticketCancelResponse.Acknowledge(); } } _log.Info("Example successfully executed. Hit <enter> to quit"); Console.WriteLine(string.Empty); Console.ReadLine(); _log.Info("Detaching from events"); DetachFromFeedEvents(_mtsSdk); _log.Info("Closing the connection and disposing the instance"); _mtsSdk.Close(); _log.Info("Example stopped"); }
public void Run() { _log.Info("Running the MTS SDK Basic example"); _log.Info("Retrieving configuration from application configuration file"); var config = MtsSdk.GetConfiguration(); _log.Info("Creating root MTS SDK instance"); _mtsSdk = new MtsSdk(config); _log.Info("Attaching to events"); AttachToFeedEvents(_mtsSdk); _log.Info("Opening the sdk instance (creating and opening connection to the AMPQ broker)"); _mtsSdk.Open(); _factory = _mtsSdk.BuilderFactory; // create ticket (in order to be accepted, correct values must be entered) // values below are just for demonstration purposes and will not be accepted var r = new Random(); var bet = _factory.CreateBetBuilder() .SetBetId("betId-" + r.Next()) .SetBetBonus(1) .SetStake(11200, StakeType.Total) .AddSelectedSystem(1) .AddSelection(_factory.CreateSelectionBuilder() .SetEventId("1") .SetIdUof(3, $"sr:match:{r.Next()}", 12, "1", string.Empty, null) // only one of the following is required to set selectionId (if you use this method, config property 'accessToken' must be provided) .SetIdLo(1, 1, "1:1", "1") .SetIdLcoo(1, 1, "1:1", "1") .SetId("lcoo:409/1/*/YES") .SetOdds(11000) .Build()) .Build(); var endCustomer = _factory.CreateEndCustomerBuilder() .SetId("customerClientId-" + r.Next()) .SetConfidence(1) .SetIp(IPAddress.Loopback) .SetLanguageId("en") .SetDeviceId("UsersDevice-" + r.Next()) .Build(); var ticket = _factory.CreateTicketBuilder() .SetTicketId("ticketId-" + r.Next()) .SetSender(_factory.CreateSenderBuilder() .SetCurrency("EUR") .SetEndCustomer(endCustomer) .Build()) .AddBet(bet) .BuildTicket(); // send ticket to the MTS. Since this is a non-blocking way of sending, the response will come on the event TicketResponseReceived _log.Info("Send ticket to the MTS."); _log.Info(ticket.ToJson()); _mtsSdk.SendTicket(ticket); _log.Info("Example successfully executed. Hit <enter> to quit"); Console.WriteLine(string.Empty); Console.ReadLine(); _log.Info("Detaching from events"); DetachFromFeedEvents(_mtsSdk); _log.Info("Closing the connection and disposing the instance"); _mtsSdk.Close(); _log.Info("Example stopped"); }