iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0

Hello, 各位 iT邦幫忙 的粉絲們大家好~~~

本篇是 Re: 從零開始用 Xamarin 技術來複刻過去開發的一個 App: TopStore 系列文的 EP24。

上一篇 EP23 當中已經確認到雙平台 (iOS、Android) 都有根據 EP22 中所撰寫的程式,正確的建立了想要的 SQLite DB 檔案在 App 的專屬資料夾當中。

接著本篇 EP24 就來撰寫有關對於 SQLite DB 處理 "寫、讀、改、刪 與 搜尋" 等操作,以便操作 App 的使用者能正確的將 "聯絡人" 給建立起來。

那就開始囉~~~


打開 DBService 的類別設計,在命名空間引用上加入 using System.Linq,因為接下來要操作的是 ORM 設計的 SQLite.NET。

DbService 中對於 Person 資料的 "讀、搜尋"。
設計 GetPeople 與 GetPerson 的兩個方法,兩個方法都有設定需傳遞的引數,比較特殊的是 GetPeople 的引數有設計預設值。
GetPeople 與 GetPerson 的方法

DbService 中對於 Person 資料的 "寫、改"、""。
設計 SavePerson 與 DeletePerson 的兩個方法,兩個方法都有設定需傳遞的引數。
SavePerson 與 DeletePerson 的方法

接下來打開 PersonPageViewModel 當中找到 DeleteCommand,替換掉原本呼叫 MockData 的 DeletePerson 方法。
修改 DeleteCommand 的設計

透過 DbService 的 Instance 來呼叫設計在 DbService 中的 DeletePerson 方法。
呼叫 DeletePerson 方法

繼續在 PeoplePageViewModel 並找到當初設計的 SearchCommand 的方法,把其中利用 MockData 搜尋 People 資料的部份給替換掉。
改寫 SearchCommand 的方法

透過 DbService 的 Instance 來呼叫設計在 DbService 中的 GetPeople 方法。
呼叫 GetPeople 方法

接下來打開 PersonDetailPageViewModel 並找到當初設計的 PersonId 的屬性(先前設計用來接收傳遞資料的屬性),把其中利用 MockData 的 GetPerson 方法給替換掉。
改寫 PersonId 的屬性設定

透過 DbService 的 Instance 來呼叫設計在 DbService 中的 GetPerson 方法。
呼叫 GetPerson 方法

找到 PersonDetailPageViewModel 的建構式,替換掉當初利用 MockData 設計的 NewPerson。
改寫 PersonDetailPageViewModel 的建構式

直接 new 一個 Person 的物件賦予的 EditPerson 屬性(有可能團隊的設計規範上會禁止撰寫直接 new 物件的程式,請根據設計斟酌考量)。
賦予設計的 EditPerson 屬性

繼續在 PersonDetailPageViewModel 當中找到 SaveCommand,替換掉原本呼叫 MockData 的 EditPerson 方法。
修改 SaveCommand 的設計

透過 DbService 的 Instance 來呼叫設計在 DbService 中的 SavePerson 方法。
呼叫 SavePerson 方法

最後再打開 PeoplePage 並設計 override(覆寫) 其 Page 的 OnAppearing 生命週期方法。
覆寫 OnAppearing 生命週期方法

在 OnAppearing 方法當中撰寫透過 DbService 設計的 GetPeople 方法,賦予其 PeoplePageViewModel 中的 People 屬性資料。
DbService 設計的 GetPeople 方法設定 People 資料

再一次回到 PeoplePageViewModel 中並找到其建構式,將上一篇 EP23 原本改寫的 People 資料的程式給註解。
PeoplePageViewModel 其建構式註解程式

由於在 PepolePage 的 OnAppearing 方法中已經有設計 People 的資料取得,所以在 ViewModel 建構式先設定一次 People 的資料就顯得較無意義。

接下來就在雙平台(iOS、Android) 來執行看看吧!

"新增" 聯絡人。
雙平台 "新增" 聯絡人的執行展示 1

雙平台 "新增" 聯絡人的執行展示 2

雙平台 "新增" 聯絡人的執行展示 3

雙平台 "新增" 聯絡人的執行展示 4

雙平台 "新增" 聯絡人的執行展示 5

"編輯" 聯絡人。
雙平台 "編輯" 聯絡人的執行展示 1

雙平台 "編輯" 聯絡人的執行展示 2

雙平台 "編輯" 聯絡人的執行展示 3

雙平台 "編輯" 聯絡人的執行展示 4

雙平台 "編輯" 聯絡人的執行展示 5-1

雙平台 "編輯" 聯絡人的執行展示 5-2

雙平台 "編輯" 聯絡人的執行展示 6

"搜尋" 聯絡人。
雙平台 "搜尋" 聯絡人的執行展示 1

雙平台 "搜尋" 聯絡人的執行展示 2

雙平台 "搜尋" 聯絡人的執行展示 3

"刪除" 聯絡人。
雙平台 "刪除" 聯絡人的執行展示 1

雙平台 "刪除" 聯絡人的執行展示 2

雙平台 "刪除" 聯絡人的執行展示 3

以上 Person 資料的 "寫、讀、改、刪 與 搜尋" 都能在 SQLite DB 處理完成!

若有興趣可以按照上一回 EP23 的做法,在做每一個操作的時候都把 SQLite DB 檔案從模擬器拉出來看看喔~~~

下一篇 EP25 見唷!

撒啦嘎唷~~~


上一篇
EP 23: SQLite DB in Android and iOS for TopStore App
下一篇
EP 25: Validation by Data Annotation Validators in TopStore App
系列文
Re: 從零開始用 Xamarin 技術來復刻過去開發的一個 App : TopStore32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言