Наследование: Windows.UI.Xaml.Controls.UserControl
Пример #1
0
 //bool isGetTransactionSuccess = false;
 //新增:获取事项信息
 private async void GetTransaction(string contentstring = null)
 {
     bool secondTimeAdd = false;
     if (contentstring == null)
     {
         //clear出了无法理解的问题..暂时用一个判断吧 聊胜于无           
         var vault = new Windows.Security.Credentials.PasswordVault();
         var credentialList = vault.FindAllByResource(resourceName);
         credentialList[0].RetrievePassword();
         if (credentialList[0] != null)
         {
             try
             {
                 List<KeyValuePair<String, String>> TransactionparamList = new List<KeyValuePair<String, String>>();
                 TransactionparamList.Add(new KeyValuePair<string, string>("stuNum", credentialList[0].UserName));
                 TransactionparamList.Add(new KeyValuePair<string, string>("idNum", credentialList[0].Password));
                 string Transactiontemp = await NetWork.getHttpWebRequest("cyxbsMobile/index.php/Home/Person/getTransaction", TransactionparamList);
                 //isGetTransactionSuccess = true;
                 JObject Tobj = JObject.Parse(Transactiontemp);
                 if (Int32.Parse(Tobj["status"].ToString()) == 200)
                 {
                     JArray TransactionArray = Utils.ReadJso(Transactiontemp);
                     for (int i = 0; i < TransactionArray.Count; i++)
                     {
                         Transaction transactionItem = new Transaction();
                         transactionItem.GetAttribute((JObject)TransactionArray[i]);
                         foreach (var existItem in transationList)
                         {
                             if (transactionItem.id == existItem.id)
                             { secondTimeAdd = true; break; }
                         }
                         if (!secondTimeAdd)
                             transationList.Add(transactionItem);
                         Debug.WriteLine(i);
                     }
                 }
             }
             catch
             {
                 NotifyPopup notifyPopup = new NotifyPopup("网络异常 无法读取事项~");
                 notifyPopup.Show();
             }
         }
     }
     else
     {
         if (contentstring!=null&&contentstring != "")
         {
             JObject Tobj = JObject.Parse(contentstring);
             if (Int32.Parse(Tobj["status"].ToString()) == 200)
             {
                 JArray TransactionArray = Utils.ReadJso(contentstring);
                 for (int i = 0; i < TransactionArray.Count; i++)
                 {
                     Transaction transactionItem = new Transaction();
                     transactionItem.GetAttribute((JObject)TransactionArray[i]);
                     foreach (var existItem in transationList)
                     {
                         if (transactionItem.id == existItem.id)
                         { secondTimeAdd = true; break; }
                     }
                     if (!secondTimeAdd)
                         transationList.Add(transactionItem);
                     Debug.WriteLine(i);
                 }
             }
         }
     }
 }
Пример #2
0
        //TODO:未登陆时 没有课表
        private async void initKB(bool isRefresh = false)
        {
            string Transactiontemp = null;

            try
            {
                var vault = new Windows.Security.Credentials.PasswordVault();
                var credentialList = vault.FindAllByResource(resourceName);
                credentialList[0].RetrievePassword();
                //if (stuNum == appSetting.Values["stuNum"].ToString() && !isRefresh)
                if (stuNum == credentialList[0].UserName && !isRefresh)
                {
                    try
                    {
                        IStorageFolder applicationFolder = ApplicationData.Current.LocalFolder;
                        IStorageFile storageFileRE = await applicationFolder.GetFileAsync("kb");
                        IRandomAccessStream accessStream = await storageFileRE.OpenReadAsync();
                        using (StreamReader streamReader = new StreamReader(accessStream.AsStreamForRead((int)accessStream.Size)))
                        {
                            kb = streamReader.ReadToEnd();
                        }
                        HubSectionKBNum.Text = " | 第" + appSetting.Values["nowWeek"].ToString() + "周";
#if DEBUG
                        showKB(2, 5);
#else
                    showKB(2);
#endif
                    }
                    catch (Exception) { Debug.WriteLine("主页->课表数据缓存异常"); }
                }
                //if (stuNum == appSetting.Values["stuNum"].ToString())
                if (stuNum == credentialList[0].UserName)
                {
                    HubSectionKBTitle.Text = "我的课表";
                    HubSectionKBTitle.FontSize = 18;

                }

            }
            catch { }

            List<KeyValuePair<String, String>> paramList = new List<KeyValuePair<String, String>>();
            paramList.Add(new KeyValuePair<string, string>("stuNum", stuNum));
            //if (isRefresh)
            //    paramList.Add(new KeyValuePair<string, string>("forceFetch", "true"));


            string kbtemp = await NetWork.getHttpWebRequest("redapi2/api/kebiao", paramList); //新
                                                                                              //string kbtemp = await NetWork.getHttpWebRequest("api/kebiao", paramList); //旧
            try
            {
                var vault = new Windows.Security.Credentials.PasswordVault();
                var credentialList = vault.FindAllByResource(resourceName);
                credentialList[0].RetrievePassword();
                List<KeyValuePair<String, String>> TransactionparamList = new List<KeyValuePair<String, String>>();
                TransactionparamList.Add(new KeyValuePair<string, string>("stuNum", credentialList[0].UserName));
                TransactionparamList.Add(new KeyValuePair<string, string>("idNum", credentialList[0].Password));
                Transactiontemp = await NetWork.getHttpWebRequest("cyxbsMobile/index.php/Home/Person/getTransaction", TransactionparamList);
            }
            catch
            {
                NotifyPopup notifyPopup = new NotifyPopup("网络异常 无法读取事项~");
                notifyPopup.Show();
            }
            if (!appSetting.Values.ContainsKey("HttpTime"))
                appSetting.Values["HttpTime"] = DateTimeOffset.Now.ToString();
            if (kbtemp != "")
            {
                kb = kbtemp;
                Debug.WriteLine("DateTimeOffset.Now.ToString()" + DateTimeOffset.Now.ToString());
                appSetting.Values["HttpTime"] = DateTimeOffset.Now.Year.ToString() + "/" + DateTimeOffset.Now.Month.ToString() + "/" + DateTimeOffset.Now.Day.ToString();
            }
            Debug.WriteLine("kb->" + kb);
            if (kb != "")
            {
                JObject obj = JObject.Parse(kb);
                if (Int32.Parse(obj["status"].ToString()) == 200)
                {
                    IStorageFile storageFileWR = await applicationFolder.CreateFileAsync("kb", CreationCollisionOption.OpenIfExists);
                    try
                    {
                        await FileIO.WriteTextAsync(storageFileWR, kb);
                    }
                    catch (Exception)
                    {
                        Debug.WriteLine("主页 -> 课表缓存,读取异常");
                    }
                    //保存当前星期

                    if (kbtemp == "")
                    {
                        Debug.WriteLine("上次时间" + appSetting.Values["HttpTime"].ToString());
                        //DateTimeOffset d = DateTimeOffset.Parse(appSetting.Values["HttpTime"].ToString());
                        Debug.WriteLine("1");
                        int httpweekday = (Int16)DateTimeOffset.Parse(appSetting.Values["HttpTime"].ToString()).DayOfWeek == 0 ? 7 : (Int16)DateTimeOffset.Parse(appSetting.Values["HttpTime"].ToString()).DayOfWeek;

                        Debug.WriteLine("差" + (DateTimeOffset.Now - DateTimeOffset.Parse(appSetting.Values["HttpTime"].ToString())).TotalDays);
                        double weekday = (DateTimeOffset.Now - DateTimeOffset.Parse(appSetting.Values["HttpTime"].ToString())).TotalDays - (7 - httpweekday);
                        Debug.WriteLine("weekday_前" + weekday);
                        //if (weekday % ((Int16)weekday) > 0 || weekday > 0 && weekday < 1)
                        //    weekday = (Int16)weekday + 1;
                        weekday = (Int16)weekday;
                        Debug.WriteLine("weekday_后" + weekday);
                        if (weekday > 0)
                            appSetting.Values["nowWeek"] = Int16.Parse(obj["nowWeek"].ToString()) + (Int16)(weekday + 6) / 7;
                        else
                            appSetting.Values["nowWeek"] = obj["nowWeek"].ToString();
                        Debug.WriteLine(" appSetting.Values[\"nowWeek\"]" + appSetting.Values["nowWeek"].ToString());
                    }
                    else
                        appSetting.Values["nowWeek"] = obj["nowWeek"].ToString();
                    HubSectionKBNum.Text = " | 第" + appSetting.Values["nowWeek"].ToString() + "周";
                    todayNumofstuTextBlock.Text = "开学第" + ((Int16.Parse(appSetting.Values["nowWeek"].ToString()) - 1) * 7 + (Int16.Parse(Utils.GetWeek()) == 0 ? 7 : Int16.Parse(Utils.GetWeek()))).ToString() + "天";
                    //showKB(2, Int32.Parse(appSetting.Values["nowWeek"].ToString()));
#if DEBUG
                    showKB(2, 0, Transactiontemp);
#else
                    showKB(2);
#endif
                }
            }
            DateTime now = DateTime.Now;
            DateTime weekstart = GetWeekFirstDayMon(now);
            DateTime weekend = GetWeekLastDaySun(now);
            this.HubSectionKBDate.Text = weekstart.Month + "." + weekstart.Day + "--" + weekend.Month + "." + weekend.Day;
            ShowWeekOnKB(weekstart);

        }