public UserManagerController(UserManagerRepository repo, ILoggerProvider loggerProvider,
                                     IBus reportServerBus, UserManager <ApplicationUser> userManager,
                                     UserBootstrapper userBootstrapper)
        {
            Repository      = repo;
            Logger          = loggerProvider.CreateLogger(nameof(UserManagerController));
            ReportServerBus = reportServerBus;
            _userManager    = userManager;

            bootstrapper = userBootstrapper;
        }
Ejemplo n.º 2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);
            var dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "UserManager.db");

            IDataStore userRepository = new UserManagerRepository(dbPath);

            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            LoadApplication(new App(userRepository));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取本地  用户信息
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task <ResponseMessage <UserInfoDTO> > GetLocalUserInfo(string uid, string userName)
        {
            var resMessage = new ResponseMessage <UserInfoDTO>();

            try
            {
                var model = await UserManagerRepository.FindUserInfo(uid, userName);

                resMessage.Ok(model);
            }
            catch (Exception e)
            {
                resMessage.Error(e);
            }

            return(resMessage);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 通过教务网  获取  用户信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private async Task <UserInfoDTO> GetNatUserInfo(UserLoginRequest model)
        {
            var userInfo  = new UserInfoDTO();
            var postModel = new LoginPostModel()
            {
                __VIEWSTATE   = System.Web.HttpUtility.UrlEncode(model.LoginViewState, HttpHelper.DefaultEncoding),
                txtUserName   = model.UserId,
                TextBox2      = System.Web.HttpUtility.UrlEncode(model.Password, HttpHelper.DefaultEncoding),
                txtSecretCode = model.ValidateCode
            };
            var dic = ModelHelper.ObjectToMap <LoginPostModel>(postModel);

            try
            {
                var response = await HttpHelper.CreatePostHttpResponse(model.LoginUrl, dic);

                if (!response.ResponseUri.ToString().Contains("xs_main"))
                {
                    throw new ArgumentNullException("用户名或密码有误");
                }

                var str = await response.GetResponseString();

                var doc = new HtmlDocument();
                doc.LoadHtml(str);
                string name = doc.GetElementbyId("xhxm").InnerText.Replace("同学", "");
                if (string.IsNullOrEmpty(name))
                {
                    throw new ArgumentNullException("服务异常,稍后在尝试");
                }

                UserName = name;
                // 课表url
                string kbUrl =
                    $"{model.PreUrl}/xskbcx.aspx?xh={model.UserId}&xm={System.Web.HttpUtility.UrlEncode(UserName, HttpHelper.DefaultEncoding)}&gnmkdm=N121602";
                var kbResponse =
                    await HttpHelper.CreateHttpResponse(kbUrl, $"{model.PreUrl}/xs_main.aspx?xh={model.UserId}");

                var kbStr = await kbResponse.GetResponseString();

                doc.LoadHtml(kbStr);
                string college   = doc.GetElementbyId("Label7").InnerText;
                string majorName = doc.GetElementbyId("Label8").InnerText;
                string className = doc.GetElementbyId("Label9").InnerText;

                userInfo.College       = college.Substring(college.LastIndexOf(':') + 1);
                userInfo.MajorName     = majorName.Substring(majorName.LastIndexOf(':') + 1);
                userInfo.ClassName     = className.Substring(className.LastIndexOf(':') + 1);
                userInfo.RealUserName  = UserName;
                userInfo.UserId        = model.UserId;
                userInfo.LoginUserName = model.LoginUserName;
                try
                {
                    // MQ  同步到志愿管理服务 中
                    SchoolUser.PushMessage("school", new
                    {
                        UserName       = userInfo.LoginUserName,
                        SchoolUserName = userInfo.RealUserName,
                        UserId         = userInfo.UserId
                    });
                    userInfo.IsSynchronization = true;
                    Logger.LogInformation("MQ发送消息成功");
                }
                catch (Exception e)
                {
                    userInfo.IsSynchronization = false;
                    Logger.LogError(e, "MQ 发送消息失败");
                }
                var addResult = await UserManagerRepository.AddUserInfo(userInfo);

                if (addResult == false)
                {
                    throw new ArgumentNullException("同步本地数据失败");
                }
                return(userInfo);
            }
            catch (Exception e)
            {
                if (e is NetworkInformationException)
                {
                    throw new ArgumentNullException("服务器忙,稍后再试");
                }
                else
                {
                    throw e;
                }
            }
        }