public async Task <ApiResponse> Handle(DeleteSalaryHeadCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                SalaryHeadDetails existrecord = await _dbContext.SalaryHeadDetails.FirstOrDefaultAsync(x => x.SalaryHeadId == request.SalaryHeadId);

                if (existrecord != null)
                {
                    existrecord.IsDeleted = true;

                    await _dbContext.SaveChangesAsync();

                    response.StatusCode = StaticResource.successStatusCode;
                    response.Message    = "Success";
                }
                else
                {
                    response.StatusCode = StaticResource.failStatusCode;
                    response.Message    = "No Record Found";
                }
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
        public async Task <ApiResponse> Handle(AddSalaryHeadCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                SalaryHeadDetails obj = _mapper.Map <SalaryHeadDetails>(request);
                obj.IsDeleted = false;
                await _dbContext.SalaryHeadDetails.AddAsync(obj);

                await _dbContext.SaveChangesAsync();

                List <int> employeeIds = await _dbContext.EmployeeDetail.Where(x => x.IsDeleted == false &&
                                                                               x.EmployeeTypeId == (int)EmployeeTypeStatus.Active)
                                         .Select(x => x.EmployeeID)
                                         .ToListAsync();

                if (employeeIds.Any())
                {
                    List <EmployeePayroll> employeePayrollList = new List <EmployeePayroll>();

                    foreach (int employeeid in employeeIds)
                    {
                        EmployeePayroll employeePayroll = new EmployeePayroll();
                        employeePayroll.IsDeleted         = false;
                        employeePayroll.AccountNo         = request.AccountNo;
                        employeePayroll.SalaryHeadId      = obj.SalaryHeadId;
                        employeePayroll.HeadTypeId        = request.HeadTypeId;
                        employeePayroll.AccountNo         = request.AccountNo;
                        employeePayroll.TransactionTypeId = request.TransactionTypeId;
                        employeePayroll.MonthlyAmount     = (double)request.MonthlyAmount;
                        employeePayrollList.Add(employeePayroll);
                    }

                    await _dbContext.EmployeePayroll.AddRangeAsync(employeePayrollList);

                    await _dbContext.SaveChangesAsync();
                }

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }