예제 #1
0
        public async Task <string> MailingGetListInfo(string listName)
        {
            var res = await MdaemonXmlApi.MailingGetListInfo(listName);

            //var listMailHpl =
            return(JsonConvert.SerializeObject(res));
        }
예제 #2
0
        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));
        }
예제 #3
0
        public async Task <List <string> > DanhSachEmailKhongDung()
        {
            var listNotUse2 = new List <string>();

            var res = await MdaemonXmlApi.GetDomainList();

            dynamic payload  = JObject.Parse(JsonConvert.SerializeObject(res.Payload));
            dynamic mdaemon  = JObject.Parse(payload.MDaemon.ToString());
            dynamic api      = JObject.Parse(mdaemon.API.ToString());
            dynamic response = JObject.Parse(api.Response.ToString());
            dynamic result   = JObject.Parse(response.Result.ToString());
            //dynamic domains = JObject.Parse(result.Domains.ToString());
            string str = result.Domains.ToString();

            str = str.Replace("@", "");

            Domains domains = JsonConvert.DeserializeObject <Domains>(str);

            if (domains != null)
            {
                var domainHpl = domains.Domain.FirstOrDefault(x => x.id == "haiphatland.com.vn");
                if (domainHpl != null)
                {
                    var           listEmailServer  = domainHpl.Users.User;
                    List <string> listEmailServer2 = new List <string>();
                    foreach (var email in listEmailServer)
                    {
                        listEmailServer2.Add(email.id + "@haiphatland.com.vn");
                    }
                    var blackList = AbpServices.GetAllEmailBlackList();

                    var listEmailHrm = UserService.GetAllEmailHrm();

                    var listNotUse = (from e in listEmailServer2
                                      where !listEmailHrm.Contains(e)
                                      select e).ToList();
                    listNotUse2 = (from e in listNotUse
                                   where !blackList.Contains(e)
                                   select e).ToList();
                }
            }

            return(listNotUse2);
        }
예제 #4
0
        public async Task <string> GetDomainList()
        {
            try
            {
                var res = await MdaemonXmlApi.GetDomainList();

                //return JsonConvert.SerializeObject(res.Payload);

                dynamic payload  = JObject.Parse(JsonConvert.SerializeObject(res.Payload));
                dynamic mdaemon  = JObject.Parse(payload.MDaemon.ToString());
                dynamic api      = JObject.Parse(mdaemon.API.ToString());
                dynamic response = JObject.Parse(api.Response.ToString());
                dynamic result   = JObject.Parse(response.Result.ToString());
                dynamic domains  = JObject.Parse(result.Domains.ToString());
                string  str      = domains.ToString();
                str = str.Replace("@", "");

                Domains lstDomains = JsonConvert.DeserializeObject <Domains>(str);
                //Domains domains3 = (Domains)JsonConvert.DeserializeObject(str, typeof(Domains));
                //foreach (var item in domains2.Domain)
                //{
                //    string domain = item.id;
                //    var listUser = item.Users;
                //    if (item.id.Equals("haiphatland.com.vn"))
                //    {
                //        return JsonConvert.SerializeObject(item.Users.User);
                //    }
                //}

                return(JsonConvert.SerializeObject(lstDomains));
            }
            catch (Exception e)
            {
                return(JsonConvert.SerializeObject(e));
            }
        }
예제 #5
0
        public async Task <string> CreateEmailByUserName(string userName)
        {
            var res = await MdaemonXmlApi.CreateUserByUserName(userName);

            return(JsonConvert.SerializeObject(res));
        }
예제 #6
0
        public async Task <string> FixEmailChuaDuocTao()
        {
            var res = await MdaemonXmlApi.FixEmailChuaDuocTao();

            return(JsonConvert.SerializeObject(res));
        }
예제 #7
0
        public async Task <string> MailingCreateList(string listName)
        {
            var res = await MdaemonXmlApi.MailingCreateList(listName, "Đây là mô tả");

            return(JsonConvert.SerializeObject(res));
        }
예제 #8
0
        public async Task <string> MailingListCountUsers(string listName)
        {
            var res = await MdaemonXmlApi.MailingListCountUsers(listName);

            return(JsonConvert.SerializeObject(res));
        }
예제 #9
0
        public async Task <string> GetUserInfo(string username)
        {
            var res = await MdaemonXmlApi.GetUserInfo(username);

            return(JsonConvert.SerializeObject(res));
        }
예제 #10
0
        public async Task <string> DanhSachEmailKhongDung()
        {
            var resultRes = new ApiResult();

            try
            {
                var res = await MdaemonXmlApi.GetDomainList();

                dynamic payload  = JObject.Parse(JsonConvert.SerializeObject(res.Payload));
                dynamic mdaemon  = JObject.Parse(payload.MDaemon.ToString());
                dynamic api      = JObject.Parse(mdaemon.API.ToString());
                dynamic response = JObject.Parse(api.Response.ToString());
                dynamic result   = JObject.Parse(response.Result.ToString());
                //dynamic domains = JObject.Parse(result.Domains.ToString());
                string str = result.Domains.ToString();
                str = str.Replace("@", "");

                Domains domains = JsonConvert.DeserializeObject <Domains>(str);
                if (domains != null)
                {
                    var domainHpl = domains.Domain.FirstOrDefault(x => x.id == "haiphatland.com.vn");
                    if (domainHpl != null)
                    {
                        var           listEmailServer  = domainHpl.Users.User;
                        List <string> listEmailServer2 = new List <string>();
                        foreach (var email in listEmailServer)
                        {
                            listEmailServer2.Add(email.id + "@haiphatland.com.vn");
                        }
                        var blackList = AbpServices.GetAllEmailBlackList();

                        //var listEmailServe3 = (from e in listEmailServer2
                        //                       where !blackList.Contains(e)
                        //                       select e).ToList();

                        var listEmailHrm = UserService.GetAllEmailHrm();

                        var listNotUse = (from e in listEmailServer2
                                          where !listEmailHrm.Contains(e)
                                          select e).ToList();
                        var listNotUse2 = (from e in listNotUse
                                           where !blackList.Contains(e)
                                           select e).ToList();

                        resultRes.Errors.Add(new ApiErrorItem(ApiErrorCode.Generic, "Tổng email không có trên HRM: " + listNotUse2.Count));
                        resultRes.Payload = listNotUse2;

                        //LẤY THÔNG TIN TRÊN HRM CỦA CÁC EMAIL TƯƠNG ỨNG TRÊN SERVER (CHƯA CẦN)
                        //var nv = new NhanVienViewModel2
                        //{
                        //    Ho = "N/A",
                        //    MaNhanVien = "N/A"
                        //};

                        //int i = 0;
                        //foreach (var email in listEmailServer)
                        //{
                        //    i++;
                        //    var temp = UserService.GetEmail(email.id);

                        //    if (temp != null)
                        //    {
                        //        nv = UserService.GetNhanVienByEmailAndMaNhanVien(temp.Email, temp.MaNhanVien);
                        //    }
                        //    else
                        //    {
                        //        nv.Email = email.id;
                        //    }
                        //}

                        //return JsonConvert.SerializeObject(listEmailServer);
                        return(JsonConvert.SerializeObject(resultRes));
                    }
                }
            }
            catch (Exception e)
            {
                return(JsonConvert.SerializeObject("LỖI: " + e));
            }

            return(JsonConvert.SerializeObject("OK"));
        }
예제 #11
0
        public async Task <string> DeleleEmailCreate14082021()
        {
            try
            {
                var res = await MdaemonXmlApi.GetDomainList();

                dynamic payload  = JObject.Parse(JsonConvert.SerializeObject(res.Payload));
                dynamic mdaemon  = JObject.Parse(payload.MDaemon.ToString());
                dynamic api      = JObject.Parse(mdaemon.API.ToString());
                dynamic response = JObject.Parse(api.Response.ToString());
                dynamic result   = JObject.Parse(response.Result.ToString());
                //dynamic domains = JObject.Parse(result.Domains.ToString());
                string str = result.Domains.ToString();
                str = str.Replace("@", "");

                List <object> listRes = new List <object>();

                Domains domains = JsonConvert.DeserializeObject <Domains>(str);
                if (domains != null)
                {
                    //var domainHpl = domains.Domain.FirstOrDefault(x => x.id == "haiphatland.com.vn");
                    //if (domainHpl != null)
                    //{
                    //    var listEmailServer = domainHpl.Users.User;
                    //    List<string> listEmailNew = new List<string>();
                    //    foreach (var email in listEmailServer)
                    //    {
                    //        listEmailNew.Add(email.id + "@haiphatland.com.vn");
                    //    }

                    //    //var listImport = UserService.GetAllEmailImport();
                    //    var listImport = UserService.GetAllNhanVienDangLamViec();
                    //    var listEmailImport = listImport.Select(x => x.Email).ToList();

                    //    var listNotUse = (from e in listEmailNew
                    //                      where !listEmailImport.Contains(e)
                    //                      select e).ToList();

                    //    DateTime dt1 = new DateTime(2021, 7, 1);
                    //    DateTime dt2 = DateTime.Now;
                    //    var listLog1408 = AbpServices.GetHplNhanVienLogByDateCreate(dt1, dt2).Select(x => x.Email).ToList();

                    //    List<string> listEmailNotUse1408 = (from e in listLog1408
                    //                                        where listNotUse.Contains(e)
                    //                                        select e).ToList();
                    //    //XÓA DANH SÁCH EMAIL
                    //    foreach (var email in listEmailNotUse1408)
                    //    {
                    //        try
                    //        {
                    //            string username = email.Split("@")[0];
                    //            var res2 = await MdaemonXmlApi.DeleteUserByUserName(username);
                    //            listRes.Add(res2.Payload);

                    //            AbpServices.AddDeleteEmailDoTaoLoi(email);
                    //        }
                    //        catch (Exception e)
                    //        {
                    //            listRes.Add(e.Message);
                    //        }

                    //    }

                    //    //return JsonConvert.SerializeObject(listEmailNotUse1408);
                    //    return JsonConvert.SerializeObject(listRes);
                    //}
                }
            }
            catch (Exception e)
            {
                return(JsonConvert.SerializeObject(e));
            }

            return("Không tồn tại domain");
        }
예제 #12
0
        /// <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);
        }
예제 #13
0
        public async Task <string> GetDomainList()
        {
            var res = await MdaemonXmlApi.GetDomainList();

            return(JsonConvert.SerializeObject(res));
        }