public async Task CloseShift(int idPositionServises)
        {
            var position = await _position.ChoiceEmployees(idPositionServises);

            var ordersFulfilled = await _orderCarWashWorkers.SampleForPayroll(DateTime.Now);

            List <EmployeeDaySummary> employeeDaySummaryList = new List <EmployeeDaySummary>();

            foreach (var item in ordersFulfilled.GroupBy(g => g.IdCarWashWorkers))
            {
                var completedEmployeeOrders = ordersFulfilled.Where(x => x.IdCarWashWorkers == item.Key);
                var employees = await _premiumAndRate.SelectPosition(item.Key);

                List <EmployeeDaySummary> bonusList = new List <EmployeeDaySummary>();

                foreach (var positionItem in position)
                {
                    var resultEmployee = employees.SingleOrDefault(x =>
                                                                   x.positionId == positionItem.idPosition);

                    if (resultEmployee.servicePremium)
                    {
                        double sum = completedEmployeeOrders
                                     .Where(x => x.typeServicesId == positionItem.idPosition)
                                     .Sum(s => s.Payroll).Value;

                        bonusList.Add(new EmployeeDaySummary
                        {
                            carWashWorkersId = item.Key,
                            SumOrder         = sum,
                            percent          = resultEmployee.multiplicityOfTheSum.Value,
                            prizeAmount      = resultEmployee.prizeAmount
                        });
                    }
                }

                double prizeAmiutSum = bonusList.Sum(x => x.prizeAmount.Value);
                double percentSum    = bonusList.Sum(x => x.percent.Value);
                double orderSum      = bonusList.Sum(x => x.SumOrder.Value);
                int    countServeses = bonusList.Count();

                double averagePrize   = Average(prizeAmiutSum, countServeses);
                double averagePercent = Average(percentSum, countServeses);

                double bonusResult = MathFloor(orderSum, averagePercent);

                if (bonusResult > 0)
                {
                    BonusToSalaryBll bonusToSalary = new BonusToSalaryBll();

                    bonusToSalary.amount           = bonusResult * averagePrize;
                    bonusToSalary.carWashWorkersId = item.Key;
                    bonusToSalary.date             = DateTime.Now;
                    await InsertTableBonus(bonusToSalary);
                }
            }
        }