Example #1
0
        public async Task <Response <ProjectDto> > Handle(ProjectsCreateCommand request, CancellationToken cancellationToken)
        {
            var entity        = _mapper.Map <ProjectCreateDto, Domain.Project>(request.Dto);
            var entitiesEntry = await _context.Projects.AddIfNotExistsAsync(entity, x => x.Name == entity.Name, cancellationToken);

            var result = await _context.SaveChangesAsync(cancellationToken);

            var entitySaved = _mapper.Map <Domain.Project, ProjectDto>(entity);
            var response    = new Response <ProjectDto>(entitySaved);

            return(response);
        }
        public async Task <HttpResponseMessage> PostAsync <TBody>(string path, [FromBody] ProjectCreateDto dto)
        {
            _logger.LogInformation($"POST: Creating resource of type {typeof(TBody).Name}");
            var command = new ProjectsCreateCommand(dto);

            var response = await _mediator.Send(command);

            var result = new HttpResponseMessage
            {
                StatusCode = System.Net.HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(response.Data), System.Text.Encoding.UTF8,
                                               "application/json")
            };

            return(result);
        }