public Task <bool> AddAsync(params object[] objectsToAdd) { return(Task.Factory.StartNew(() => { List <Book> books = new List <Book>(); List <Magazine> mags = new List <Magazine>(); List <Movie> movies = new List <Movie>(); List <Music> music = new List <Music>(); List <Person> people = new List <Person>(); List <ModelCopy> mc = new List <ModelCopy>(); List <Log> log = new List <Log>(); foreach (var item in objectsToAdd) { switch (GetTypeNum(item.GetType())) { case TypeEnum.Book: { books.Add((Book)item); break; } case TypeEnum.Magazine: { mags.Add((Magazine)item); break; } case TypeEnum.Movie: { movies.Add((Movie)item); break; } case TypeEnum.Music: { music.Add((Music)item); break; } case TypeEnum.Person: { people.Add((Person)item); break; } case TypeEnum.ModelCopy: { mc.Add((ModelCopy)item); break; } case TypeEnum.Log: { log.Add((Log)item); break; } default: { return false; } } } try { if (books.Count > 0) { _db.CreateBooks(books.ToArray()); } if (mags.Count > 0) { _db.CreateMagazines(mags.ToArray()); } if (movies.Count > 0) { _db.CreateMovies(movies.ToArray()); } if (music.Count > 0) { _db.CreateMusic(music.ToArray()); } if (people.Count > 0) { _db.CreatePeople(people.ToArray()); } if (mc.Count > 0) { _db.CreateModelCopies(mc.ToArray()); } if (log.Count > 0) { _db.AddLogs(log.ToArray()); } return true; } catch { return false; } })); }