コード例 #1
0
ファイル: Program.cs プロジェクト: grofab95/SalaryCalculator
 static void Main()
 {
     while (true)
     {
         try
         {
             System.Console.WriteLine("PROGRAM DO OBLICZANIA WYNAGRODZENIA ZA NADGODZINY (DODATEK 50%)\n");
             var monthsWorkingHoursConfiguration
                 = JsonFileConverter.JsonFileConverter.ConvertFromFile <Dictionary <int, int> >("MonthConfig.json");
             var monthsWorkingHours = new MonthsWorkingHours(monthsWorkingHoursConfiguration);
             var factors            = new Factors
             {
                 WorkedHours = UserInputConsoleReader.ReadWorkedHours(),
                 HourlyFee   = UserInputConsoleReader.ReadHourlyFee(),
                 WorkedMonth = UserInputConsoleReader.ReadMonth()
             };
             var monthSalaryReport = new MonthSalaryReport(monthsWorkingHours, factors);
             var textReport        = new SimpleTextReportBuilder()
                                     .BuildMonthlyReport(monthSalaryReport);
             System.Console.WriteLine(textReport);
         }
         catch (Exception ex)
         {
             System.Console.WriteLine(
                 $"Wystąpił błąd: {ex.Message}{Environment.NewLine}");
             System.Console.WriteLine("----------------------------------------------------------------");
             Main();
         }
     }
 }
コード例 #2
0
 public SalaryCalculatorController(
     MonthsWorkingHours monthsWorkingHours,
     CalculationsSummary calculationsSummary,
     Calculator calculator)
 {
     _monthsWorkingHours = monthsWorkingHours;
     _summary            = calculationsSummary;
     _calculator         = calculator;
 }
コード例 #3
0
 public CalculatorMainWindow()
 {
     CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CurrentCulture;
     InitializeComponent();
     _monthsWorkingHours = LoadMonthsWorkingHoursFromConfiguration();
     FillMonthsList(_monthsWorkingHours);
     ConfigureMonthsDropDownMember();
     this.Localize();
 }
コード例 #4
0
 private void FillMonthsList(MonthsWorkingHours monthsWorkingHoursConfiguration)
 {
     MonthsDropDown.DataSource = Enumerable.Range(1, 12).Select(monthNo =>
     {
         var monthWorkingHours = monthsWorkingHoursConfiguration[monthNo];
         return(new MonthsDropDownItem
         {
             MonthName = $"{CultureInfo.DefaultThreadCurrentUICulture.DateTimeFormat.GetMonthName(monthNo)} ({monthWorkingHours} h)",
             Hours = monthsWorkingHoursConfiguration[monthNo]
         });
     }).ToList();
 }
コード例 #5
0
        public MonthSalaryReport(MonthsWorkingHours monthsWorkingHours, Factors factors)
        {
            var summary    = new CalculationsSummary();
            var calculator = new Calculator(monthsWorkingHours);

            Factors                      = factors;
            Summary                      = summary;
            MonthsWorkingHours           = monthsWorkingHours;
            summary.OverHoursAmount      = calculator.CalculateOverhoursAmount(factors.WorkedMonth, factors.WorkedHours);
            summary.OverHoursGrossIncome = calculator.CalculateOverHoursGrossIncome(summary.OverHoursAmount, factors.HourlyFee);
            summary.OverHoursNetIncome   = calculator.CalculateOverHoursNetIncome(summary.OverHoursGrossIncome);
            summary.TotalGrossIncome     = calculator.CalculateTotalGrossIncome(
                factors.WorkedHours, factors.HourlyFee, summary.OverHoursGrossIncome);
            summary.TotalNetIncome = calculator.CalculateTotalNetIncome(summary.TotalGrossIncome);
        }
コード例 #6
0
        public MonthSalaryReportTests()
        {
            var monthsWorkingHours = new MonthsWorkingHours(
                new Dictionary <int, int> {
                { 1, 150 }
            });

            var factors = new Factors()
            {
                HourlyFee   = 13,
                WorkedHours = 180,
                WorkedMonth = 1
            };

            _monthSalaryReport = new MonthSalaryReport(monthsWorkingHours, factors);
        }
コード例 #7
0
 private void ConfigurationWindow_ConfigurationSavedEvent()
 {
     _monthsWorkingHours = LoadMonthsWorkingHoursFromConfiguration();
     FillMonthsList(_monthsWorkingHours);
 }