Ejemplo n.º 1
0
        public async void SearchForFirstNameReturnsCorrectEntries()
        {
            var repo = new TotemEntryRepository(_dbContext);

            var totemEntry = new TotemEntry
            {
                Adjectief = _adjective,
                Leiding   = _leader2,
                Totem     = _totem
            };

            _dbContext.TotemEntries.Add(totemEntry);
            _dbContext.SaveChanges();

            var resourceParameters = new ResourceParameters
            {
                Query = "rag"
            };


            var result = repo.FindAll(resourceParameters);

            Assert.Single(result);
        }
        public async Task <BasicTotemEntryDTO> AddEntryAsync(CreateTotemEntryDTO viewmodel)
        {
            var leiding = await _leidingRepository.FindByIdAsync(viewmodel.LeidingId);

            if (leiding == null)
            {
                throw new EntityNotFoundException($"Leiding met id {viewmodel.LeidingId} bestaat niet.");
            }

            //Check if leiding already has a totem
            var totemForLeiding = await _totemEntryRepository.FindByLeidingIdAsync(leiding.Id);

            if (totemForLeiding != null)
            {
                throw new EntityExistsException(
                          $"{totemForLeiding.Leiding.Voornaam} {totemForLeiding.Leiding.Naam} heeft al een totem.");
            }

            var totem = await _totemRepository.FindByIdAsync(viewmodel.TotemId);

            if (totem == null)
            {
                throw new EntityNotFoundException($"Totem met id {viewmodel.TotemId} werd niet gevonden");
            }

            var adjectief = await _adjectiefRepository.FindByIdAsync(viewmodel.AdjectiefId);

            if (adjectief == null)
            {
                throw new EntityNotFoundException($"Adjectief met id {viewmodel.AdjectiefId} werd niet gevonden");
            }

            var newEntry = new TotemEntry
            {
                Adjectief    = adjectief,
                DatumGegeven = viewmodel.DatumGegeven.ToLocalTime(),
                Leiding      = leiding,
                Totem        = totem
            };

            if (viewmodel.VoorouderId != 0)
            {
                var voorouder = await _totemEntryRepository.FindByIdAsync(viewmodel.VoorouderId);

                if (voorouder == null)
                {
                    throw new EntityNotFoundException($"Voorouder met id {viewmodel.VoorouderId} werd niet gevonden.");
                }


                newEntry.Voorouder = voorouder;
            }

            await _totemEntryRepository.AddAsync(newEntry);

            await _totemEntryRepository.SaveChangesAsync();

            var model = _mapper.Map <BasicTotemEntryDTO>(newEntry);

            return(model);
        }