Ejemplo n.º 1
0
        public List <Person> AddPersons(List <Person> updatedPersons)
        {
            var           isUpdated = false;
            List <Person> response;

            lock (Persons)
            {
                response = Persons.Except(updatedPersons).ToList();

                foreach (var person in updatedPersons)
                {
                    var p = Persons.FirstOrDefault(p1 => p1.Id == person.Id);

                    if (p == null)
                    {
                        Persons.Add(person.Copy());
                        isUpdated = true;
                    }
                    else if (p.IsRemoved == false && person.IsRemoved)
                    {
                        p.IsRemoved = true;
                    }
                }

                if (isUpdated)
                {
                    Persons.Sort((p1, p2) => p1.Id.CompareTo(p2.Id));
                    PersonCount = Persons.Count;
                }
            }

            return(response);
        }