Пример #1
0
        public IEnumerable <(int payerId, int share)> CalculateShares(BuildingTimeSpanInfoService building, int amount, int apartmentId)
        {
            var payers    = building.GetApartmentPayerResidenceInfos(apartmentId);
            var totalDays = payers.Sum(p => p.DaysLived);
            var shares    = new List <(int payerId, int share)>();

            foreach (var payer in payers)
            {
                shares.Add((payer.PayerId, amount * payer.DaysLived / totalDays));
            }

            return(shares);
        }
        public IEnumerable <(int payerId, int share)> CalculateShares(BuildingTimeSpanInfoService building, int amount, int apartmentId)
        {
            var occupants = building.GetPayerResidenceInfos();
            var total     = occupants.Sum(o => o.DaysLived * o.OccupantCount);
            var shares    = new List <(int payerId, int share)>();

            if (total == 0)
            {
                return(new List <(int payerId, int share)>());
            }

            var payers = building.GetApartmentPayerResidenceInfos(apartmentId);

            foreach (var payer in payers)
            {
                shares.Add((payer.PayerId, payer.OccupantCount * payer.DaysLived / total));
            }

            return(shares);
        }