/// <summary>
        /// Returns true always
        /// </summary>
        /// <returns></returns>
        public async Task <bool> SyncExpenses()
        {
            try
            {
                var expenses = await GetExpenses();

                //syncs if we were offline
                foreach (var item in expenses)
                {
                    //new item added while offline
                    if (string.IsNullOrWhiteSpace(item.AzureId))
                    {
                        await azureService.InsertExpenseAsync(item);

                        item.IsDirty = false;
                        db.SaveItem(item);
                    }
                    else if (item.IsDirty) //updated while offline
                    {
                        await azureService.UpdateExpenseAsync(item);

                        item.IsDirty = false;
                        db.SaveItem(item);
                    }
                }

                //sync from online.
                var items = await azureService.GetExpensesAsync();

                foreach (var expense in items)
                {
                    var item = db.GetItem(expense.AzureId);
                    if (item == null)
                    {
                        item = new Expense(expense);
                    }
                    else
                    {
                        item.SyncProperties(expense);
                    }
                    db.SaveItem(item);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }