public async Task DeleteExpenseAsync(TripExpense expense)
        {
            var id = expense.Id;

            Expenses.Remove(expense);
            await Save();
        }
Beispiel #2
0
        public void TestRoundAmountToNearestCent()
        {
            TripExpense tripExp = new TripExpense();

            Assert.AreEqual(1.18, tripExp.RoundAmountToNearestCent(1.175));
            Assert.AreEqual(0.98, tripExp.RoundAmountToNearestCent(29.95 / 2 - 14));
        }
 private void AddExpenseButton_Click(object sender, RoutedEventArgs e)
 {
     if (MembersListView.SelectedIndex >= 0)
     {
         Debug.WriteLine(SelectedTrip.Members[MembersListView.SelectedIndex].ToString());
         TripExpense expense = new TripExpense();
         expense.Description = ExpenseDescriptionTextBox.Text;
         string ct   = ExpenseCostTextBox.Text.Replace(" ", string.Empty);
         double cost = 0;
         if (double.TryParse(ct, out cost) && cost > 0)
         {
             expense.Cost = cost;
             SelectedTrip.Members[MembersListView.SelectedIndex].Expenses.Add(expense);
             ExpenseDescriptionTextBox.Text = "";
             ExpenseCostTextBox.Text        = "";
             TripDAO.Update(SelectedTrip);
             ExpensesListView.Items.Refresh();
             DrawChart();
         }
         else
         {
             ShowErrorDialog("Chi phí là một số lớn hơn không    ");
         }
     }
 }
        public async Task <IEnumerable <TripExpense> > GetExpensesAsync()
        {
            var rootFolder = FileSystem.Current.LocalStorage;

            var folder = await rootFolder.CreateFolderAsync(Folder,
                                                            CreationCollisionOption.OpenIfExists);

            var file = await folder.CreateFileAsync(File,
                                                    CreationCollisionOption.OpenIfExists);

            var json = await file.ReadAllTextAsync();

            if (!string.IsNullOrWhiteSpace(json))
            {
                Expenses = DeserializeObject <List <TripExpense> >(json);
            }

            if (Expenses.Count == 0)
            {
                var expense = new TripExpense
                {
                    Billable = true,
                    Category = "Transportation",
                    Name     = "DevWeek 2015 Flight",
                    Price    = "1000.00"
                };
                await SaveExpenseAsync(expense);
            }

            return(Expenses);
        }
        private void ExecuteUpdateExpense(TripExpense expense)
        {
            IsBusy = true;
            var index = Expenses.IndexOf(expense);

            Expenses[index] = expense;
            IsBusy          = false;
        }
        public async Task UpdateExpenseAsync(TripExpense expense)
        {
            if (!initialized)
            {
                await Init();
            }

            await expenseTable.UpdateAsync(expense);
        }
Beispiel #7
0
        public void SplitPaymentAverage()
        {
            TripExpense tripExp = new TripExpense();

            tripExp.MaxPeople    = 3;
            tripExp.TotalExpense = 30.33m;
            var result = tripExp.CalcuateSplitExpenseAverage();

            Assert.AreEqual(result, 10.11m);
        }
        private async Task ExecuteDeleteExpense(TripExpense expense)
        {
            IsBusy = true;
            await dataStore.DeleteExpenseAsync(expense);

            await dataStore.SyncExpensesAsync();

            Expenses.Remove(expense);
            IsBusy = false;
        }
        public DetailsPage(TripExpense expense)
        {
            InitializeComponent();

            foreach (var item in DetailViewModel.Categories)
            {
                PickerCategory.Items.Add(item);
            }

            ViewModel = new DetailViewModel(expense, Navigation);
        }
        public async Task InsertExpenseAsync(TripExpense expense)
        {
            if (!initialized)
            {
                await Init();
            }
            //expense.Id = (Expenses.Count + 1).ToString();
            //Expenses.Add(expense);

            await expenseTable.InsertAsync(expense);
        }
Beispiel #11
0
        public void FinalPaymentCalculation()
        {
            TripExpense tripExp = new TripExpense();
            decimal     value   = -0.01m;
            var         result  = tripExp.IndividualSplitExpense(value);

            Assert.AreEqual(result, "0.01");
            value  = 0.01m;
            result = tripExp.IndividualSplitExpense(value);
            Assert.AreEqual(result, "(0.01)");
        }
Beispiel #12
0
        public void TestGetOwedAmountsWithTwoPaying()
        {
            TripExpense tripExp = new TripExpense();

            tripExp.AddNewExpense(14);
            tripExp.AddNewExpense(15.95);
            // total expense is $29.95 and everyone has to pay $14.98
            ArrayList owedAmounts = tripExp.GetOwedAmounts();

            Assert.AreEqual(0.98, owedAmounts[0]);
            Assert.AreEqual(-0.98, owedAmounts[1]);
        }
        public async Task <TripExpense> InsertExpenseAsync(TripExpense expense)
        {
            if (!initialized)
            {
                await Init();
            }


            await expenseTable.InsertAsync(expense);

            return(expense);
        }
Beispiel #14
0
        public void TestGetOwedAmountsWithOnlyOnePaying()
        {
            TripExpense tripExp = new TripExpense();

            tripExp.AddNewExpense(0);
            tripExp.AddNewExpense(113);
            tripExp.AddNewExpense(0);
            // total expense is $113 and everyone has to pay $37.67
            ArrayList owedAmounts = tripExp.GetOwedAmounts();

            Assert.AreEqual(37.67, owedAmounts[0]);
            Assert.AreEqual(-75.33, owedAmounts[1]);
            Assert.AreEqual(37.67, owedAmounts[2]);
        }
Beispiel #15
0
        public void TestGetOwedAmountsWithEveryonePaying()
        {
            TripExpense tripExp = new TripExpense();

            tripExp.AddNewExpense(51.27);
            tripExp.AddNewExpense(101.35);
            tripExp.AddNewExpense(16.01);
            // total expense is $168.63 and everyone has to pay $56.21
            ArrayList owedAmounts = tripExp.GetOwedAmounts();

            Assert.AreEqual(4.94, owedAmounts[0]);
            Assert.AreEqual(-45.14, owedAmounts[1]);
            Assert.AreEqual(40.2, owedAmounts[2]);
        }
Beispiel #16
0
        public void AddIndividualExpenses()
        {
            TripExpense tripExp = new TripExpense();

            tripExp.MaxPeople = 2;
            tripExp.AddExpenses(0, 5.03m);
            tripExp.AddExpenses(0, 3.01m);
            tripExp.AddExpenses(0, 2.03m);
            tripExp.AddExpenses(1, 5.00m);
            tripExp.AddExpenses(1, 5.00m);
            tripExp.AddExpenses(1, 5.00m);
            Assert.IsTrue(tripExp.CountExpense() == 6);
            Assert.IsTrue(tripExp.IndividualExpense(0) == 10.07m);
            Assert.IsTrue(tripExp.IndividualExpense(1) == 15m);
            ;
        }
        public void CalculateExpenses_ShouldInvokeReadFile_WhenReadLine()
        {
            //Arrange
            IList <CampingTrip> trips = new List <CampingTrip>();
            var fileReader            = new Mock <IFilereader>();

            fileReader.Setup(x => x.ReadFile(It.IsAny <string>())).Returns(trips);

            //Act
            var expenseCalculator = new TripExpense(fileReader.Object);

            expenseCalculator.CalculateExpenses("anystring");

            //Assert
            fileReader.Verify(m => m.ReadFile(It.IsAny <string>()), Times.Once());
        }
Beispiel #18
0
        public void SaveFriendsTripExpenseEntry(SaveTripExpense saveTripExp)
        {
            var saveTripExpense = new TripExpense
            {
                TripId       = saveTripExp.tripId,
                FriendId     = saveTripExp.friendId,
                UserId       = saveTripExp.UserId,
                ExpenseOnId  = saveTripExp.ExpenseOnId,
                Descriptions = saveTripExp.Description,
                Dates        = saveTripExp.Dates,
                Amount       = saveTripExp.Amount,
                Created_On   = DateTime.Now,
                Status       = 1
            };

            _db.TripExpenses.Add(saveTripExpense);
            _db.SaveChanges();
        }
Beispiel #19
0
 public DetailViewModel(TripExpense expense, INavigation navigation)
 {
     this.navigation = navigation;
     if (expense == null)
     {
         isNew   = true;
         expense = new TripExpense()
         {
             Name     = string.Empty,
             Category = Categories[2],
             Price    = string.Empty
         };
     }
     this.expense = expense;
     name         = expense.Name;
     category     = Categories.IndexOf(expense.Category);
     billable     = expense.Billable;
     price        = expense.Price;
 }
        public async Task <TripExpense> SaveExpenseAsync(TripExpense expense)
        {
            if (string.IsNullOrWhiteSpace(expense.Id))
            {
                expense.Id = DateTime.Now.ToString();
                Expenses.Add(expense);
            }
            else
            {
                var found = Expenses.FirstOrDefault(e => e.Id == expense.Id);
                if (found != null)
                {
                    found.SyncProperties(expense);
                }
            }
            await Save();

            return(expense);
        }
 public Task <int> CreateExpense(TripExpense trip)
 {
     throw new NotImplementedException();
 }
Beispiel #22
0
 public Task UpdateExpenseAsync(TripExpense expense)
 {
     return(expenseTable.UpdateAsync(expense));
 }
Beispiel #23
0
 public Task InsertExpenseAsync(TripExpense expense)
 {
     return(expenseTable.InsertAsync(expense));
 }
 public async Task <TripExpense> UpdateExpenseAsync(TripExpense expense)
 {
     return(await SaveExpenseAsync(expense));
 }