Beispiel #1
0
        public async Task <List <RunewordResponse> > CreateOrUpdateRunewords(List <CreateRunewordRequest> createRunewordsRequest)
        {
            var runewordsToUpdate = new List <CreateRunewordRequest>();
            var runewordsToCreate = new List <CreateRunewordRequest>();
            var allRunewords      = await _runewordRespository.AllAsync();

            foreach (var runeword in createRunewordsRequest)
            {
                Runeword foundRuneword = allRunewords.Find(x => x.Code == runeword.Code);
                if (foundRuneword != null)
                {
                    runeword.Id = foundRuneword.Id;
                    runewordsToUpdate.Add(runeword);
                }
                else
                {
                    runewordsToCreate.Add(runeword);
                }
            }
            await _runewordRespository.AddMultipleAsync(_mapper.Map <List <Runeword> >(runewordsToCreate));

            await _runewordRespository.BulkUpdate(_mapper.Map <List <Runeword> >(runewordsToUpdate));

            return(_mapper.Map <List <RunewordResponse> >(createRunewordsRequest));
        }
 public RunewordListItem(Runeword runeword)
 {
     Runeword = runeword ?? throw new ArgumentNullException(nameof(runeword));
 }