public async Task <ActionResult <PostSelectDto> > Craete(PostDto postDto, CancellationToken cancellationToken) { #region Old //var model = new Post //{ // Title = postDto.Title, // Description = postDto.Description, // CategoryId = postDto.CategoryId, // AuthorId = postDto.AuthorId //}; //var model = AutoMapper.Mapper.Map<Post>(postDto); var model = postDto.ToEntity(); await _repository.AddAsync(model, cancellationToken); //await _repository.LoadReferenceAsync(model, p => p.Category, cancellationToken); //await _repository.LoadReferenceAsync(model, p => p.Author, cancellationToken); //var modelDto = await _repository.TableNoTracking.Include(p => p.Category). // Include(c => c.Author).SingleOrDefaultAsync(d => d.Id == model.Id, cancellationToken); //var Result = new PostDto //{ // Id = model.Id, // Title = model.Title, // Description = model.Description, // CategoryId = model.CategoryId, // AuthorId = model.AuthorId, // CategoryName = model.Category.Name, // AuthorFullName = model.Author.FullName //}; //var Result = AutoMapper.Mapper.Map<PostDto>(modelDto); var Result = await _repository.TableNoTracking.ProjectTo <PostSelectDto>().SingleOrDefaultAsync(postdto => postdto.Id == model.Id, cancellationToken); //var resultDto = await _repository.TableNoTracking.Select(p => new PostDto //{ // Id = p.Id, // Title = p.Title, // Description = p.Description, // CategoryId = p.CategoryId, // AuthorId = p.AuthorId, // AuthorFullName = p.Author.FullName, // CategoryName = p.Category.Name //}).SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); return(Result); #endregion }
public async Task <ApiResult <PostDto> > Update(Guid id, PostDto dto, CancellationToken cancellationToken) { var model = await _repository.GetByIdAsync(cancellationToken, id); //Mapper.Map(dto, model); model = dto.ToEntity(model); #region old code //model.Title = dto.Title; //model.Description = dto.Description; //model.CategoryId = dto.CategoryId; //model.AuthorId = dto.AuthorId; #endregion await _repository.UpdateAsync(model, cancellationToken); #region old code //var resultDto = await _repository.TableNoTracking.Select(p => new PostDto //{ // Id = p.Id, // Title = p.Title, // Description = p.Description, // CategoryId = p.CategoryId, // AuthorId = p.AuthorId, // AuthorFullName = p.Author.FullName, // CategoryName = p.Category.Name //}).SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); #endregion var resultDto = await _repository.TableNoTracking.ProjectTo <PostDto>().SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); return(resultDto); }
public async Task <ActionResult> Post(PostDto postDto) { //Create a new Post with mapped properties from PostDto var post = postDto.ToEntity(); await _applicationDbContext.Posts.AddAsync(post); await _applicationDbContext.SaveChangesAsync(); return(Ok()); }
public async Task <ApiResult <PostSelectDto> > Create(PostDto dto, CancellationToken cancellationToken) { //var model = Mapper.Map<Post>(dto); var model = dto.ToEntity(_mapper); #region old code //var model = new Post //{ // Title = dto.Title, // Description = dto.Description, // CategoryId = dto.CategoryId, // AuthorId = dto.AuthorId //}; #endregion await _repository.AddAsync(model, cancellationToken); #region old code //await _repository.LoadReferenceAsync(model, p => p.Category, cancellationToken); //await _repository.LoadReferenceAsync(model, p => p.Author, cancellationToken); //model = await _repository.TableNoTracking // .Include(p => p.Category) // .Include(p =>p.Author) // .SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); //var resultDto = new PostDto //{ // Id = model.Id, // Title = model.Title, // Description = model.Description, // CategoryId = model.CategoryId, // AuthorId = model.AuthorId, // AuthorName = model.Author.FullName, // CategoryName = model.Category.Name //}; //var resultDto = await _repository.TableNoTracking.Select(p => new PostDto //{ // Id = p.Id, // Title = p.Title, // Description = p.Description, // CategoryId = p.CategoryId, // AuthorId = p.AuthorId, // AuthorFullName = p.Author.FullName, // CategoryName = p.Category.Name //}).SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); #endregion var resultDto = await _repository.TableNoTracking.ProjectTo <PostSelectDto>(_mapper.ConfigurationProvider) .SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); return(resultDto); }
public async Task <ActionResult> Put(long id, PostDto postDto) { var post = await _applicationDbContext.Posts.FindAsync(id); //Change properties values of a finded Post by id, from PostDto var updatePost = postDto.ToEntity(post); _applicationDbContext.Posts.Update(updatePost); await _applicationDbContext.SaveChangesAsync(); return(Ok()); }
public async Task <ApiResult <PostSelectDto> > Update(Guid id, PostDto dto, CancellationToken cancellationToken) { //var postDto = new PostDto(); //Create //var post = postDto.ToEntity(); // DTO => Entity //Update //var updatePost = postDto.ToEntity(post); // DTO => Entity (an exist) //GetById //var postDto = PostDto.FromEntity(model); // Entity => DTO var model = await _repository.GetByIdAsync(cancellationToken, id); //Mapper.Map(dto, model); model = dto.ToEntity(_mapper, model); #region old code //model.Title = dto.Title; //model.Description = dto.Description; //model.CategoryId = dto.CategoryId; //model.AuthorId = dto.AuthorId; #endregion await _repository.UpdateAsync(model, cancellationToken); #region old code //var resultDto = await _repository.TableNoTracking.Select(p => new PostDto //{ // Id = p.Id, // Title = p.Title, // Description = p.Description, // CategoryId = p.CategoryId, // AuthorId = p.AuthorId, // AuthorFullName = p.Author.FullName, // CategoryName = p.Category.Name //}).SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); #endregion var resultDto = await _repository.TableNoTracking.ProjectTo <PostSelectDto>(_mapper.ConfigurationProvider) .SingleOrDefaultAsync(p => p.Id == model.Id, cancellationToken); return(resultDto); }