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);
            }
        }
Exemple #7
0
        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);
            }
        }
Exemple #8
0
        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();
        }