/// <summary>
        /// save current expense
        /// </summary>
        void SaveExpense()
        {
            CurrentExpense.Description  = expenseDescription.Text;
            CurrentExpense.Cost         = expenseAmount.Text.ToDecimal(CultureInfo.InvariantCulture);
            CurrentExpense.AssignmentId = Assignment.Id;

            var task = expenseViewModel.SaveExpenseAsync(Assignment, CurrentExpense);

            if (expenseViewModel.Photo != null)
            {
                task = task.ContinueWith(_ => {
                    expenseViewModel.Photo.ExpenseId = CurrentExpense.Id;
                    expenseViewModel.Photo.Image     = imageBitmap.ToByteArray();
                    System.Console.WriteLine(expenseViewModel.Photo.Image.Length);
                }).ContinueWith(_ => expenseViewModel.SavePhotoAsync());
            }

            task.ContinueWith(_ => {
                activity.RunOnUiThread(() => {
                    var fragment = activity.FragmentManager.FindFragmentById <ExpenseFragment> (Resource.Id.contentFrame);
                    fragment.ReloadExpenseData();
                    Dismiss();
                });
            });
        }