public void CreateAuthorDtoForAuthor() { IAuthor author = NetworkModel.Factory.CreateObject <IAuthor>(); author.Id = 1; author.FirstName = "Firstname"; author.LastName = "Lastname"; author.NickName = "Nickname"; Shared.Logic.WebModel.IAuthor authorDto = Mapper.MapEntities <IAuthor, Logic.WebModel.IAuthor>(author); Assert.NotNull(authorDto); Assert.Equal(author.Id, authorDto.Id); Assert.Equal(author.FirstName, authorDto.FirstName); Assert.Equal(author.LastName, authorDto.LastName); Assert.Equal(author.NickName, authorDto.NickName); }
public Shared.Logic.WebModel.IAuthor AddAuthor(Shared.Logic.WebModel.IAuthor author) { if (author == null) { return(null); } IAuthor dataAuthor = Mapper.MapEntities <Shared.Logic.WebModel.IAuthor, IAuthor>(author); if (_dataContext is null || dataAuthor is null) { return(null); } lock (_authorsLock) { if (_dataContext.Authors.Select(a => a.Id).Contains(author.Id)) { return(author); } lock (_booksLock) { for (int i = 0; i < dataAuthor.Books.Count(); ++i) { IBook original = _dataContext.Books.FirstOrDefault(b => b.Id == dataAuthor.Books[i].Id); if (original != null) { dataAuthor.Books[i] = original; } } foreach (IBook book in dataAuthor.Books.Where(b => !_dataContext.Books.Select(a => a.Id).Contains(b.Id))) { _dataContext.AddBook(book); } } _dataContext.AddAuthor(dataAuthor); } return(author); }