/// <summary>
 /// Creates a new item
 /// </summary>
 /// <returns></returns>
 private async Task CreateNew()
 {
     await Task.Factory.StartNew(() => {
         //If there aren't any new items we add one.
         if (!items.Where(i => i.IsNew).Any())
         {
             T item = new T();
             INorthwindItemViewModel <T> vm = GetNorthwindItemViewModel(item, this.service, true);
             items.Add(vm);
         }
     });
 }
        /// <summary>
        /// Refreshes the items collection
        /// </summary>
        /// <returns></returns>
        private async Task Refresh()
        {
            var responseItems = await GetCollection();

            items.Clear();

            foreach (var item in responseItems)
            {
                INorthwindItemViewModel <T> vm = GetNorthwindItemViewModel(item, this.service);
                items.Add(vm);
            }

            OnAfterRefresh(items);
        }