private async Task FillPlaceType(string parentType, string[] childTypes, string[] reminders) { await _database.InsertAsync(new ParentPlaceTypeItem { Name = parentType, IsOn = true }); ParentPlaceTypeItem parentTypeItem = await _database.Table <ParentPlaceTypeItem>().Where(p => p.Name.Equals(parentType)).FirstOrDefaultAsync(); if (parentTypeItem == null) { throw new System.ArgumentException("Parent type name was not found", "parentType"); } foreach (string childType in childTypes) { await _database.InsertAsync(new PlaceTypeItem { ParentPlaceTypeID = parentTypeItem.ID, Name = childType, OnEnter = !string.IsNullOrWhiteSpace(reminders[0]), OnExit = !string.IsNullOrWhiteSpace(reminders[1]), OnEnterReminder = reminders[0], OnExitReminder = reminders[1], IsOn = true }); } }
async void OnItemTapped(object sender, ItemTappedEventArgs e) { if (e.Item == null) { return; } ParentPlaceTypeItem parentType = e.Item as ParentPlaceTypeItem; await Navigation.PushAsync(new PlaceTypesDetailsPage(parentType)); }
async void OnItemToggle(object sender, ToggledEventArgs e) { if (_initial) { return; } Switch sw = sender as Switch; ParentPlaceTypeItem parentType = sw.BindingContext as ParentPlaceTypeItem; await App.Database.UpdateParentPlaceTypeAsync(parentType); }
public Task <int> SaveParentPlaceTypeAsync(ParentPlaceTypeItem item) { if (item.ID != 0) { return(_database.UpdateAsync(item)); } else { return(_database.InsertAsync(item)); } }
private async Task UpdateTypesAsync(ParentPlaceTypeItem parentType) { List <PlaceTypeItem> placeTypesToUpdate = await GetPlaceTypesAsync(parentType); if (placeTypesToUpdate != null) { foreach (PlaceTypeItem item in placeTypesToUpdate) { item.IsOn = parentType.IsOn; await SavePlaceTypeAsync(item); } } else { throw new System.ArgumentException("Type name was not found", "typeName"); } }
// child place types public Task <List <PlaceTypeItem> > GetPlaceTypesAsync(ParentPlaceTypeItem parentType) { return(_database.Table <PlaceTypeItem>().Where(t => t.ParentPlaceTypeID == parentType.ID).ToListAsync()); }
public async Task UpdateParentPlaceTypeAsync(ParentPlaceTypeItem item) { await SaveParentPlaceTypeAsync(item); await UpdateTypesAsync(item); }
public PlaceTypesDetailsPage(ParentPlaceTypeItem item) { InitializeComponent(); parentType = item; this.Title = parentType.Name + " Type Details"; }