public async Task <IActionResult> CreateSalaryTransaction(CreateSalaryTransaction model)
        {
            long     userId   = _principalService.GetUserId();
            Employee employee = _db.Employees.FirstOrDefault(x => x.Id == model.EmployeeId);
            //if (model.TransactionType == TransactionType.Deduct)
            //{
            //    employee.RemainingSalary = employee.RemainingSalary - model.Amount;
            //    _db.SaveChanges();
            //}
            //else
            //{
            //    employee.RemainingSalary = employee.RemainingSalary + model.Amount;
            //    _db.SaveChanges();
            //}
            double lastRemainingSalary = 0;

            if (_db.EmployeeSalaryTransactions.Where(x => x.EmployeeId == model.EmployeeId && x.CreatedAt.Month == DateTime.Now.Month).Any())
            {
                lastRemainingSalary = _db.EmployeeSalaryTransactions.Where(x => x.EmployeeId == model.EmployeeId && x.CreatedAt.Month == DateTime.Now.Month).OrderBy(x => x.Id).LastOrDefault().RemainingSalary;
            }
            else
            {
                lastRemainingSalary = employee.Salary;
            }
            EmployeeSalaryTransaction transaction = new EmployeeSalaryTransaction
            {
                Amount             = model.Amount,
                RemainingSalary    = lastRemainingSalary,
                EmployeeId         = model.EmployeeId,
                CreatedAt          = DateTime.Now,
                CreatedById        = userId,
                TransactionType    = model.TransactionType,
                EmployeeSalaryGuid = Guid.NewGuid()
            };

            if (model.TransactionType == TransactionType.Deduct)
            {
                transaction.RemainingSalary = lastRemainingSalary - model.Amount;
            }
            else
            {
                transaction.RemainingSalary = lastRemainingSalary + model.Amount;
            }
            await _db.EmployeeSalaryTransactions.AddAsync(transaction);

            var result = await _db.SaveChangesAsync();

            if (result == 1)
            {
                return(new OkObjectResult(1));
            }
            throw new Exception("حصل خطأ");
        }
        public async Task <IActionResult> CreateTransaction([FromBody] CreateSalaryTransaction model)
        {
            try
            {
                var result = await _employeeService.CreateSalaryTransaction(model);

                return(Ok(result));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }