public async Task <EmployeeProfileAC> GetUserProfile(long userId)
        {
            EmployeeProfileAC responseAc = new EmployeeProfileAC();

            try
            {
                MstEmployee emp = await _dbTeleBilling_V01Context.MstEmployee.FindAsync(userId);

                EmployeeProfileDetailAC userProfile     = new EmployeeProfileDetailAC();
                EmployeeProfileDetailSP userProfileData = new EmployeeProfileDetailSP();

                SortedList sl = new SortedList();
                sl.Add("userId", userId);

                DataSet ds = _objDalmysql.GetDataSet("uspGetUserProfile", sl);
                if (ds != null)
                {
                    if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0] != null)
                    {
                        userProfileData = _objDal.ConvertDataTableToGenericList <EmployeeProfileDetailSP>(ds.Tables[0]).FirstOrDefault();
                    }
                    if (ds.Tables.Count > 1 && ds.Tables[1].Rows.Count > 0 && ds.Tables[1] != null)
                    {
                        userProfileData.employeeTelephoneDetails = _objDal.ConvertDataTableToGenericList <EmployeeTelephoneDetailsAC>(ds.Tables[1]);
                    }
                }

                if (userProfileData.UserId > 0)
                {
                    userProfile = _mapper.Map <EmployeeProfileDetailAC>(userProfileData);

                    responseAc.Message         = _iStringConstant.DataFound;
                    responseAc.StatusCode      = Convert.ToInt16(EnumList.ResponseType.Success);
                    responseAc.UserProfileData = userProfile;
                    return(responseAc);
                }
                else
                {
                    responseAc.Message    = _iStringConstant.DataNotFound;
                    responseAc.StatusCode = Convert.ToInt16(EnumList.ResponseType.NotFound);
                    return(responseAc);
                }
            }
            catch (Exception e)
            {
                responseAc.Message    = "Error :" + e.Message;
                responseAc.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                return(responseAc);
            }
        }
        public async Task <ResponseAC> resetPassword(EmployeeProfileDetailAC employeeProfileDetailAC, long userId)
        {
            ResponseAC  responeAC   = new ResponseAC();
            MstEmployee mstEmployee = new MstEmployee();

            try
            {
                mstEmployee = await _dbTeleBilling_V01Context.MstEmployee.FindAsync(employeeProfileDetailAC.UserId);

                if (mstEmployee != null)
                {
                    #region Transaction Log Entry
                    if (mstEmployee.TransactionId == null)
                    {
                        mstEmployee.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID();
                    }

                    var jsonSerailzeObj = JsonConvert.SerializeObject(mstEmployee);
                    await _iLogManagement.SaveRequestTraseLog(Convert.ToInt64(mstEmployee.TransactionId), userId, Convert.ToInt64(EnumList.TransactionTraseLog.UpdateRecord), jsonSerailzeObj);

                    #endregion

                    mstEmployee.Password    = employeeProfileDetailAC.NewPassword;
                    mstEmployee.UpdatedBy   = userId;
                    mstEmployee.UpdatedDate = DateTime.Now;

                    _dbTeleBilling_V01Context.Update(mstEmployee);
                    await _dbTeleBilling_V01Context.SaveChangesAsync();

                    responeAC.Message    = "Password Reset Successfully";
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success);
                    await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.ResetPassword, mstEmployee.FullName, userId, string.Empty, (int)EnumList.ActionTemplateTypes.ResetPassword, mstEmployee.UserId);
                }
                else
                {
                    responeAC.Message    = "Employee does not found";
                    responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error);
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(responeAC);
        }
        public async Task <IActionResult> ResetPassword(EmployeeProfileDetailAC employeeProfile)
        {
            string userId = HttpContext.User.Claims.FirstOrDefault(c => c.Type == "user_id").Value;

            return(Ok(await _iEmployeeRepository.resetPassword(employeeProfile, Convert.ToInt64(userId))));
        }