Получить список предыдущих в таблице и сумма дней - PullRequest
0 голосов
/ 15 ноября 2018

Получить список предыдущих лет

Я создаю систему управления отпуском. Мне нужно получить список предыдущих лет сотрудника из таблицы и суммировать дни, если естьлюбой.Если нет предыдущих лет, то я должен выбрать дни в текущем году.Метод FindEmployee возвращает список сотрудников с его данными и датами в таблице отпусков.

Это модель отпуска

public class LeaveTable
{
    public Employee Employee { get; set; }
    public string EmployeeId { get; set; }
    public Leave Leave { get; set; }
    public string LeaveCode { get; set; }
    public int Days { get; set; }
    public int Balance { get; set; }
    public int UsedDays { get; set; }
    public int Year { get; set; }
}

Это то, что я пробовал до сих пор

public async Task<decimal> CheckEmployeeOutstandingBalance(string employeeId)
        {
            var employees = FindEmployee(employeeId).Result.ToList();
            var currentYear = DateTime.Now.Year;
            var previousYear = currentYear - 1;
            var days = 0;

            if(previousYear != 0)
             days = employees.Sum(s => s.Balance);



            foreach (var employee in employees)
            {

                if (previousYear != 0)
                {
                    days = employee
                }
            }



            //return await Task.FromResult(employees);
        }

Любые предложения, чтобы получить список предыдущих лет и суммировать дни, если таковые имеются.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Я отредактировал код, и это работает.

  public async Task<decimal> CheckEmployeeOutstandingBalance(string employeeId)
            {
                var employee = FindEmployee(employeeId).Result.ToList();//returns list of employees
                var currentYear = DateTime.Now.Year;
                var balanceSum = 0;
                var results = 0;
                var currentBalance = 0;
                var prev = employee.Where(s => s.Year != currentYear).ToList();
                var currentyear = employee.Where(s => s.Year == currentYear).FirstOrDefault();
                 currentBalance = currentyear.Balance;
                balanceSum = prev.Sum(s => s.Balance);

                 results = balanceSum + currentBalance;
                return await Task.FromResult(results);
            }
0 голосов
/ 15 ноября 2018
 if(previousYear != 0)
       days = employees.Sum(s => s.Balance);
  else
    {
     days = LeaveTable.Where(l => l.Year <currentYear && l.EmployeeId == employeeId ).Sum( li => li.Balance)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...