Пример #1
0
        protected IActionResult CreateResource <TCreateDto, TGetDto>(TCreateDto createDto)
            where TCreateDto : ICreateDto <TEntity>
            where TGetDto : IGetDto <TEntity>
        {
            if (createDto == null)
            {
                return(BadRequest(InvalidData()));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(InvalidData())); // TODO: -- 400 missing required fields, consider mentioning which
            }
            var resource = Map <TEntity>(createDto);
            var result   = ResourceDataService.AreRelationshipsValid(resource);

            if (!result.IsValid)
            {
                return(NotFound(ParentNotFound(result.NotFoundParentId)));
            }
            ResourceDataService.Create(resource);
            ResourceDataService.SaveChanges();
            CreatedResource = resource;
            var resourceToReturn = Map <TGetDto>(resource);

            return(CreatedAtRoute(_getResourceRouteName, new { id = resourceToReturn.Id }, resourceToReturn));
        }