Ejemplo n.º 1
0
        protected virtual PublicHolidays GetPublicHolidaysFromReader(IDataReader reader)
        {
            EntityConverter <PublicHolidays> PublicHolidaysEntity = new EntityConverter <PublicHolidays>();
            PublicHolidays publicHolidays = PublicHolidaysEntity.Convert(reader);

            return(publicHolidays);
        }
        public async Task <ActionResult <PublicHolidays> > PostPublicHolidays(PublicHolidays publicHolidays)
        {
            _context.PublicHolidays.Add(publicHolidays);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPublicHolidays", new { id = publicHolidays.ID }, publicHolidays));
        }
        public IActionResult Update(PublicHolidays publicHolidays)
        {
            PublicHolidaysRepository.HolidaysRepository.Update(publicHolidays);

            publicHolidays = new PublicHolidays();
            return(View("Index", publicHolidays));
        }
        public PublicHolidays GetPublicHolidaysByID(long ID)
        {
            //Constructer da tanımladığımız api linkinden apinin controllerına erişiyoruz api/publicholidays/id ile
            PublicHolidays publicHolidays = new PublicHolidays();
            var            responseTask   = client.GetAsync("api/publicholidays/" + ID);

            // yapılan işlem asycrn olduğu için cevabı beklemeliyiz bu yüzden var responseTask ataması yaptıktan sonra wait kullanılmalı
            responseTask.Wait();

            var result = responseTask.Result;

            //gelen yapıdan sonucu çekiyoruz
            if (result.IsSuccessStatusCode)
            {
                //sonuçtan gelen veriyi çekiyoruz
                var readTask = result.Content.ReadAsAsync <PublicHolidays>();
                readTask.Wait();
                //geri dönecek olan listeyi yüklüyoruz
                publicHolidays = readTask.Result;
                return(publicHolidays);
            }
            else
            {
                //işlem başarılı olmadığında if(result.IsSuccessStatusCode) boş bir liste döndürüyoruz ki crash olmasın hata dönsün sadece
                publicHolidays = null;
                return(publicHolidays);
            }
        }
        public async Task <IActionResult> PutPublicHolidays(long id, PublicHolidays publicHolidays)
        {
            if (id != publicHolidays.ID)
            {
                return(BadRequest());
            }

            _context.Entry(publicHolidays).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PublicHolidaysExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 6
0
    /**
     * Calculate the toll for a single pass
     *
     * @param vehicle - the vehicle
     * @param date   - date and time of the pass
     * @return - the fee to be paid.
     */
    public int GetSingleTollFee(IVehicle vehicle, DateTime date)
    {
        if (PublicHolidays.IsTollFreeDate(date) || vehicle.GetExemptionStatus() == true)
        {
            return(0);
        }

        TimeSpan tollTime = date.TimeOfDay;

        if ((tollTime >= new TimeSpan(6, 0, 0) && tollTime <= new TimeSpan(6, 29, 0)) ||
            (tollTime >= new TimeSpan(8, 30, 0) && tollTime <= new TimeSpan(14, 59, 0)) ||
            (tollTime >= new TimeSpan(18, 0, 0) && tollTime <= new TimeSpan(18, 29, 0)))
        {
            return(8);
        }

        if ((tollTime >= new TimeSpan(6, 30, 0) && tollTime <= new TimeSpan(6, 59, 0)) ||
            (tollTime >= new TimeSpan(8, 0, 0) && tollTime <= new TimeSpan(8, 29, 0)) ||
            (tollTime >= new TimeSpan(15, 0, 0) && tollTime <= new TimeSpan(15, 29, 0)) ||
            (tollTime >= new TimeSpan(17, 0, 0) && tollTime <= new TimeSpan(17, 59, 0)))
        {
            return(13);
        }

        if ((tollTime >= new TimeSpan(7, 0, 0) && tollTime <= new TimeSpan(7, 59, 0)) ||
            (tollTime >= new TimeSpan(15, 30, 0) && tollTime <= new TimeSpan(16, 59, 0)))
        {
            return(18);
        }

        return(0);
    }
Ejemplo n.º 7
0
        public void IsPublicHoliday_Test()
        {
            foreach ((var date, var name) in TestDataSource)
            {
                var expected = (name != "");

                PublicHolidays.IsPublicHoliday(date).Is(expected, $"{date:yyyy/MM/dd}");
            }
        }
Ejemplo n.º 8
0
        public void IsCitizensHoliday_Test()
        {
            foreach ((var date, var name) in TestDataSource)
            {
                var expected = (name == nameof(PublicHoliday.Citizens));

                PublicHolidays.IsCitizensHoliday(date).Is(expected, $"{date:yyyy/MM/dd}");
            }
        }
        public IActionResult Edit(long ID)
        {
            PublicHolidays publicHolidays = new PublicHolidays();

            publicHolidays = PublicHolidaysRepository.HolidaysRepository.GetPublicHolidaysByID(ID);


            return(View("Index", publicHolidays));
        }
Ejemplo n.º 10
0
        public async Task TestGet()
        {
            var holidays = await PublicHolidays.Get();

            Assert.True(holidays.Length >= 20);

            var day = holidays.FirstOrDefault(x => x.Date == new DateTime(DateTime.Now.Year, 1, 1));

            Assert.NotNull(day);
            Assert.Equal("元日", day.Name);
        }
        public IActionResult Delete(long ID, PublicHolidays?publicHolidays)
        {
            if (publicHolidays == null)
            {
                publicHolidays = new PublicHolidays();
            }

            PublicHolidaysRepository.HolidaysRepository.Delete(ID);

            return(View("Index", publicHolidays));
        }
        public IActionResult Index(PublicHolidays?publicHolidays)
        {
            //input valuelerine atama yapabilmeniz için indexte boş bir obje yollanmalı
            if (publicHolidays == null)
            {
                publicHolidays = new PublicHolidays();
            }

            //Mock(sahte) veri kullanımı buradaki publicholidays i satır satır elle doldursaydınız ve bunu yollasaydınız index teki valueleri atanmış yerler dolu gelirdi.Repo veya API olmadığında buradan başlamak isterseniz bu şekilde sahte veri ile çalışabilirsiniz.
            return(View(publicHolidays));
        }
        public async Task <ActionResult <PublicHolidays> > GetPublicHolidays(long id)
        {
            PublicHolidays publicHolidays = await _context.PublicHolidays.FindAsync(id);

            if (publicHolidays == null)
            {
                return(NotFound());
            }

            return(publicHolidays);
        }
Ejemplo n.º 14
0
        public void GetPublicHoliday_Test()
        {
            foreach ((var date, var name) in TestDataSource)
            {
                if (Enum.TryParse <PublicHoliday>(name, out var expected) == false)
                {
                    expected = PublicHoliday.None;
                }

                PublicHolidays.GetPublicHoliday(date).Is(expected, $"{date:yyyy/MM/dd}");
            }
        }
Ejemplo n.º 15
0
        public void IsNationalHoliday_Test()
        {
            foreach ((var date, var name) in TestDataSource)
            {
                var expected = Enum.TryParse <PublicHoliday>(name, out var output) &&
                               output != PublicHoliday.Transfer &&
                               output != PublicHoliday.Citizens
                ;

                PublicHolidays.IsNationalHoliday(date).Is(expected, $"{date:yyyy/MM/dd}");
            }
        }
        public void Update(PublicHolidays publicHolidays)
        {
            //burada pu işlemi ile yönlendirme yapıyoruz.
            var PutTask = client.PutAsJsonAsync <PublicHolidays>("api/publicholidays/" + publicHolidays.ID, publicHolidays);

            PutTask.Wait();
            var result = PutTask.Result;

            if (!result.IsSuccessStatusCode)
            {
                throw new Exception(result.ReasonPhrase);
            }
        }
        public void Add(PublicHolidays publicHolidays)
        {
            //Burada gelen objeyi post metodu ile apiye yönlendiriyoruz.
            var PostTask = client.PostAsJsonAsync <PublicHolidays>("api/publicholidays", publicHolidays);

            PostTask.Wait();

            var result = PostTask.Result;

            if (!result.IsSuccessStatusCode)
            {
                throw new Exception(result.ReasonPhrase);
            }
        }
        public IActionResult AddPublicHoliday(PublicHolidays publicHolidays)
        {
            //Ekleme işlemi yaparken formdan gelen veri obje şeklinde burada dikkat bazı gerekli özellikleri eklemediğinizde mesela offdays yok
            // burada mock veri / sahte veri demek aşağıdagördüğünüz gibi alınabiliyor.

            publicHolidays.ModifiedDate = DateTime.Now;
            publicHolidays.CreatedDate  = DateTime.Now;
            publicHolidays.IsActive     = true;



            if (publicHolidays != null)
            {
                PublicHolidaysRepository.HolidaysRepository.Add(publicHolidays);
            }
            else
            {
                publicHolidays = new PublicHolidays();
            }

            return(View("Index", publicHolidays));
        }
Ejemplo n.º 19
0
        public void ThenTheResponseShouldGiveMeNationalHolidayResults(Table table)
        {
            var            output   = Publicholiday.GetContentList <PublicHolidays>(_response);
            PublicHolidays holidays = table.CreateInstance <PublicHolidays>();

            foreach (var result in output)
            {
                switch (result.LocalName)
                {
                case "Nieuwjaarsdag"
                    when result.Name.Equals("New Year's Day"):
                    Assert.That(result.Name.Equals(holidays.Name));

                    Assert.That(result.LocalName.Equals(holidays.LocalName));
                    Assert.That(result.CountryCode.Equals(holidays.CountryCode));
                    Assert.That(result.Type.Equals(holidays.Type));
                    Assert.That(result.Date.Equals(holidays.Date));
                    Assert.That(result.LaunchYear.Equals(holidays.LaunchYear));
                    break;
                }
            }
        }
Ejemplo n.º 20
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting tests for TollFreeCalculator.");
            var totalTests      = 0;
            var successfulTests = 0;

            Dictionary <string, DateTime> times = new Dictionary <string, DateTime>
            {
                { "06:40", new DateTime(2020, 4, 29, 6, 40, 52) },
                { "06:55", new DateTime(2020, 4, 29, 6, 55, 52) },
                { "07:10", new DateTime(2020, 4, 29, 7, 10, 52) },
                { "07:41", new DateTime(2020, 4, 29, 7, 41, 52) },
                { "09:10", new DateTime(2020, 4, 29, 9, 10, 52) },
                { "08:22", new DateTime(2020, 4, 29, 8, 22, 52) },
                { "10:18", new DateTime(2020, 4, 29, 10, 18, 52) },
                { "10:30", new DateTime(2020, 4, 29, 10, 30, 52) },
                { "16:59", new DateTime(2020, 4, 29, 16, 59, 00) },
                { "17:59", new DateTime(2020, 4, 29, 17, 59, 00) },
                { "18:10", new DateTime(2020, 4, 29, 18, 10, 52) },
                { "19:22", new DateTime(2020, 4, 29, 19, 22, 00) }
            };

            Dictionary <string, DateTime> dates = new Dictionary <string, DateTime>
            {
                { "03-01", new DateTime(2020, 3, 1, 17, 59, 00) },
                { "03-02", new DateTime(2020, 3, 2, 17, 59, 00) },
                { "04-26", new DateTime(2020, 4, 26, 17, 59, 00) },
                { "04-27", new DateTime(2020, 4, 27, 17, 59, 00) },
                { "05-01", new DateTime(2020, 5, 1, 17, 59, 00) },
                { "12-24", new DateTime(2020, 12, 24, 17, 59, 00) },
                { "01-15", new DateTime(2020, 1, 15, 17, 59, 00) }
            };

            // Setting up vehicles
            var regularCar = new TollFeeCalculator.Car();
            var diplomat   = new TollFeeCalculator.Car {
                IsDiplomat = true
            };
            var emergencyVehicle = new TollFeeCalculator.Car {
                IsEmergency = true
            };
            var militaryCar = new TollFeeCalculator.Car {
                IsMilitary = true
            };
            var bike    = new TollFeeCalculator.Motorbike();
            var tractor = new TollFeeCalculator.Tractor();


            // Setup Toll Calculator
            var tollCalc = new TollCalculator();

            /*
             * Testing Vehice Exemption status
             */
            totalTests += 6;
            if (regularCar.GetExemptionStatus() == false)
            {
                successfulTests++;
            }
            if (diplomat.GetExemptionStatus() == true)
            {
                successfulTests++;
            }
            if (emergencyVehicle.GetExemptionStatus() == true)
            {
                successfulTests++;
            }
            if (militaryCar.GetExemptionStatus() == true)
            {
                successfulTests++;
            }
            if (bike.GetExemptionStatus() == true)
            {
                successfulTests++;
            }
            if (tractor.GetExemptionStatus() == true)
            {
                successfulTests++;
            }


            /*
             * Single Passes
             */
            totalTests += 3;
            if (tollCalc.GetSingleTollFee(regularCar, times["09:10"]) == 8)
            {
                successfulTests++;
            }
            if (tollCalc.GetSingleTollFee(regularCar, times["17:59"]) == 13)
            {
                successfulTests++;
            }
            if (tollCalc.GetSingleTollFee(bike, times["17:59"]) == 0)
            {
                successfulTests++;
            }

            /*
             * Multiple passes
             */
            totalTests += 2;
            DateTime[] passes = { times["09:10"], times["17:59"] };
            if (tollCalc.GetTollFee(regularCar, passes) == 21)
            {
                successfulTests++;
            }

            DateTime[] max =
            {
                times["07:10"],
                times["08:22"],
                times["10:18"],
                times["16:59"],
                times["18:10"],
            };
            if (tollCalc.GetTollFee(regularCar, max) == 60)
            {
                successfulTests++;
            }

            /*
             * Multiple passes with multi pass discount
             */
            totalTests += 3;
            DateTime[] higher = { times["06:40"], times["06:55"], times["07:10"] };
            if (tollCalc.GetTollFee(regularCar, higher) == 18)
            {
                successfulTests++;
            }

            // One at the start of the day, and then multi pass at the end
            DateTime[] separate = { times["06:55"], times["10:18"], times["10:30"] };
            if (tollCalc.GetTollFee(regularCar, separate) == 21)
            {
                successfulTests++;
            }

            // One just outside the 60 min window
            DateTime[] sixty = { times["06:40"], times["06:55"], times["07:10"], times["07:41"] };
            if (tollCalc.GetTollFee(regularCar, sixty) == 36)
            {
                successfulTests++;
            }

            /*
             * Multiple days (should fail)
             */
            totalTests += 1;
            DateTime[] dayPasses = { dates["04-26"], dates["04-27"] };
            try
            {
                tollCalc.GetTollFee(regularCar, dayPasses);
            }
            catch (System.ArgumentException)
            {
                successfulTests++;
            }

            /*
             * Test public holidays
             */
            totalTests += 5;
            if (PublicHolidays.IsTollFreeDate(dates["05-01"]) == true)
            {
                successfulTests++;
            }
            ;
            if (PublicHolidays.IsTollFreeDate(dates["03-01"]) == true)
            {
                successfulTests++;
            }
            ;
            if (PublicHolidays.IsTollFreeDate(dates["03-02"]) == false)
            {
                successfulTests++;
            }
            ;
            if (PublicHolidays.IsTollFreeDate(dates["12-24"]) == true)
            {
                successfulTests++;
            }
            ;
            if (PublicHolidays.IsTollFreeDate(dates["01-15"]) == false)
            {
                successfulTests++;
            }
            ;

            Console.WriteLine("Tests completed. Result: " + successfulTests.ToString() + "/" + totalTests.ToString());;
        }