public static Expense ToModel(this IExpenseEntity entity)
        {
            var expense = new Expense
            {
                Id                  = new StorageKey(KeyGenerator.ExpenseEntitySuffix(entity.RowKey)).InvertedTicks,
                Approved            = entity.Approved.HasValue ? entity.Approved.Value : false,
                CostCenter          = entity.CostCenter,
                Date                = entity.Date.HasValue ? entity.Date.Value : DateTime.UtcNow,
                ReimbursementMethod = (ReimbursementMethod)Enum.Parse(typeof(ReimbursementMethod), entity.ReimbursementMethod),
                Title               = entity.Title,
                UserName            = entity.PartitionKey.DecodePartitionAndRowKey(),
                ApproverName        = entity.ApproverName
            };

            return(expense);
        }
        public void UpdateApproved(Expense expense)
        {
            var context = new ExpenseDataContext(this.account);

            IExpenseEntity expenseRow = GetExpenseRowById(context, expense.UserName, expense.Id);

            expenseRow.Approved = expense.Approved;

            var queue = new AzureQueue <ApprovedExpenseMessage>(this.account, AzureStorageNames.ApprovedExpenseMessage);

            queue.AddMessage(new ApprovedExpenseMessage {
                ExpenseId = expense.Id, ApproveDate = DateTime.UtcNow, Username = expense.UserName
            });

            context.UpdateObject(expenseRow);
            context.SaveChanges();
        }