示例#1
0
        private async Task LoadData(string section, string day)
        {
            LoadProgress.IsActive = true;
            if (Class.HttpPostUntil.isInternetAvailable)
            {
                var postdata = Class.HttpPostUntil.GetBasicPostData();
                postdata.Add(new KeyValuePair <string, string>("page", page.ToString()));
                postdata.Add(new KeyValuePair <string, string>("sectionStart", section));
                postdata.Add(new KeyValuePair <string, string>("sectionEnd", section));
                postdata.Add(new KeyValuePair <string, string>("day", day));
                postdata.Add(new KeyValuePair <string, string>("term", Class.UserManager.UserData.term.ToString()));
                postdata.Add(new KeyValuePair <string, string>("startYear", Class.UserManager.UserData.beginYear.ToString()));
                var json = await Class.HttpPostUntil.HttpPost(Class.Data.Urls.Course.getCourseListBySchoolTime, new Windows.Web.Http.HttpFormUrlEncodedContent(postdata));

                try
                {
                    var service = new FridayCloudService.ServiceClient(FridayCloudService.ServiceClient.EndpointConfiguration.BasicHttpBinding_IService);
                    json = Windows.Data.Json.JsonObject.Parse(json)["data"].GetObject()["courseList"].GetArray().ToString();
                    json = await service.EncryptCourseListAsync(json, "cn.friday@" + Class.UserManager.UserData.studentId);

                    await service.CloseAsync();

                    var courselist     = Class.Data.Json.DataContractJsonDeSerialize <ObservableCollection <Class.Model.CourseManager.CourseModel> >(json);
                    var courselistjson = Class.Data.Json.ToJsonData(await Class.Model.CourseManager.GetCourse());
                    if (courselist != null)
                    {
                        foreach (var item in courselist)
                        {
                            if (item.time != "")
                            {
                                if (courselistjson.Contains(item.id))
                                {
                                    item.isadd = true;
                                }
                                else
                                {
                                    item.isadd = false;
                                }
                                CourseList.Items.Add(item);
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    if (page != 0)
                    {
                        page = page - 1;
                    }
                    Class.Tools.ShowMsgAtFrame("网路异常");
                }
            }
            else
            {
                Class.Tools.ShowMsgAtFrame("网路异常");
            }
            LoadProgress.IsActive = false;
        }
示例#2
0
        public static async Task <string> register(string user, string pwd, string captcha, string academyId, string grade, string schoolId)
        {
            if (HttpPostUntil.isInternetAvailable)
            {
                try
                {
                    var postdata = HttpPostUntil.GetBasicPostData();
                    FridayCloudService.ServiceClient sc = new FridayCloudService.ServiceClient(FridayCloudService.ServiceClient.EndpointConfiguration.BasicHttpBinding_IService);
                    var p = await sc.EncryptDataAsync(pwd);

                    var mm = await sc.EncryptDataByKeyAsync(user, user);

                    await sc.CloseAsync();

                    postdata.Add(new KeyValuePair <string, string>("account", mm));
                    postdata.Add(new KeyValuePair <string, string>("password", p));
                    postdata.Add(new KeyValuePair <string, string>("areaCode", "null"));
                    postdata.Add(new KeyValuePair <string, string>("identityStatus", "0"));
                    postdata.Add(new KeyValuePair <string, string>("deviceCode", HttpPostUntil.NowTime));
                    var json = await HttpPostUntil.HttpPost(Data.Urls.user.Register.register, new HttpFormUrlEncodedContent(postdata), false);

                    var obj = JsonObject.Parse(json).GetNamedObject("data");
                    if (obj.GetNamedNumber("statusInt") != 1)
                    {
                        return(obj.GetNamedString("errorStr"));
                    }
                    else
                    {
                        return(null);
                    }
                }
                catch (Exception)
                {
                    return("网络异常");
                }
            }
            else
            {
                return("网络异常");
            }
        }
示例#3
0
        public static async Task <string> getRegisterCaptcha(string m, string pwd)
        {
            if (HttpPostUntil.isInternetAvailable)
            {
                try
                {
                    var postdata = HttpPostUntil.GetBasicPostData();
                    FridayCloudService.ServiceClient sc = new FridayCloudService.ServiceClient(FridayCloudService.ServiceClient.EndpointConfiguration.BasicHttpBinding_IService);
                    var p = await sc.EncryptDataAsync(pwd);

                    var mm = await sc.EncryptDataByKeyAsync(m, m);

                    await sc.CloseAsync();

                    postdata.Add(new KeyValuePair <string, string>("m", m));
                    postdata.Add(new KeyValuePair <string, string>("p", p));
                    postdata.Add(new KeyValuePair <string, string>("areaCode", "null"));
                    postdata.Add(new KeyValuePair <string, string>("mm", mm));
                    var json = await HttpPostUntil.HttpPost(Data.Urls.user.Register.getRegisterCaptcha, new HttpFormUrlEncodedContent(postdata), false);

                    var obj = JsonObject.Parse(json).GetNamedObject("data");
                    if (obj.GetNamedNumber("statusInt") != 1)
                    {
                        return(obj.GetNamedString("errorStr"));
                    }
                    else
                    {
                        return(null);
                    }
                }
                catch (Exception)
                {
                    return("网络异常");
                }
            }
            else
            {
                return("网络异常");
            }
        }
示例#4
0
        public static async Task <Model.User.Login_Result> Login(string account, string password, bool relogin = false)
        {
            var auto_login = false;

            try
            {
                var localData = Windows.Storage.ApplicationData.Current.LocalSettings;
                if (account == "" && localData.Values.ContainsKey("prev_account") && !relogin)
                {
                    auto_login = true;

                    account = (string)localData.Values["prev_account"];

                    if (localData.Values.ContainsKey("pw_" + account) && account != "" && account != null)
                    {
                        password = (string)localData.Values["pw_" + account];
                        account  = (string)localData.Values["ac_" + account];
                    }
                    else
                    {
                        return(UserManager.UserData);
                    }
                }
                else
                if (localData.Values.ContainsKey("ac_" + account) && !relogin)
                {
                    password = (string)localData.Values["pw_" + account];
                    account  = (string)localData.Values["ac_" + account];
                }
                else
                {
                    var service = new FridayCloudService.ServiceClient(FridayCloudService.ServiceClient.EndpointConfiguration.BasicHttpBinding_IService);
                    localData.Values["prev_account"]  = account;
                    localData.Values["ac_" + account] = await service.EncryptDataAsync(account);

                    localData.Values["pw_" + account] = await service.EncryptDataAsync(password);

                    account = await service.EncryptDataAsync(account);

                    password = await service.EncryptDataAsync(password);

                    await service.CloseAsync();
                }
                var postdata = HttpPostUntil.GetBasicPostData();
                postdata.Add(new KeyValuePair <string, string>("account", account));
                postdata.Add(new KeyValuePair <string, string>("password", password));
                var httpclient = new HttpClient();
                var result     = await httpclient.PostAsync(new Uri(Data.Urls.user.login), new HttpFormUrlEncodedContent(postdata));

                var json = await result.Content.ReadAsStringAsync();

                json = Windows.Data.Json.JsonObject.Parse(json)["data"].GetObject()["student"].GetObject().ToString();
                var userdata = Data.Json.DataContractJsonDeSerialize <Model.User.Login_Result>(json);
                if (userdata != null && json.Contains("studentId"))
                {
                    localData.Values["userdata"] = json;
                    var usercookie = result.Headers["Set-Cookie"];
                    var cookies    = usercookie.Split(';');
                    foreach (var item in cookies)
                    {
                        if (item.Contains("JSESSIONID="))
                        {
                            localData.Values["usercookie"] = item.Split('=')[1];
                        }
                        if (item.Contains("SERVERID="))
                        {
                            localData.Values["userserverid"] = item.Split('=')[1];
                        }
                    }
                    try
                    {
                        await Class.Model.CourseManager.Async.GetCourseTableFromServer();

                        //将setTime转为本地时间
                        var setTimeVar = (new DateTime(1970, 1, 1, 0, 0, 0) + TimeSpan.FromMilliseconds(userdata.attachmentBO.nowWeekMsg.setTime)).ToLocalTime();

                        var dayOfWeek = (int)setTimeVar.DayOfWeek;
                        if (dayOfWeek == 0)
                        {
                            dayOfWeek = 7;
                        }
                        var delta = (DateTime.Now - setTimeVar).TotalDays;


                        if (delta > 0)
                        {
                            userdata.attachmentBO.nowWeekMsg.nowWeek = userdata.attachmentBO.nowWeekMsg.nowWeek + int.Parse(Math.Floor(delta + dayOfWeek).ToString()) / 7;
                        }
                    }
                    catch (Exception)
                    {
                    }
                    return(userdata);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception)
            {
                if (auto_login)
                {
                    if (UserData != null)
                    {
                        return(UserData);
                    }
                }
                return(null);
            }
        }