Exemplo n.º 1
0
        public virtual async Task Verify(IEnumerable <int> ids)
        {
            var manager     = Manager as NewMinerManager;
            var userManger  = Resolve <UserManager>();
            var roleManager = Resolve <RoleManager>();

            var role = await roleManager.FindByNameAsync(StaticRoleNames.Tenants.Miner);

            var newMiners = await manager.GetListByIdsAsync(ids);

            foreach (var newMiner in newMiners)
            {
                var user = newMiner.MapTo <User>();
                user.Id = 0;
                user.SetPropertyValue("NickName", newMiner.NickName);
                user.SetPropertyValue("Avata", newMiner.Avata);
                user.SetPropertyValue("WorkYear", newMiner.WorkYear);
                user.SetPropertyValue("Introduction", newMiner.Introduction);
                user.TenantId = AbpSession.TenantId;
                await userManger.InsertAndGetIdAsync(user);

                await userManger.SetRoles(user, new int[] { role.Id });

                user.Logins = new List <UserLogin>()
                {
                    new UserLogin(AbpSession.TenantId, user.Id, "Wechat", newMiner.OpenId)
                };
                newMiner.Verified = true;
                await CurrentUnitOfWork.SaveChangesAsync();

                await manager.DeleteAsync(newMiner);

                //发送邮件
                var emailLog = new EmailLog()
                {
                    Title   = "您的账号已经审核通过",
                    Content = $"您可以通过微信登录简法案例系统",
                    ToEmail = user.Email
                };
                var emailLogId = await Resolve <EmailLogManager>().InsertAndGetIdAsync(emailLog);

                var jobArg = new SendEmailJobArgs()
                {
                    EmailLogId = emailLogId
                };
                await Resolve <IBackgroundJobManager>().EnqueueAsync <SendEmailJob, SendEmailJobArgs>(jobArg);
            }
        }
Exemplo n.º 2
0
        public virtual async Task RemindUserPassword(User user, string password)
        {
            var emailLog = new EmailLog()
            {
                Title   = "请及时修改您的简法案例系统密码",
                Content = $"您的登录名为{user.UserName},密码为{password},请及时登录系统更改",
                ToEmail = user.Email
            };
            var emailLogId = await Resolve <EmailLogManager>().InsertAndGetIdAsync(emailLog);

            var jobArg = new SendEmailJobArgs()
            {
                EmailLogId = emailLogId
            };

            await Resolve <IBackgroundJobManager>().EnqueueAsync <SendEmailJob, SendEmailJobArgs>(jobArg);
        }