private void UpdateEntity(IBreedEntryEntity entity) { using (var ctx = new HappyDogShowContext()) { DogShow selectedShow = ctx.DogShows.Where(i => i.ID == entity.ShowId).First(); BreedEntry foundEntity = ctx.BreedEntries.Where(d => d.ID == entity.Id).Include(b => b.EnteredClasses).First(); if (foundEntity != null) { if (entity.Classes != null) { foreach (var i in entity.Classes) { // existing class entry if (i.ID > 0) { if (i.IsSelected) { // nothing to do, keep it } else { var foundEntries = ctx.BreedClassEntries.Where(ec => ec.ID == i.ID); if (foundEntries.Count() == 1) { ctx.BreedClassEntries.Remove(foundEntries.First()); } } } // potential new class entry else { if (i.IsSelected) { BreedClass breedClass = ctx.BreedClasses.Where(k => k.ID == i.BreedClassID).First(); foundEntity.EnteredClasses.Add(new BreedClassEntry() { Class = breedClass }); } else { // ignore } } } } foundEntity.Show = selectedShow; foundEntity.Number = entity.Number; ctx.SaveChanges(); } } }
public Task UpdateEntityAsync(IBreedEntryEntity entity) { Task t = Task <int> .Run(() => { UpdateEntity(entity); }); return(t); }
public Task <int> CreateEntityAsync(IBreedEntryEntity entity) { Task <int> t = Task <int> .Run(() => { int newid = CreateEntity(entity); return(newid); }); return(t); }
private int CreateEntity(IBreedEntryEntity entity) { int newid = -1; using (var ctx = new HappyDogShowContext()) { DogRegistration selectedDog = ctx.DogRegistrations.Where(i => i.ID == entity.Dog.Id).First(); DogShow selectedShow = ctx.DogShows.Where(i => i.ID == entity.ShowId).First(); List <BreedClassEntry> enteredClasses = new List <BreedClassEntry>(); foreach (var i in entity.Classes.Where(j => j.IsSelected)) { BreedClass breedClass = ctx.BreedClasses.Where(k => k.ID == i.BreedClassID).First(); enteredClasses.Add(new BreedClassEntry() { Class = breedClass });; } if (string.IsNullOrEmpty(entity.Number)) { var usednumbers = ctx.BreedEntries.Where(be => be.Show.ID == entity.ShowId).Select(be => be.Number).ToList().Distinct().ToList(); if (usednumbers.Count > 0) { int temp; int max = usednumbers.Select(n => int.TryParse(n, out temp) ? temp : 0).Max(); if (max > 0) { entity.Number = (max + 1).ToString(); } } else { entity.Number = ""; } } BreedEntry newEntity = new BreedEntry() { Dog = selectedDog, EnteredClasses = enteredClasses, Show = selectedShow, Number = entity.Number }; ctx.BreedEntries.Add(newEntity); ctx.SaveChanges(); newid = newEntity.ID; } return(newid); }
public Task <IBreedEntryEntity> GetBreedEntryAsync <T>(int id) where T : IBreedEntryEntity, new() { Task <IBreedEntryEntity> t = Task <IBreedEntryEntity> .Run(() => { IBreedEntryEntity entity = GetEntity <T>(id); return(entity); }); return(t); }
private bool EntryHasClassesToSave(IBreedEntryEntity entry) { var selectedClasses = entry.Classes.Where(i => i.IsSelected == true); if (selectedClasses.Count() > 0) { return(true); } else { return(false); } }
public override async Task UpdateEntries() { foreach (IBreedEntryEntityWithAdditionalData entry in Items) { SelectedItem = entry; await Task.Delay(TimeSpan.FromMilliseconds(20)); IBreedEntryEntity actualentry = await _service.GetBreedEntryAsync <BreedEntry>(entry.Id); actualentry.Number = entry.EntryNumber; await _service.UpdateEntityAsync(actualentry); } }
public async override void Prepare() { DogShowList = await _dogShowService.GetDogShowListAsync <DogShowDetail>(); SelectedDogRegistration = await _dogRegistrationService.GetDogRegistrationAsync <DogRegistrationDetail>(data.DogId); IBreedEntryEntity entry = await _breedEntryService.GetBreedEntryAsync <BreedEntry>(data.Id); entry.Classes = await _dogShowService.GetListOfClassEntriesForBreedEntryAsync <BreedClassEntryEntityWithClassDetailForSelection>(data.Id); entry.Dog = SelectedDogRegistration; CurrentEntity = (entry as BreedEntry); CurrentEntity.MarkEntityAsClean(); }