예제 #1
0
        public async Task <IActionResult> CreateProvider(NewCatalogueItemDto catalogueItem)
        {
            try
            {
                //TODO: verificare si pe CategoryId

                var catalogueDto = _catalogueService.GetCatalogueByIdAsync(catalogueItem.CatalogueId).Result;

                if (catalogueDto == null)
                {
                    ModelState.AddModelError(
                        "CatalogueId",
                        "Unexisting catalog!");
                    return(BadRequest(ModelState));
                }

                if (await _catalogueItemService.CatalogueItemExistsAsync(catalogueItem.Name, catalogueDto.Provider.Id))
                {
                    ModelState.AddModelError(
                        "Name",
                        "A CatalogueItem with the same name already exists into the database!");
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var insertedCatalogueItem = await _catalogueItemService.CreateAsync(catalogueItem);

                if (insertedCatalogueItem == null)
                {
                    return(Problem());
                }

                // metoda va retuna doar Id-ul obiectul creat
                // return CreatedAtRoute("GetCatalogueItem", new { itemId = insertedCatalogueItem });

                // return Id + obiectul creat
                return(CreatedAtRoute("GetCatalogueItem", new { itemId = insertedCatalogueItem.Id }, insertedCatalogueItem));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Failed to succeed the operation!"));
            }
        }