private void UpdateEntity(IHandlerEntryEntity entity)
        {
            using (var ctx = new HappyDogShowContext())
            {
                HandlerEntry foundEntity = ctx.HandlerEntries.Where(d => d.ID == entity.Id).First();

                if (foundEntity != null)
                {
                    if (entity.Dog != null)
                    {
                        DogRegistration selectedDog = ctx.DogRegistrations.Where(i => i.ID == entity.Dog.Id).First();
                        foundEntity.Dog = selectedDog;
                    }

                    if (entity.DogShow != null)
                    {
                        DogShow selectedShow = ctx.DogShows.Where(i => i.ID == entity.DogShow.Id).First();
                        foundEntity.Show = selectedShow;
                    }

                    if (entity.Class != null)
                    {
                        HandlerClass selectedClass = ctx.HandlerClasses.Where(i => i.ID == entity.Class.Id).First();
                        foundEntity.EnteredClass = selectedClass;
                    }

                    foundEntity.Number = entity.Number;

                    ctx.SaveChanges();
                }
            }
        }
        private int CreateEntity(IHandlerEntryEntity 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.DogShow.Id).First();
                HandlerClass        selectedClass  = ctx.HandlerClasses.Where(i => i.ID == entity.Class.Id).First();
                HandlerRegistration selectedHander = ctx.HandlerRegistrations.Where(i => i.ID == entity.Handler.Id).First();

                HandlerEntry newEntity = new HandlerEntry()
                {
                    Dog          = selectedDog,
                    Show         = selectedShow,
                    EnteredClass = selectedClass,
                    Handler      = selectedHander
                };

                ctx.HandlerEntries.Add(newEntity);
                ctx.SaveChanges();

                newid = newEntity.ID;
            }

            return(newid);
        }
        public Task UpdateEntityAsync(IHandlerEntryEntity entity)
        {
            Task t = Task <int> .Run(() =>
            {
                UpdateEntity(entity);
            });

            return(t);
        }
        public Task <int> CreateEntityAsync(IHandlerEntryEntity entity)
        {
            Task <int> t = Task <int> .Run(() =>
            {
                int newid = CreateEntity(entity);
                return(newid);
            });

            return(t);
        }
        public Task <IHandlerEntryEntity> GetHandlerEntryAsync <T>(int id)
            where T : IHandlerEntryEntity, new()
        {
            Task <IHandlerEntryEntity> t = Task <IHandlerEntryEntity> .Run(() =>
            {
                IHandlerEntryEntity entity = GetEntity <T>(id);
                return(entity);
            });

            return(t);
        }
        public override async Task UpdateEntries()
        {
            foreach (IHandlerEntryEntityWithAdditionalData entry in Items)
            {
                SelectedItem = entry;
                await Task.Delay(TimeSpan.FromMilliseconds(20));

                IHandlerEntryEntity actualentry = await _service.GetHandlerEntryAsync <HandlerEntry>(entry.Id);

                actualentry.Number = entry.EntryNumber;
                await _service.UpdateEntityAsync(actualentry);
            }
        }
        private bool EntryHasDataToSave(IHandlerEntryEntity entry)
        {
            if (entry.Class == null)
            {
                return(false);
            }

            if (entry.Dog == null)
            {
                return(false);
            }

            return(true);
        }