public async Task <Tuple <bool, string> > InsertOrUpdateUpgradeEmployee(UpgradeEmployeeModel upgradeEmployeeModel)
        {
            Tuple <bool, string> result = null;

            try
            {
                result = await _repo.InsertOrUpdateUpgradeEmployee(upgradeEmployeeModel);
            }
            catch (Exception ex)
            {
                ErrorLog.Write(ex);
            }

            return(result);
        }
        public async Task <Tuple <bool, string> > InsertOrUpdateUpgradeEmployee(UpgradeEmployeeModel upgradeEmployeeModel)
        {
            Tuple <bool, string> result = null;
            int status = -1;

            try
            {
                var parameters = new DynamicParameters();
                using (SqlConnection con = new SqlConnection(_dvDb))
                {
                    parameters.Add("@UserID", upgradeEmployeeModel.UserID);
                    parameters.Add("@DesignationID", upgradeEmployeeModel.DesignationID);
                    if (upgradeEmployeeModel.UnderEmployeeID > 0)
                    {
                        parameters.Add("@UnderEmployeeID", upgradeEmployeeModel.UnderEmployeeID);
                    }
                    parameters.Add("@RegIncentive", upgradeEmployeeModel.RegIncentive);
                    parameters.Add("@LoanPayIncentive", upgradeEmployeeModel.LoanPayIncentive);
                    parameters.Add("@RecruitmentReq", upgradeEmployeeModel.RecruitmentReq);
                    parameters.Add("@ConditionsApplySelf", upgradeEmployeeModel.ConditionsApplySelf);
                    parameters.Add("@ConditionsApplyGroup", upgradeEmployeeModel.ConditionsApplyGroup);
                    parameters.Add("@TargetJoineesPerMonth", upgradeEmployeeModel.TargetJoineesPerMonth);
                    parameters.Add("@Salary", upgradeEmployeeModel.Salary);
                    parameters.Add("@Description", upgradeEmployeeModel.Description);
                    parameters.Add("@CreatedBy", UserID);
                    con.Open();
                    status = await con.ExecuteScalarAsync <int>("[dbo].[InsertOrUpdate_UpgradeUnderEmployee]", parameters, commandType : CommandType.StoredProcedure, commandTimeout : 300);

                    con.Close();
                }

                if (status >= 0)
                {
                    result = Tuple.Create(true, "Upgrade Employee inserted successfully");
                }
                else
                {
                    result = Tuple.Create(false, "Oops! Upgrade Employee inserted/updated failed.Please try again.");
                }
            }
            catch (Exception ex)
            {
                ErrorLog.Write(ex);
                result = Tuple.Create(false, "Oops! Upgrade Employee inserted/updated failed.Please try again.");
            }
            return(result);
        }