コード例 #1
0
        //获取成绩
        public async Task <string> GetGrade(Services.HttpBaseService _httpService, string name, string username)
        {
            //http://gdjwgl.cjw1115.com/xscjcx.aspx?xh=14024238&xm=%B3%C2%BC%D1%CE%C0&gnmkdm=N121605
            string re;

            re = await _httpService.SendRequst(GetBaseUri() + edugradeUri + username + "&xm=" + name + "&gnmkdm=N121605", HttpMethod.Get, referUri : GetBaseUri() + edugradeUri + username + "&xm=" + "" + "&gnmkdm=N121605");


            string __VIEWSTATEString;

            __VIEWSTATEString = Services.EduService.GetViewstate(re);
            var __EVENTVALIDATION = Services.EduService.GetValidation(re);

            IDictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("__EVENTTARGET", "");
            parameters.Add("__EVENTVALIDATION", __EVENTVALIDATION);
            parameters.Add("__EVENTARGUMENT", "");
            parameters.Add("__VIEWSTATE", __VIEWSTATEString);
            parameters.Add("hidLanguage", "");
            parameters.Add("ddlXN", "");
            parameters.Add("ddlXQ", "");
            parameters.Add("ddl_kcxz", "");
            parameters.Add("btn_zcj", "历年成绩");

            re = await _httpService.SendRequst(GetBaseUri() + edugradeUri + username + "&xm=" + name + "&gnmkdm=N121605", HttpMethod.Post, parameters);

            return(re);
        }
コード例 #2
0
        public async Task <string> GetSpecificSchedule(Services.HttpBaseService _httpService, string name, string username, string year, int term)
        {
            string re;

            re = await _httpService.SendRequst(GetBaseUri() + eduscheduleUri + username + "&xm=" + name + "&gnmkdm=N121603", HttpMethod.Get, referUri : GetBaseUri() + checckAuthUri + username);

            string __VIEWSTATEString;

            __VIEWSTATEString = Services.EduService.GetViewstate(re);
            IDictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("__EVENTTARGET", "xnd");
            parameters.Add("__EVENTARGUMENT", "");
            parameters.Add("__VIEWSTATE", __VIEWSTATEString);
            parameters.Add("xnd", year);
            parameters.Add("xqd", "2");

            re = await _httpService.SendRequst(GetBaseUri() + eduscheduleUri + username + "&xm=" + name + "&gnmkdm=N121603", HttpMethod.Post, parameters);

            if (term == 1)
            {
                __VIEWSTATEString = Services.EduService.GetViewstate(re);

                parameters["__EVENTTARGET"] = "xqd";
                parameters["__VIEWSTATE"]   = __VIEWSTATEString;
                parameters["xqd"]           = "1";

                re = await _httpService.SendRequst(GetBaseUri() + eduscheduleUri + username + "&xm=" + name + "&gnmkdm=N121603", HttpMethod.Post, parameters);
            }
            return(re);
        }
コード例 #3
0
        //登录教务管理中心
        public async Task <string> LoginEduCenter(Services.HttpBaseService _httpService, string username, string password, string checkCode)
        {
            try
            {
                var str = await _httpService.SendRequst(GetBaseUri() + educenterUri, HttpMethod.Get);

                var __VIEWSTATEString = Services.EduService.GetViewstate(str);
                if (__VIEWSTATEString == "")
                {
                    return(null);
                }
                var validation = Services.EduService.GetValidation(str);
                if (validation == null)
                {
                    return(null);
                }
                IDictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add("__VIEWSTATE", __VIEWSTATEString);
                parameters.Add("__EVENTVALIDATION", validation);
                parameters.Add("txtUserName", username);
                parameters.Add("TextBox2", password);
                parameters.Add("txtSecretCode", checkCode);
                parameters.Add("RadioButtonList1", "学生");
                parameters.Add("Button1", "");
                parameters.Add("lbLanguage", "");
                parameters.Add("hidPdrs", "");
                parameters.Add("hidsc", "");


                var reStr = await _httpService.SendRequst(GetBaseUri() + educenterUri, HttpMethod.Post, parameters);

                var name = Services.EduService.GetName(reStr);
                if (string.IsNullOrEmpty(name))
                {
                    string messageRegex = @"(?<=defer\>alert\(')\w.+(?='\);)";
                    var    message      = Regex.Match(reStr, messageRegex).Value;
                    if (message.Contains("验证"))
                    {
                        throw new InvalidCheckcodeException(message);
                    }
                    else
                    {
                        throw new InvalidUserInfoException(message);
                    }
                }
                return(name);
            }
            catch (HttpRequestException requestException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #4
0
        //获取信息门户到一卡通中心的filter
        public async Task GetCardCenterClient(Services.HttpBaseService _httpSerice)
        {
            try
            {
                var re = await _httpSerice.SendRequst(campusCardLoginUri, HttpMethod.Get);

                re = await _httpSerice.SendRequst(campusCardAjaxLoginUri, HttpMethod.Get);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #5
0
        //登录信息门户

        public async Task LoginInfoCenter(Services.HttpBaseService _httpService, string username, string password)
        {
            try
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add("Login.Token1", username);
                parameters.Add("Login.Token2", password);
                parameters.Add("goto", "http://my.bjut.edu.cn/loginSuccess.portal");
                parameters.Add("gotoOnFail", "http://my.bjut.edu.cn/loginFailure.portal");

                var re = await _httpService.SendRequst(loginUri, HttpMethod.Post, parameters);

                if (re.Contains("handleLoginSuccessed"))
                {
                    return;
                }
                else
                {
                    throw new InvalidUserInfoException("用户名或密码错误");
                    //登录失败
                }
            }
            catch (Exception e)
            {
                throw;
                //其他异常
            }
        }
コード例 #6
0
        public async Task <Models.CampusCardInfoModel> GetCampusCardSalaryInfo(Services.HttpBaseService _httpService)
        {
            var re = await _httpService.SendRequst(cardSalaryInfoUri, HttpMethod.Get);

            var info = PraseCampusCardSalaryInfo(re);

            return(info);
        }
コード例 #7
0
        public static async Task <Models.EduTimeModel> GetEduTime(Services.HttpBaseService _httpService)
        {
            var re = await _httpService.SendRequst(edutimeUri, HttpMethod.Get);

            var model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.EduTimeModel>(re);

            return(model);
        }
コード例 #8
0
        //获取课程表数据
        public async Task <string> GetCurrentSchedule(Services.HttpBaseService _httpService, string name, string username)
        {
            string re;

            re = await _httpService.SendRequst(GetBaseUri() + eduscheduleUri + username + "&xm=" + name + "&gnmkdm=N121603", HttpMethod.Get, referUri : GetBaseUri() + checckAuthUri + username);

            return(re);
        }
コード例 #9
0
        //获取学年学期信息
        public async Task <Models.EduTimeModel> GetEduBasicInfo(Services.HttpBaseService _httpService)
        {
            var re = await _httpService.SendRequst(calendarUri, HttpMethod.Get);

            var p    = Regex.Match(re, @"<.*weekteaching.*\s*.*\s*</p>").Value;
            var year = Regex.Match(p, @"\d+-\d+").Value;
            var term = Regex.Match(p, @".(?=学期)").Value == "二" ? 2 : 1;
            var week = Regex.Match(p, @"\d*(?=\s*教学)").Value;

            Models.EduTimeModel model = new Models.EduTimeModel();
            model.SchoolYear = year;
            model.Term       = term;
            model.Week       = int.Parse(week);
            return(model);
        }
コード例 #10
0
        public async static Task <UpdateModel> GetLatestVersionCode(Services.HttpBaseService httpService)
        {
            UpdateModel updateModel = null;

            try
            {
                var re = await httpService.SendRequst(latestVersionCodeUri, HttpMethod.Get);

                updateModel = Newtonsoft.Json.JsonConvert.DeserializeObject <UpdateModel>(re);
                return(updateModel);
            }
            catch
            {
                throw;
            }
        }
コード例 #11
0
        public static async Task <Models.NewsModel> GetNews(Services.HttpBaseService httpService, int id)
        {
            try
            {
                var re = await httpService.SendRequst($"{newsUri}/?={id}", HttpMethod.Get);

                return(Newtonsoft.Json.JsonConvert.DeserializeObject <Models.NewsModel>(re));
            }
            catch (HttpRequestException)
            {
                return(null);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
コード例 #12
0
        public static async Task <IList <Models.NewsHeaderModel> > GetHeaders(Services.HttpBaseService httpService)
        {
            try
            {
                var re = await httpService.SendRequst(newsHeadersUri, HttpMethod.Get);

                var headers = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.NewsHeaderModel[]>(re);
                return(headers);
            }
            catch (HttpRequestException)
            {
                return(null);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
コード例 #13
0
        public async Task <Models.CampusCardInfoModel> GetCampusCardBasicInfo(Services.HttpBaseService _httpService)
        {
            var re = await _httpService.SendRequst(cardBasicInfoUri, HttpMethod.Get);

            var info = PraseCampusCardBasicInfo(re);

            //using (var stream = await _httpService.SendRequstForStream(personImageUri, HttpMethod.Get))
            //{
            //    stream.Seek(0, SeekOrigin.Begin);
            //    using (var ras = stream.AsRandomAccessStream())
            //    {
            //        WriteableBitmap bitmap = new WriteableBitmap(1, 1);
            //        bitmap.SetSource(ras);
            //        info.PersonImage = bitmap;
            //    }
            //}
            return(info);
        }
コード例 #14
0
        public async void LoadNews()
        {
            IsLoading = true;
            if (_newsHeader.ContentUri == "https://cjw1115.com/bjutduhelper/appview/")
            {
                try
                {
                    var _news = new Models.NewsModel();
                    _news.Title    = "工大助手公告";
                    _news.Author   = "工大助手团队";
                    _news.PostTime = DateTime.Now;
                    _news.Content  = await _httpService.SendRequst(_newsHeader.ContentUri, HttpMethod.Get);

                    News = _news;
                }
                catch (HttpRequestException)
                {
                    Services.NotityService.Notify("网络不给力!/(ㄒoㄒ)/~~");
                    await _navigationService.GoBackAsync();
                }
                catch
                {
                    Services.NotityService.Notify("未知异常/(ㄒoㄒ)/~~");
                    await _navigationService.GoBackAsync();
                }
            }
            else
            {
                var re = await Services.NewsService.GetNews(_httpService, _newsHeader.NewsID);

                if (re != null)
                {
                    News = re;
                }
                else
                {
                    Services.NotityService.Notify("出现问题!/(ㄒoㄒ)/~~");
                    await _navigationService.GoBackAsync();
                }
            }

            IsLoading = false;
        }
コード例 #15
0
        public async Task <IList <Models.CampusCardTransactionItemModel> > GetTransactionInfo(Services.HttpBaseService _httpService)
        {
            try
            {
                #region 获取消费记录

                IDictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add("int_start", "0");
                parameters.Add("int_maxSize", "15");
                var re = await _httpService.SendRequst(campusCardTransactionUri, HttpMethod.Post, parameters);

                var list = PraseTransactionInfo(re);
                return(list);

                #endregion
            }
            catch
            {
                return(null);
            }
        }
コード例 #16
0
        public async Task <string> FundCampusCard(Services.HttpBaseService _httpService, string smtCardid)
        {
            try
            {
                var parameters = new Dictionary <string, string>();
                parameters.Add("lg_smtCardid", smtCardid);
                var re = await _httpService.SendRequst(foundCampusUri, HttpMethod.Post, parameters);

                var json          = Newtonsoft.Json.Linq.JObject.Parse(re);
                var messageObject = (string)json["message"];
                return(string.IsNullOrWhiteSpace(messageObject) ? "解挂成功,注意保存一卡通" : messageObject);
            }
            catch (HttpRequestException requestException)
            {
                return("网络错误");
            }
            catch
            {
                return("其他错误");
            }
        }
コード例 #17
0
        public async Task <string> Feed(Services.HttpBaseService httpService, Models.FeedModel model)
        {
            Dictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("Content", model.Content);
            dic.Add("Contact", model.Contact);
            dic.Add("FeedTime", DateTime.Now.ToString());
            dic.Add("Version", model.Version);
            string re = null;

            try
            {
                re = await httpService.SendRequst(feedUri, HttpMethod.Post, dic);

                var resultModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ResualtModel>(re);
                return(resultModel.message);
            }
            catch
            {
                throw;
            }
        }
コード例 #18
0
        public async void Comment()
        {
            if (string.IsNullOrEmpty(CommentContent))
            {
                Services.NotityService.Notify("写点什么呗");
                return;
            }
            var user = Services.UserService.Instance.UserInfo;

            if (user == null || user.Username == null || user.Token == null)
            {
                await _navigationService.NavigateAsync(typeof(Views.MyBJUT.LoginPage).Name);

                return;
            }

            IsLoading = true;
            try
            {
                var dic = new Dictionary <string, string>(4);
                dic.Add("MomentID", Moment.ID.ToString());
                dic.Add("CommentToID", _selectedComment == null?string.Empty: _selectedComment.ID.ToString());
                dic.Add("Content", CommentContent);
                dic.Add("Username", user.Username);

                var resultStr = await _httpService.SendRequst(momentsCommentUri, HttpMethod.Post, dic, Authorization : Services.UserService.Instance.Token);

                var result = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.MyBJUT.MomentCommentResult>(resultStr);

                if (result.Code == 200)
                {
                    //insert into top of the comment list;
                    var comment = new MomentCommentsViewModel();
                    comment.Content    = CommentContent;
                    comment.MomentID   = Moment.ID;
                    comment.Nickname   = user.NickName;
                    comment.Username   = user.Username;
                    comment.PostedTime = DateTime.Now;
                    if (_selectedComment != null)
                    {
                        comment.CommentTo         = _selectedComment.ID;
                        comment.CommentToUsername = _selectedComment.Username;
                        comment.CommentToNickname = _selectedComment.Nickname;
                    }
                    comment.FilterNicknameAndContent();

                    MomentComments.Insert(0, comment);

                    CommentContent   = string.Empty;
                    _selectedComment = null;
                    SelectedUser     = null;

                    Services.NotityService.Notify("评论成功");
                }
                else
                {
                    Services.NotityService.Notify(result.Msg);
                }
            }
            catch (InvalidUserInfoException)
            {
                Services.NotityService.Notify("登录信息失效");
                await _navigationService.NavigateAsync(typeof(Views.MyBJUT.LoginPage).Name);
            }
            catch
            {
                Services.NotityService.Notify("遇到未知错误");
            }
            finally
            {
                IsLoading = false;
            }
        }
コード例 #19
0
        public async void Publish()
        {
            if (string.IsNullOrWhiteSpace(Content))
            {
                Services.NotityService.Notify("至少写点什么吧");
                return;
            }
            HttpClient client = null;

            IsLoading = true;
            try
            {
                var           baseUri = "https://up-z1.qbox.me";
                List <String> imgUris = new List <string>();
                client = new HttpClient();
                for (int i = 0; i < Images.Count; i++)
                {
                    var index    = Images[i].Path.LastIndexOf('/');
                    var fileName = Images[i].Path.Substring(index + 1, Images[i].Path.Length - index - 1);
                    fileName = DateTime.UtcNow.ToString("yyyyMMddHHmmssms") + fileName;

                    StreamContent imageContent = null;
                    var           stream       = Images[i].GetStream();
                    {
                        imageContent = new StreamContent(stream);
                    }
                    var content = new MultipartFormDataContent();
                    content.Add(new StringContent(fileName), "key");
                    content.Add(new StringContent(MakeToken(fileName)), "token");
                    content.Add(imageContent, "file", fileName);

                    var re = await client.PostAsync(baseUri, content);

                    if (re.IsSuccessStatusCode)
                    {
                        imgUris.Add(fileName);
                    }
#if DEBUG
                    var msg = await re.Content.ReadAsStringAsync();

                    Views.MyBJUT.MomentPublishPage.Instance.ShowMsg(msg);
#endif

                    stream.Dispose();
                }


                Dictionary <string, string> dic = new Dictionary <string, string>();
                dic.Add("Content", Content);
                for (int i = 0; i < imgUris.Count; i++)
                {
                    dic.Add($"Imgs[{i}]", imgUris[i]);
                }
                var user = Services.UserService.Instance.LoadLocalUserinfo();
                dic.Add("Username", user.Username);
                var resoncseMsg = await _httpService.SendRequst(momentsUploadUri, HttpMethod.Post, dic, Authorization : Services.UserService.Instance.Token);

                var    result  = Newtonsoft.Json.JsonConvert.DeserializeObject <Result>(resoncseMsg);
                string message = result.Msg;
                Services.NotityService.Notify(message);
                if (result.Code == 200)
                {
                    NavigationParameters param = new NavigationParameters();
                    //param.Add("IsLoad", true);
                    await _navigationService.GoBackAsync(param);
                }
            }
            catch (InvalidUserInfoException)
            {
                await _navigationService.NavigateAsync(typeof(Views.MyBJUT.LoginPage).Name);
            }
            catch (Exception e)
            {
                Services.NotityService.Notify("遇到错误");
#if DEBUG
                Views.MyBJUT.MomentPublishPage.Instance.ShowMsg(e.Message);
#endif
            }
            finally
            {
                client?.Dispose();
                IsLoading = false;
            }
        }