예제 #1
0
        static void Main(string[] args)
        {
            Config.Load(args);

            var id_provider   = new IdProvider();
            var date_provider = new DateProvider();

            var person_repo     = new PersonRepository(Config.DbPath);
            var tournament_repo = new TournamentRepository(Config.DbPath);

            var director = new TournamentDirector(id_provider);

            var personStockQueryHandler        = new PersonStockQueryHandler(person_repo);
            var newPersonQueryHandler          = new NewPersonQueryHandler(id_provider);
            var storePersonCommandHandler      = new StorePersonCommandHandler(person_repo);
            var createTournamentCommandHandler = new CreateTournamentCommandHandler(tournament_repo, person_repo,
                                                                                    id_provider, date_provider, director);
            var tournamentQueryHandler = new TournamentQueryHandler(tournament_repo);

            var tournamentsInfoQueryHandler = new TournamentStockQueryHandler(tournament_repo);

            var server = new Server(personStockQueryHandler, newPersonQueryHandler,
                                    storePersonCommandHandler, createTournamentCommandHandler,
                                    tournamentQueryHandler, tournamentsInfoQueryHandler);

            server.Run(Config.Address);
        }
예제 #2
0
        public void ShouldReturnCurrentDate()
        {
            var dateProvider = new DateProvider();
            var today        = dateProvider.TodaysDate();

            Assert.Equal("2021-02-22", today);
        }
예제 #3
0
        public static void RegisterProviderFactory(string connectionString, DateProvider provider = DateProvider.SqlServer)
        {
            Check.ConnectionConfig(connectionString);
            Check.ArgumentNullException(provider);
            switch (provider)
            {
            case DateProvider.SqlServer:
                RegisterProviderFactory(connectionString, new SqlerverProvider());
                break;

            case DateProvider.Oracle:
                RegisterProviderFactory(connectionString, new OracleProvider());
                break;

            case DateProvider.MySql:
                RegisterProviderFactory(connectionString, new MysqlProvider());
                break;

            case DateProvider.Sqlite:
                RegisterProviderFactory(connectionString, new SqliteProvider());
                break;

            default:
                RegisterProviderFactory(connectionString, new SqliteProvider());
                break;
            }
        }
예제 #4
0
        public StartCommand(WorkItemService workItemService, DateProvider dateProvider)
        {
            ConfigureCommand();

            _workItemService = workItemService;
            _dateProvider    = dateProvider;
        }
예제 #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddAutoMapper();

            services.AddSwaggerGen(setup =>
            {
                setup.SwaggerDoc("v1", new Info
                {
                    Title   = "KinguilaApp API",
                    Version = "v1",
                    Contact = new Contact
                    {
                        Name  = "Henrick Kakutalua",
                        Email = "*****@*****.**",
                        Url   = "https://medium.com/@henrickpedro"
                    }
                });

                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                setup.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFile));
            });

            services.AddTransient <IExchangeRateService, KinguilaHojeExchangeRateService>();
            services.AddTransient <IPageTextualInformationParser, KinguilaHojeTextualInformationParser>();
            services.AddSingleton <KinguilaHojeSourceMapper>();
            services.AddTransient <IDateProvider>(x => DateProvider.Default());
        }
예제 #6
0
        [Test] //Test customer statement generation
        public void TestRenderCustomerStatement()
        {
            TextCustomerRenderer renderer       = new TextCustomerRenderer();
            IAccountFactory      accountFactory = new AccountFactory(DateProvider.getInstance());
            Account checkingAccount             = accountFactory.CreateAccount(AccountType.CHECKING);
            Account savingsAccount = accountFactory.CreateAccount(AccountType.SAVINGS);

            Customer henry = new Customer("Henry").openAccount(checkingAccount).openAccount(savingsAccount);

            checkingAccount.deposit(100.0);
            savingsAccount.deposit(4000.0);
            savingsAccount.withdraw(200.0);

            Assert.AreEqual("Statement for Henry\n" +
                            "\n" +
                            "Checking Account\n" +
                            "  deposit $100.00\n" +
                            "Total $100.00\n" +
                            "\n" +
                            "Savings Account\n" +
                            "  deposit $4,000.00\n" +
                            "  withdrawal $200.00\n" +
                            "Total $3,800.00\n" +
                            "\n" +
                            "Total In All Accounts $3,900.00", renderer.Render(henry));
        }
        public void TestCreateCheckingAccount()
        {
            AccountFactory factory = new AccountFactory(DateProvider.getInstance());
            Account        account = factory.CreateAccount(AccountType.CHECKING);

            Assert.IsNotNull(account);
            Assert.AreEqual(AccountType.CHECKING, account.AccountType);
        }
        public void TestCreateMaxiSavingAccount()
        {
            AccountFactory factory = new AccountFactory(DateProvider.getInstance());
            Account        account = factory.CreateAccount(AccountType.MAXI_SAVINGS);

            Assert.IsNotNull(account);
            Assert.AreEqual(AccountType.MAXI_SAVINGS, account.AccountType);
        }
예제 #9
0
 public void SetLimitationTime(StrongString[] timeValues)
 {
     BanLimitationTime = new List <IDateProvider <DateTime, Trigger, StrongString> >(BanList.Length);
     for (int i = 0; i < BanLimitationTime.Count; i++)
     {
         BanLimitationTime[i] = DateProvider.Parse(timeValues[i]);
     }
 }
예제 #10
0
 public void SetLimitationTime()
 {
     BanLimitationTime = new List <IDateProvider <DateTime, Trigger, StrongString> >(BanList.Length);
     for (int i = 0; i < BanLimitationTime.Count; i++)
     {
         BanLimitationTime[i] = DateProvider.GetUnlimited();
     }
 }
예제 #11
0
        public void ReturnTodaysDate()
        {
            var expected     = DateTime.Now.ToString("d");
            var dateProvider = new DateProvider();

            var date = dateProvider.Now();

            Assert.That(date, Is.EqualTo(expected));
        }
예제 #12
0
 public IDateTimeProvider Create(DateProvider type)
 {
     try
     {
         return _factory.Create<IDateTimeProvider>(type.ToString());
     }
     catch (Exception e)
     {
         throw new Exception("Error Returning IDateTimeProvider", e);
     }
 }
예제 #13
0
        public void TestRenderCustomerSummary()
        {
            TextBankRenderer renderer       = new TextBankRenderer();
            Bank             bank           = new Bank();
            Customer         john           = new Customer("John");
            IAccountFactory  accountFactory = new AccountFactory(DateProvider.getInstance());

            john.openAccount(accountFactory.CreateAccount(AccountType.CHECKING));
            bank.addCustomer(john);

            Assert.AreEqual("Customer Summary\n - John (1 account)", renderer.Render(bank));
        }
예제 #14
0
    public void UtcNow_ShouldReturnValidDate()
    {
        // Arrange
        IDateProvider dateProvider = new DateProvider();

        // Act
        DateTime utcNow = dateProvider.UtcNow();

        // Assert
        DateTime parsed = DateTime.Parse($"{utcNow}");

        Assert.False(parsed == default);
    }
예제 #15
0
        public void transactionDate_is_set_manually()
        {
            // prime the date
            DateTime d = DateTime.Now.AddDays(-365);

            DateProvider.getInstance().SetBackDate(d);
            Transaction t = new Transaction(5);

            // reset the date
            DateProvider.getInstance().SetBackDate(DateTime.MinValue);
            // check that the date of the transaction is 365 days ago.
            Assert.AreEqual(d, t.transactionDate);
        }
예제 #16
0
            //------------------------------------------
            public static IDateProvider <DateTime, Trigger, StrongString> GetNistTime()
            {
                /*
                 *
                 *
                 *
                 * var client = new TcpClient("time.nist.gov", 13);
                 * using (var streamReader = new StreamReader(client.GetStream()))
                 *  {
                 *   var response = streamReader.ReadToEnd();
                 *
                 *   var utcDateTimeString = response.Substring(7, 17);
                 *   var localDateTime = DateTime.ParseExact(utcDateTimeString, "yy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
                 *   return localDateTime;
                 *  }
                 */
                // This Part is Closed! Don't use this code plz! {ALi.w}
                //DateTime dateTime = DateTime.MinValue;

                //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://nist.time.gov/actualtime.cgi?lzbc=siqm9b");
                //request.Method = "GET";
                //request.Accept = "text/html, application/xhtml+xml, */*";
                //request.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
                //request.ContentType = "application/x-www-form-urlencoded";
                //request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore); //No caching
                //HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                //if (response.StatusCode == HttpStatusCode.OK)
                //{
                //StreamReader stream = new StreamReader(response.GetResponseStream());
                //string html = stream.ReadToEnd();//<timestamp time=\"1395772696469995\" delay=\"1395772696469995\"/>
                //string time = Regex.Match(html, @"(?<=\btime="")[^""]*").Value;
                //double milliseconds = Convert.ToInt64(time) / 1000.0;
                //dateTime = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds).ToLocalTime();
                //}
                //return dateTime;
                var myHttpWebRequest =
                    (HttpWebRequest)WebRequest.Create(AppSettings.TimeRequestURL);

                try
                {
                    return
                        (ToDateTime(myHttpWebRequest.GetResponse().Headers[AppSettings.DateHeaderKey].ToStrong()));
                }
                catch
                {
                    ThereIsServer.ServerSettings.HasConnectionClosed = true;
                    NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                    return(DateProvider.GetUnlimited());
                }
            }
예제 #17
0
    public override int SaveChanges()
    {
        var changeSet = ChangeTracker.Entries <IAuditable>();

        if (changeSet != null)
        {
            foreach (var entry in changeSet.Where(c => c.State != EntityState.Unchanged))
            {
                entry.Entity.ModifiedDate = DateProvider.GetCurrentDate();
                entry.Entity.ModifiedBy   = UserName;
            }
        }
        return(base.SaveChanges());
    }
예제 #18
0
        public void accounttype_maxi_savings_interestrate_withdrawl_more_then_10_days_test()
        {
            // set the date back so all transactions have back a year
            DateProvider.getInstance().SetBackDate(DateTime.Now.AddDays(-365));

            Customer bill = new Customer("Bill").openAccount(AccountType.MAXI_SAVING);

            bill.deposit(AccountType.MAXI_SAVING, 3000.0);
            bill.withdraw(AccountType.MAXI_SAVING, 100);

            // reset it
            DateProvider.getInstance().SetBackDate(DateTime.MinValue);

            Assert.AreEqual(2900 * 0.05, bill.totalInterestEarned(), DOUBLE_DELTA);
        }
예제 #19
0
        public void Accounts_AreInterestsAccruing()
        {
            IInterestAccount _SavingsAccount;
            IInterestAccount _CheckingAccount;
            IInterestAccount _MaxiSavingsAccount;

            // Initial deposit of $100
            // Do not override the default rates
            // Compound type is daily
            _SavingsAccount     = new SavingsAccount(1000);
            _CheckingAccount    = new CheckingAccount(1000);
            _MaxiSavingsAccount = new MaxiSavingsAccount(1000);

            _SavingsAccount.Deposit(2000);                    //Tr 2
            _SavingsAccount.Withdraw(1500);                   // Tr 3
            _SavingsAccount.Deposit(10000);                   // Tr 4
            _SavingsAccount.Transfer(_CheckingAccount, 4000); // Tr 5

            DateTime _futDate_4 = DateProvider.Now().AddDays(4);
            DateTime _futDate_7 = DateProvider.Now().AddDays(7);


            // No transactions prior to the periods
            decimal _fut4_interest;
            decimal _fut7_interest;

            _fut4_interest = _SavingsAccount.InterestEarned(_futDate_4);
            _fut7_interest = _SavingsAccount.InterestEarned(_futDate_7);


            Debug.Print(_fut4_interest.ToString());

            Assert.AreEqual("$0.16", _fut4_interest.ToDollars());
            Assert.AreEqual("$0.29", _fut7_interest.ToDollars());

            // Test again when there is transaction in duration


            DateTime _futDate_8  = DateProvider.Now().AddDays(8);
            DateTime _futDate_9  = DateProvider.Now().AddDays(9);
            DateTime _futDate_11 = DateProvider.Now().AddDays(11);

            _SavingsAccount.Deposit(5000, _futDate_8);
            _SavingsAccount.Withdraw(7000, _futDate_9);

            _fut7_interest = _SavingsAccount.InterestEarned(_futDate_11);
            Assert.AreEqual("$0.46", _fut7_interest.ToDollars());
        }
예제 #20
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic dynamicObject)
        {
            var builder = new WeatherDataBuilder();

            builder
            .SetTemperature((float)dynamicObject.temp, TemperatureScale.Celsius)
            .SetApparentTemperature((float)dynamicObject.feels_like, TemperatureScale.Celsius)
            .SetHumidity((int)dynamicObject.humidity)
            .SetPressure((int)dynamicObject.pressure)
            .SetWindSpeed((float)dynamicObject.wind_speed, WindSpeedUnit.MetersPerSecond)
            .SetWindDirection((int)dynamicObject.wind_deg)
            .SetWeatherCode((int)dynamicObject.weather[0].id)
            .SetWeatherDescription((string)dynamicObject.weather[0].description)
            .SetDate(DateProvider.GetActualDateTime());
            return(builder.Build());
        }
예제 #21
0
        public void TestGettingNowDateShouldBeUTCCurrentDateTime()
        {
            DateProvider provider = DateProvider.getInstance();

            Assert.IsNotNull(provider);
            DateTime now  = DateTime.UtcNow;
            DateTime date = provider.now();

            Assert.IsFalse(date == default(DateTime));
            Assert.IsTrue(date.Kind == DateTimeKind.Utc);
            Assert.AreEqual(now.Year, date.Year);
            Assert.AreEqual(now.Month, date.Month);
            Assert.AreEqual(now.Day, date.Day);
            Assert.AreEqual(now.Hour, date.Hour);
            Assert.AreEqual(now.Minute, date.Minute);
            Assert.AreEqual(now.Hour, date.Hour);
            Assert.AreEqual(now.Minute, date.Minute);
            Assert.AreEqual(now.Second, date.Second);
        }
예제 #22
0
        /// <summary>
        /// The main method
        /// </summary>
        /// <param name="args">the args</param>
        static void Main(string[] args)
        {
            var           print            = new Print();
            var           date             = new DateProvider();
            var           accountServices  = new AccountServices(date);
            PrintServices statementPrinter = new PrintServices(print);


            Account account = new Account(accountServices, statementPrinter);

            account.AddDeposit(1500);
            account.AddWithDraw(750);
            account.AddWithDraw(30);
            account.AddDeposit(650);
            account.AddWithDraw(20);

            account.PrintStatement();

            Console.ReadLine();
        }
예제 #23
0
 private void SetParams(StrongString serverValue)
 {
     StrongString[] myStrings = serverValue.Split(CharSeparater);
     PlayerName          = myStrings[0];                                     // 1
     PlayerLevel         = myStrings[1].ToUInt16();                          // 2
     PlayerLVLRanking    = myStrings[2].ToUInt16();                          // 3
     PlayerPowerRanking  = myStrings[3].ToUInt16();                          // 4
     PlayerGuildName     = myStrings[4];                                     // 5
     GuildPosition       = (GuildPosition)myStrings[5].ToUInt16();           // 6
     LastSeen            = DateProvider.Parse(myStrings[6]);                 // 7
     PlayerPower         = Unit.ConvertToUnit(myStrings[7]);                 // 8
     PlayerIntro         = myStrings[8];                                     // 9
     PlayerAvatar        = Avatar.ConvertToAvatar(myStrings[9]);             // 10
     PlayerAvatarFrame   = AvatarFrame.ParseToAvatarFrame(myStrings[10]);    // 11
     PlayerVIPlvl        = myStrings[11].ToUInt16();                         // 12
     PlayerCurrentExp    = Unit.ConvertToUnit(myStrings[12]);                // 13
     PlayerTotalExp      = Unit.ConvertToUnit(myStrings[13]);                // 14
     PlayerCurrentVIPExp = Unit.ConvertToUnit(myStrings[14]);                // 15
     ThePlayerElement    = (PlayerElement)myStrings[15].ToUInt16();          // 16
     PlayerKingdom       = (LTW_Kingdoms)myStrings[16].ToInt32();            // 17
     SocialPosition      = SocialPosition.GetSocialPosition(myStrings[17]);  // 18
 }
예제 #24
0
        public IActionResult Create_tournament(CreateTournamentCommand create_tournament_command)
        {
            _logger.LogInformation($"create tournament command: { create_tournament_command.Name }");

            using (var msgpump = new MessagePump(_es))
            {
                var id_provider   = new IdProvider();
                var date_provider = new DateProvider();

                var context_manager   = new CreateTournamentCommandContextManager(_es);
                var message_processor = new CreateTournamentCommandProcessor(id_provider, date_provider);
                msgpump.Register <CreateTournamentCommand>(context_manager, message_processor);

                var result = msgpump.Handle(create_tournament_command) as CommandStatus;
                if (result is Success)
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest());
                }
            }
        }
 protected override Account InstantiateAccount()
 {
     return(new Account(AccountType.CHECKING, new CheckingInterestCalculator(), DateProvider.getInstance()));
 }
예제 #26
0
 public void TestDateProviderInstanceNotNull()
 {
     Assert.IsNotNull(DateProvider.getInstance());
 }
예제 #27
0
 public KinguilaHojeTextualInformationParser GetDefaultParser()
 {
     return(new KinguilaHojeTextualInformationParser(DateProvider.Default()));
 }
예제 #28
0
 protected override Account InstantiateAccount()
 {
     return(new Account(AccountType.SAVINGS, new SavingInterestCalculator(), DateProvider.getInstance()));
 }
예제 #29
0
 public DefaultWorkItemService(WorkItemStore workItemStore, DateProvider dateProvider)
 {
     _workItemStore = workItemStore;
     _dateProvider  = dateProvider;
 }
예제 #30
0
 public static IDateProvider <DateTime, Trigger, StrongString> ToDateTime(StrongString value)
 {
     return(DateProvider.Parse(value));
 }
 public AccountService(DateProvider dateProvider)
 {
     _dateProvider = dateProvider;
 }