示例#1
0
        /// <summary>
        /// 书籍管理逻辑:新增书籍,同时看是否是新的出版社,如果是,则新增该书的出版社
        /// 因仅为Demo程序,为表达<see cref="NKnife.Storages"/>模块的设计与使用,在业务逻辑上并没有进行十分严谨的进行设计。
        /// </summary>
        public async void AddBookAsync(params BookVo[] books)
        {
            var pubList  = new List <Publisher>();
            var bookList = new List <Book>();

            foreach (var book in books)
            {
                var has = pubList.Find((p) => p.Name == book.Publisher.Name);
                if (has == null)
                {
                    var pub = _mapper.Map <Publisher>(book.Publisher);
                    pubList.Add(pub);
                }
                else
                {
                    book.Publisher.Id = has.Id;
                }
                bookList.Add(_mapper.Map <Book>(book));
            }

            await _publisherWrite.InsertManyAsync(pubList);

            Console.WriteLine($"新增出版社,计{pubList.Count}个,成功。");
            await _bookWrite.InsertManyAsync(bookList);

            Console.WriteLine($"新增书籍,计{bookList.Count}本,成功。");
        }
示例#2
0
        public async Task AddPersonAsync(PersonVo[] people)
        {
            var pub = _mapper.Map <Person[]>(people);
            await _personWrite.InsertManyAsync(pub);

            Console.WriteLine($"新增读者{pub.Length}个,完成。");
        }