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> AddEmployee(MstEmployeeAC employee, long userId, string loginUserName) { ResponseAC responeAC = new ResponseAC(); try { if (employee != null) { string pfNumber = employee.EmpPFNumber; if (!await checkPFNumberUnique(pfNumber, 0)) { MstEmployee mstEmployee = new MstEmployee(); mstEmployee.FullName = employee.FullName; mstEmployee.ExtensionNumber = employee.ExtensionNumber; mstEmployee.EmpPfnumber = employee.EmpPFNumber; mstEmployee.EmailId = employee.EmailId; string randomPassword = "******"; string randomPadding = CreatePassword(4); mstEmployee.Password = randomPassword + randomPadding; mstEmployee.RoleId = employee.RoleId; mstEmployee.IsActive = true; mstEmployee.IsSystemUser = true; mstEmployee.DepartmentId = employee.DepartmentId; mstEmployee.Designation = employee.Designation; mstEmployee.Description = employee.Description; mstEmployee.BusinessUnitId = employee.BusinessUnitId; mstEmployee.CostCenterId = employee.CostCenterId; mstEmployee.CountryId = employee.CountryId; mstEmployee.IsPresidentOffice = employee.IsPresidentOffice; if (employee.ManagerEmployee != null) { if (employee.ManagerEmployee.UserId > 0) { mstEmployee.LineManagerId = employee.ManagerEmployee.UserId; } } if (mstEmployee.LineManagerId == 0) { responeAC.Message = "Line Manager is not valid !"; responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error); return(responeAC); } mstEmployee.CreatedBy = userId; mstEmployee.CreatedDate = DateTime.Now; mstEmployee.TransactionId = _iLogManagement.GenerateTeleBillingTransctionID(); await _dbTeleBilling_V01Context.AddAsync(mstEmployee); await _dbTeleBilling_V01Context.SaveChangesAsync(); responeAC.Message = "Employee Added Successfully !"; responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Success); await _iLogManagement.SaveAuditActionLog((int)EnumList.AuditLogActionType.AddEmployee, loginUserName, userId, "Employee(" + mstEmployee.FullName + ")", (int)EnumList.ActionTemplateTypes.Add, mstEmployee.UserId); #region Send Email for Registration Confirmation EmployeeProfileAC empDetail = new EmployeeProfileAC(); try { empDetail = await GetUserProfile(mstEmployee.UserId); if (empDetail != null) { if (empDetail.UserProfileData.UserId > 0) { Dictionary <string, string> replacement = new Dictionary <string, string>(); replacement.Add("{newEmpName}", empDetail.UserProfileData.FullName); replacement.Add("{PFNumber}", empDetail.UserProfileData.EmpPFNumber); replacement.Add("{Email}", empDetail.UserProfileData.EmailId); replacement.Add("{Password}", empDetail.UserProfileData.Password); replacement.Add("{EmpDesignation}", empDetail.UserProfileData.Designation); replacement.Add("{Emplocation}", empDetail.UserProfileData.Country); replacement.Add("{lineManagerDepartment}", empDetail.UserProfileData.LineManager); replacement.Add("{EmpDepartment}", empDetail.UserProfileData.Department); replacement.Add("{EmpCostCenter}", empDetail.UserProfileData.CostCenter); replacement.Add("{EmpBusinessUnit}", empDetail.UserProfileData.BusinessUnit); bool issent = false; string EmailId = empDetail.UserProfileData.EmailId; if (!(string.IsNullOrEmpty(empDetail.UserProfileData.EmailId) || empDetail.UserProfileData.EmailId == "n/a")) { issent = await _iEmailSender.SendEmail(Convert.ToInt64(EnumList.EmailTemplateType.NewRegistrationConfirmation), replacement, employee.EmailId); } else {// get line manager email string linemanagerEmail = await _dbTeleBilling_V01Context.MstEmployee.Where(x => x.UserId == mstEmployee.LineManagerId).Select(x => x.EmailId).FirstOrDefaultAsync(); issent = await _iEmailSender.SendEmail(Convert.ToInt64(EnumList.EmailTemplateType.NewRegistrationInYourTeam), replacement, linemanagerEmail); } if (!issent) { responeAC.StatusCode = Convert.ToInt32(EnumList.ResponseType.Success); responeAC.Message = "Employee Added Successfully! We Could Not Sent Mail Confirmation."; } } } } catch (Exception e) { responeAC.StatusCode = Convert.ToInt32(EnumList.ResponseType.Success); responeAC.Message = "Employee Added Successfully! Error :" + e.Message + " We Could Not Sent Mail Confirmation."; } #endregion return(responeAC); } else { responeAC.Message = "PFNumber is already exists!"; responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error); return(responeAC); } } else { responeAC.Message = _iStringConstant.DataNotFound; responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error); return(responeAC); } } catch (Exception e) { responeAC.Message = "Error : " + e.Message; responeAC.StatusCode = Convert.ToInt16(EnumList.ResponseType.Error); return(responeAC); } }