開發共同注意事項
有加入bitbucket專案的同仁:
- 請在Lemon專案下,建立自己分支開發
- 勿在GoGoApp裡放入其他不相關檔案,會同步到雲端
- 將固定變數寫在
GlobalVarSet.cs檔案裡
資料夾縮寫代表:
Cal -> 行事曆 Msg -> 訊息中心 Tui -> 註冊繳費 AcaAff -> 教務 StuAff -> 學務 Per -> 人事 Acc -> 會計 Act -> 活動 Sys -> 系統 Lib -> 圖書館
建立方式請按照此,不然會出錯! (圖示資料夾中文還沒改為英文啦..)
1.在view下新增類別或項目,命名方式[資料夾縮寫][檔名],原則是不可以有同樣的檔名!
ex.圖書館內的MainPage請用LibMainPage命名,教務的MainPage請用AcaAffMainPage

以最常用的content page做例子,請在view資料夾按下加入,到Prism項目新增

新增完成會自動增加viewmodel,再將檔案拖拉至資料夾下

固定循環步驟
commit and push
變更及推送

確認自己的分支

直接認可加推送,不需要再進到同步頁面按推送了

成功推送的畫面


update master
更新master




create branch
以下示範切新的分支



merge branch to branch
以下示範合併到自己的分支



- 如果遇到衝突,請解衝突! 參考此篇
create a pull request
示範發pull request
先確認更變是否有認可(commit)完成








常遇bug
不支援Debug Type 新拉下的專案要清除 重建 重開vs 可解決~
Git push to wrong branch
Resetting remote to a certain commit
登入檢查
app登入之後,會寫入token到165資料庫,api將client傳來的token到165去檢查ok的話(如下sqlcmd),就允許取得api資料 所以每個api都必須傳token資料,除非是不必登入portal就可以run的功能除外
public string CheckToken(string Token)
{
string account = "";
try
{
DataTable dt = new DataTable();
String sql;
sql = @"
select * from AppAccessToken where Token=@Token and DeadLine>=getdate()
";
SqlDataAdapter sda = new SqlDataAdapter(sql, GetSQLConn("NewPortalDB"));
sda.SelectCommand.Parameters.AddWithValue("@Token", Token);
sda.Fill(dt);
if (dt.Rows.Count > 0)
{
account = dt.Rows[0]["account"].ToString().Trim();
}
}
catch (Exception e)
{
string err = e.Message;
}
return account;
}
Login的事項
各位如果希望登入後導航至指定頁面,而不是預設的MainPage
可在導航至LoginPage時,如下圖設定:
PassPage是你要指定導航的頁面名稱,PassPara是你要傳到指定導航頁面的字串。

整理 1.漢堡Menu的登入/登出按鈕取消,改在首頁增加一個登入/登出按鈕。以減少使用者隨時要登入/登出的情況。
2.當需要登入的情況發生時(如活動報名、館藏預約時),導到 LoginPage :
a. 只需要將必要的參數帶過去就好,不需要將 Page 的名稱也帶過去。 b. _navigationService.NavigateAsync的第三個參數要加 true ,鎖住 LoginPage 以防止使用者按畫面左上方的「上一頁」的箭頭。
if (PCLGlobal.Token == "")
{
NavigationParameters fooPara = new NavigationParameters();
fooPara.Add("PassPara", RegActivityID);
_navigationService.NavigateAsync("LoginPage",fooPara, true);
}
- 在 LoginPage 中,完成 Login 後,利用 _navigationService.GoBackAsync 導回到上一頁就好,不需要特別指定到哪一頁。
NavigationParameters fooPara = new NavigationParameters();
fooPara.Add("PassPara", LoginPassPara);
await _navigationService.GoBackAsync(fooPara);
色碼統一

#5B5B5B\#FDEBCC\#D96E59\#F4F4F4\#5DC6BB\#6A91B0
以及取代超黑black屬性的#333333
UserInfo的UserType
public class UserInfo
{
//Allow:Y 有效的Token
//Allow:N 無效的Token
public string Allow { get; set; }
//UserAccount 此Token的對應帳號
public string UserAccount { get; set; }
//UserType:E 預設是E
//UserType:S 學生(Lea_std_basic或dat_std_basic有資料)
//UserType:T 老師(vStaffBasic的TeacherGroup=1 or staffParttimeTeacherFlag=1)
//UserType:A 職員(vStaffBasic的GeneralGroup=1)
//UserType:T&A 是老師也是職員(兼任教師可能有此狀況)
public string UserType { get; set; }
}