public async Task <string> FixNhanVienTheoUsername(string userName) { var result = new ApiResult(); try { if (string.IsNullOrEmpty(userName)) { result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Lỗi: Không xác định được mã")); return(JsonConvert.SerializeObject(result)); } List <object> listObjs = new List <object>(); var obj = UserService.FixNhanVienTheoUsername(userName); listObjs.Add(obj); //Tạo email string ten = UsernameGenerator.ConvertToUnSign(obj.Ten); string ho = UsernameGenerator.ConvertToUnSign(obj.Ho); var input = new CreateUserInput { Domain = "haiphatland.com.vn", Username = obj.TenDangNhap, FirstName = ten, LastName = ho, FullName = ho + " " + ten, Password = "******", AdminNotes = "Tạo từ tool, time: " + DateTime.Now.ToString("G"), MailList = "", Group = "" }; var res = await MdaemonXmlApi.CreateUser(input); listObjs.Add(res); result.Payload = listObjs; result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Successful")); } catch (Exception e) { result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Lỗi: " + e.Message)); } return(JsonConvert.SerializeObject(result)); }
/// <summary> /// Tạo User trên MDaemon /// </summary> /// <param name="maNhanVien"></param> /// <returns></returns> public async Task <ApiResult> CreateUserTheoMaNhanVien(string maNhanVien) { var dbAbp = new AbpHplDbContext(); ApiResult result = new ApiResult(); CreateUserInput inputMail = new CreateUserInput(); inputMail.AdminNotes = "Add by Tools. Time: " + DateTime.Now.ToString("dd/MM/yyyy hh:mm tt"); inputMail.Domain = MailDomain; //MailList { get; set; } //Group { get; set; } //Lấy thông tin hồ sơ nhân viên theo mã nhân viên var listNvs = UserService.GetAllNhanVienTheoMa(maNhanVien); switch (listNvs.Count) { case > 1: string ids = ""; foreach (var model in listNvs) { ids += model.NhanVienId + ", "; } result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Lỗi: Mã nhân viên này được sử dụng cho nhiều hồ sơ. Có các ID: " + ids)); return(result); case < 1: result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Không tìm thấy hồ sơ nhân sự.")); return(result); } var nhanVien = listNvs.FirstOrDefault(); if (nhanVien == null) { result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Không tìm thấy hồ sơ nhân sự.")); return(result); } string ho = CommonHelper.ConvertToUnSign(nhanVien.Ho.Trim().ToLower()); string ten = CommonHelper.ConvertToUnSign(nhanVien.Ten.Trim().ToLower()); inputMail.FullName = CommonHelper.ConvertToUnSign(nhanVien.Ho + " " + nhanVien.Ten); inputMail.FirstName = ten; inputMail.LastName = ho; //Tạo username dựa trên Họ Và Tên nhân sự var hoList = CommonHelper.ConvertToUnSign(ho .Replace(" ", ",") .Replace(",,", ",")) .Split(","); string newHo = ""; foreach (var s in hoList) { newHo += s.Substring(0, 1); } string userNameGenerated = ten + newHo.ToLower(); //TẠO LẠI MẬT KHẨU MẶC ĐỊNH string dienThoai = ""; try { if (nhanVien.DienThoai != null && nhanVien.DienThoai.Trim().Length >= 9) { dienThoai = nhanVien.DienThoai.Trim(); PwDefault = "Hpl@" + dienThoai.Substring(dienThoai.Length - 3, 3); } } catch (Exception e) { Log.Error("Số điện thoại lỗi " + e.Message); } //Get user trên MDaemon //inputMail.Username = MdaemonXmlApi.GetNewUserFromMdaemon(userNameGenerated); //Lấy AD user làm gốc inputMail.Username = _passwordChangeProvider.GetUserNewUserFormAd(userNameGenerated); inputMail.Password = PwDefault; //Xác định phòng, ban cấp 1 của Hồ sơ nhân sự dựa vào Mã Nhân viên PhongBan phongBan = UserService.GetPhongBanCap1CuaNhanVien(maNhanVien); if (phongBan == null) { result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Mã nhân sự này không xác định được hồ sơ nhân sự.")); return(result); } ; //Xác định mail group cho nhân sự này HplPhongBan?hplPhong = dbAbp.HplPhongBans.FirstOrDefault(x => x.PhongBanId == nhanVien.PhongBanId); if (hplPhong == null) { result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Trong cài đặt mapping phòng ban, không xác định được Phòng ban tương ứng. Mã nhân viên: " + maNhanVien)); return(result); } inputMail.Group = hplPhong.MaPhongBan; inputMail.MailList = hplPhong.MailingList; //Check server AD //TODO //Tạo email trên MDaemon try { result.Payload = await MdaemonXmlApi.CreateUser(inputMail); result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Successful")); } catch (Exception e) { result.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Error: " + e.Message + ". Lưu ý: Kiểm tra lại Mail nhóm đã có trên MDaemon chưa?")); } return(result); }