LibiadaWeb.Models.Repositories.Sequences.ElementRepository.CreateLackingElements C# (CSharp) Method

CreateLackingElements() private method

The create lacking elements.
private CreateLackingElements ( Alphabet libiadaAlphabet, int notationId ) : void
libiadaAlphabet Alphabet /// The libiada alphabet. ///
notationId int /// The notation id. ///
return void
        private void CreateLackingElements(Alphabet libiadaAlphabet, int notationId)
        {
            var newElements = new List<Element>();
            List<string> elements = (from IBaseObject element in libiadaAlphabet select element.ToString()).ToList();

            var existingElements = db.Element.Where(e => elements.Contains(e.Value) && e.NotationId == notationId).Select(e => e.Value);

            var notExistingElements = elements.Where(e => !existingElements.Contains(e)).ToList();

            foreach (var element in notExistingElements)
            {
                var newElement = new Element
                {
                    Value = element,
                    Name = element,
                    NotationId = notationId
                };
                newElements.Add(newElement);
            }

            db.Element.AddRange(newElements);
            db.SaveChanges();
        }