Esempio n. 1
0
        private async Task ReplaceEvents(
            Data.Outbreak outbreak,
            string outbreakEventType,
            IEnumerable <string> eventData,
            DateTime eventDate,
            params string[] codeType
            )
        {
            outbreak.OutbreakEvents
            .Where(e => e.CdEventType == outbreakEventType)
            .ToList()
            .ForEach(e => writeContext.OutbreakEvents.Remove(e));

            if (eventData == null)
            {
                return;
            }

            var tasks = eventData
                        .Select(async e => new OutbreakEvents
            {
                IdOutbreak  = outbreak.IdOutbreak,
                CdEventType = outbreakEventType,
                CdSubType   = e,
                DsDesc      = await codeRepository.GetDescription(e, codeType),
                DtEvent     = eventDate,
                IdEvent     = (int)await sequenceGenerator.GetNextAsync(SequenceType.OutbreakEventId),
            })
                        .ToArray();

            await Task.WhenAll(tasks);

            foreach (var task in tasks)
            {
                outbreak.OutbreakEvents.Add(task.Result);
            }
        }