From 0d3eadff1d7864449c0f6be333908b57d457903e Mon Sep 17 00:00:00 2001 From: doryumusharon Date: Wed, 18 Nov 2020 18:15:05 +0000 Subject: [PATCH] codes -expense tracker application --- .../ExpenseTracker.Android.csproj | 3 + ExpenseTracker.iOS/ExpenseTracker.iOS.csproj | 3 + ExpenseTracker/App.xaml.cs | 6 +- ExpenseTracker/ExpenseTracker.csproj | 22 ++++++ ExpenseTracker/model/CatergoryAmount.cs | 14 ++++ ExpenseTracker/model/SideDrawerMenu.cs | 14 ++++ ExpenseTracker/viewModel/FirebaseHelper.cs | 56 +++++++++++++- ExpenseTracker/views/auth/ChangePassword.xaml | 12 +++ .../views/auth/ChangePassword.xaml.cs | 20 +++++ ExpenseTracker/views/auth/LoginPage.xaml | 2 +- ExpenseTracker/views/auth/SignUpPage.xaml | 2 +- ExpenseTracker/views/home/Home.xaml | 43 ++++++----- ExpenseTracker/views/home/Home.xaml.cs | 56 ++++++++++---- ExpenseTracker/views/home/HomePage.xaml | 74 +++++++++++++++++++ ExpenseTracker/views/home/HomePage.xaml.cs | 36 +++++++++ ExpenseTracker/views/home/HomePageDetail.xaml | 9 +++ .../views/home/HomePageDetail.xaml.cs | 20 +++++ ExpenseTracker/views/home/HomePageMaster.xaml | 45 +++++++++++ .../views/home/HomePageMaster.xaml.cs | 56 ++++++++++++++ .../views/home/HomePageMasterMenuItem.cs | 21 ++++++ ExpenseTracker/views/pages/CategoryPage.xaml | 12 +++ .../views/pages/CategoryPage.xaml.cs | 20 +++++ .../views/pages/ExpenseDetailsPage.xaml | 12 +++ .../views/pages/ExpenseDetailsPage.xaml.cs | 20 +++++ ExpenseTracker/views/pages/ExpensePage.xaml | 12 +++ .../views/pages/ExpensePage.xaml.cs | 20 +++++ 26 files changed, 566 insertions(+), 44 deletions(-) create mode 100644 ExpenseTracker/model/CatergoryAmount.cs create mode 100644 ExpenseTracker/model/SideDrawerMenu.cs create mode 100644 ExpenseTracker/views/auth/ChangePassword.xaml create mode 100644 ExpenseTracker/views/auth/ChangePassword.xaml.cs create mode 100644 ExpenseTracker/views/home/HomePage.xaml create mode 100644 ExpenseTracker/views/home/HomePage.xaml.cs create mode 100644 ExpenseTracker/views/home/HomePageDetail.xaml create mode 100644 ExpenseTracker/views/home/HomePageDetail.xaml.cs create mode 100644 ExpenseTracker/views/home/HomePageMaster.xaml create mode 100644 ExpenseTracker/views/home/HomePageMaster.xaml.cs create mode 100644 ExpenseTracker/views/home/HomePageMasterMenuItem.cs create mode 100644 ExpenseTracker/views/pages/CategoryPage.xaml create mode 100644 ExpenseTracker/views/pages/CategoryPage.xaml.cs create mode 100644 ExpenseTracker/views/pages/ExpenseDetailsPage.xaml create mode 100644 ExpenseTracker/views/pages/ExpenseDetailsPage.xaml.cs create mode 100644 ExpenseTracker/views/pages/ExpensePage.xaml create mode 100644 ExpenseTracker/views/pages/ExpensePage.xaml.cs diff --git a/ExpenseTracker.Android/ExpenseTracker.Android.csproj b/ExpenseTracker.Android/ExpenseTracker.Android.csproj index 3794e12..1838732 100644 --- a/ExpenseTracker.Android/ExpenseTracker.Android.csproj +++ b/ExpenseTracker.Android/ExpenseTracker.Android.csproj @@ -63,6 +63,9 @@ 12.0.3 + + 3.0.0.5 + diff --git a/ExpenseTracker.iOS/ExpenseTracker.iOS.csproj b/ExpenseTracker.iOS/ExpenseTracker.iOS.csproj index 4aa5a89..c6ae39c 100644 --- a/ExpenseTracker.iOS/ExpenseTracker.iOS.csproj +++ b/ExpenseTracker.iOS/ExpenseTracker.iOS.csproj @@ -132,6 +132,9 @@ 12.0.3 + + 3.0.0.5 + diff --git a/ExpenseTracker/App.xaml.cs b/ExpenseTracker/App.xaml.cs index 615ecf9..765b6e8 100644 --- a/ExpenseTracker/App.xaml.cs +++ b/ExpenseTracker/App.xaml.cs @@ -14,7 +14,7 @@ namespace ExpenseTracker InitializeComponent(); - /* if (!string.IsNullOrEmpty(Preferences.Get("MyFirebaseRefreshToken", ""))) + /*if (!string.IsNullOrEmpty(Preferences.Get("MyFirebaseRefreshToken", ""))) { MainPage = new NavigationPage(new Home()); } @@ -22,9 +22,9 @@ namespace ExpenseTracker { MainPage = new NavigationPage(new LoginPage()); }*/ - MainPage = new NavigationPage(new LoginPage()); + // MainPage = new NavigationPage(new LoginPage()); - // MainPage = new LoginPage(); + MainPage = new HomePage(); //MainPage = Navigat new LoginPage(); //MainPage = new MainPage(); } diff --git a/ExpenseTracker/ExpenseTracker.csproj b/ExpenseTracker/ExpenseTracker.csproj index 80e3ac8..a742407 100644 --- a/ExpenseTracker/ExpenseTracker.csproj +++ b/ExpenseTracker/ExpenseTracker.csproj @@ -14,11 +14,15 @@ + + + MSBuild:UpdateDesignTimeXaml + MSBuild:UpdateDesignTimeXaml @@ -31,5 +35,23 @@ MSBuild:UpdateDesignTimeXaml + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + \ No newline at end of file diff --git a/ExpenseTracker/model/CatergoryAmount.cs b/ExpenseTracker/model/CatergoryAmount.cs new file mode 100644 index 0000000..a5e19f3 --- /dev/null +++ b/ExpenseTracker/model/CatergoryAmount.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ExpenseTracker.model +{ + class CatergoryAmount + { + + public int id { get; set; } + public double amount { get; set; } + public string categoryName { get; set; } + } +} diff --git a/ExpenseTracker/model/SideDrawerMenu.cs b/ExpenseTracker/model/SideDrawerMenu.cs new file mode 100644 index 0000000..49aa3ac --- /dev/null +++ b/ExpenseTracker/model/SideDrawerMenu.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ExpenseTracker.model +{ + class SideDrawerMenu + { + + public string Title { get; set; } + public string Icon { get; set; } + public Type TargetType { get; set; } + } +} diff --git a/ExpenseTracker/viewModel/FirebaseHelper.cs b/ExpenseTracker/viewModel/FirebaseHelper.cs index 8767df6..0c1c2b9 100644 --- a/ExpenseTracker/viewModel/FirebaseHelper.cs +++ b/ExpenseTracker/viewModel/FirebaseHelper.cs @@ -27,7 +27,7 @@ namespace ExpenseTracker.viewModel id=item.Object.id, - }).ToList(); + }).Reverse().ToList(); } public async Task AddExpense(double amount, string narration, int expenseCategory, string id) @@ -89,12 +89,9 @@ namespace ExpenseTracker.viewModel .Child("Category") .OnceAsync()).Select(item => new ExpenseCategory { - - id = item.Object.id, name= item.Object.name, - }).ToList(); } @@ -143,6 +140,57 @@ namespace ExpenseTracker.viewModel await firebase.Child("Category").Child(toDeletePerson.Key).DeleteAsync(); } + + //Queries + + + //getting total amount of expenses + public async Task GetTotalAmountOfExpense() + { + double totalAmount=0.0; + var allExpense = await GetAllExpense(); + for (int i= 0; i< allExpense.Count;i++) + { + totalAmount += allExpense[i].amount; + + } + + return totalAmount; + } + + + //get total amount spent on each category + public async Task> GetTotalAmountOfExpensePerCategory() + { + List categoryAmount = new List(); + var allCategories = await GetAllCategory(); + var allExpense = await GetAllExpense(); + for (int i = 0; i <= allCategories.Count; i++) + { + double amount = 0; + var currentCategory = allCategories[i]; + for (int j = 0; j <= allExpense.Count; j++) + { + + var currentExpenses = allExpense[j]; + if (currentCategory.id==currentExpenses.expenseCategory) + { + amount += currentExpenses.amount; + } + + } + categoryAmount.Add(new CatergoryAmount + { + amount = amount, + id = currentCategory.id, + categoryName=currentCategory.name, + }); + + } + + return categoryAmount; + } + } } diff --git a/ExpenseTracker/views/auth/ChangePassword.xaml b/ExpenseTracker/views/auth/ChangePassword.xaml new file mode 100644 index 0000000..609bc46 --- /dev/null +++ b/ExpenseTracker/views/auth/ChangePassword.xaml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/ExpenseTracker/views/auth/ChangePassword.xaml.cs b/ExpenseTracker/views/auth/ChangePassword.xaml.cs new file mode 100644 index 0000000..a7135f8 --- /dev/null +++ b/ExpenseTracker/views/auth/ChangePassword.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; +using Xamarin.Forms.Xaml; + +namespace ExpenseTracker.views.auth +{ + [XamlCompilation(XamlCompilationOptions.Compile)] + public partial class ChangePassword : ContentPage + { + public ChangePassword() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/ExpenseTracker/views/auth/LoginPage.xaml b/ExpenseTracker/views/auth/LoginPage.xaml index dc97e9c..170d57a 100644 --- a/ExpenseTracker/views/auth/LoginPage.xaml +++ b/ExpenseTracker/views/auth/LoginPage.xaml @@ -8,7 +8,7 @@ - +