/// <summary> /// Removes an instance of CatalogueCollectionProduct from a CommercialCatalogue's CatalogueCollection. /// </summary> /// <param name="deleteCatalogueCollectionProductModelView">DeleteCatalogueCollectionProductModelView with the CustomizedProduct's, CustomizedProductCollection's and CommercialCatalogue's identifiers.</param> ///<exception cref="ResourceNotFoundException">Thrown when no CommercialCatalogue, CatalogueCollection or CatalogueCollectionProduct could be found.</exception> public void deleteCatalogueCollectionProduct(DeleteCatalogueCollectionProductModelView deleteCatalogueCollectionProductModelView) { CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); CommercialCatalogue commercialCatalogue = catalogueRepository.find(deleteCatalogueCollectionProductModelView.commercialCatalogueId); if (commercialCatalogue == null) { throw new ResourceNotFoundException(string.Format(CATALOGUE_NOT_FOUND_BY_ID, deleteCatalogueCollectionProductModelView.commercialCatalogueId)); } CatalogueCollection catalogueCollection = commercialCatalogue.catalogueCollectionList .Where(cc => cc.customizedProductCollection.Id == deleteCatalogueCollectionProductModelView.customizedProductCollectionId).SingleOrDefault(); if (catalogueCollection == null) { throw new ResourceNotFoundException(string.Format( CATALOGUE_COLLECTION_NOT_FOUND_BY_ID, deleteCatalogueCollectionProductModelView.customizedProductCollectionId, deleteCatalogueCollectionProductModelView.commercialCatalogueId )); } CustomizedProduct customizedProduct = catalogueCollection.catalogueCollectionProducts .Where(ccp => ccp.customizedProductId == deleteCatalogueCollectionProductModelView.customizedProductId) .Select(ccp => ccp.customizedProduct).SingleOrDefault(); if (customizedProduct == null) { throw new ResourceNotFoundException(string.Format( CUSTOMIZED_PRODUCT_NOT_FOUND_BY_ID, deleteCatalogueCollectionProductModelView.customizedProductCollectionId, deleteCatalogueCollectionProductModelView.customizedProductId )); } catalogueCollection.removeCustomizedProduct(customizedProduct); catalogueRepository.update(commercialCatalogue); }
public ActionResult deleteCatalogueCollectionProduct(long commercialCatalogueId, long customizedProductCollectionId, long customizedProductId) { try { DeleteCatalogueCollectionProductModelView deleteCatalogueCollectionProductModelView = new DeleteCatalogueCollectionProductModelView(); deleteCatalogueCollectionProductModelView.commercialCatalogueId = commercialCatalogueId; deleteCatalogueCollectionProductModelView.customizedProductCollectionId = customizedProductCollectionId; deleteCatalogueCollectionProductModelView.customizedProductId = customizedProductId; new core.application.CommercialCatalogueController().deleteCatalogueCollectionProduct(deleteCatalogueCollectionProductModelView); return(NoContent()); } catch (ResourceNotFoundException e) { return(NotFound(new SimpleJSONMessageService(e.Message))); } catch (Exception) { return(StatusCode(500, new SimpleJSONMessageService(UNEXPECTED_ERROR))); } }