/// <summary> /// Retrieves an instance of CommercialCatalogue stored in the repository with a matching identifier. /// </summary> /// <param name="findCommercialCatalogueModelView">FindCommercialCatalogueModelView with the identifier.</param> /// <returns>Instance of GetCommercialCatalogueModelView representing the instance of CommercialCatalogue.</returns> /// <exception cref="ResourceNotFoundException">Thrown when no instance of CommercialCatalogue is found with a matching identifier.</exception> public GetCommercialCatalogueModelView findCommercialCatalogue(FindCommercialCatalogueModelView findCommercialCatalogueModelView) { CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); CommercialCatalogue commercialCatalogue = catalogueRepository.find(findCommercialCatalogueModelView.commercialCatalogueId); if (commercialCatalogue == null) { throw new ResourceNotFoundException(string.Format(CATALOGUE_NOT_FOUND_BY_ID, findCommercialCatalogueModelView.commercialCatalogueId)); } return(CommercialCatalogueModelViewService.fromEntity(commercialCatalogue)); }
/// <summary> /// Retrieves all instances of CommercialCatalogue stored in the repository. /// </summary> /// <returns>Instance of GetAllCommercialCataloguesModelView representing all instances of CommercialCatalogue.</returns> /// <exception cref="ResourceNotFoundException">Thrown when no instances of CommercialCatalogue are found.</exception> public GetAllCommercialCataloguesModelView findAll() { CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); IEnumerable <CommercialCatalogue> commercialCatalogues = catalogueRepository.findAll(); if (!commercialCatalogues.Any()) { throw new ResourceNotFoundException(CATALOGUES_NOT_FOUND); } return(CommercialCatalogueModelViewService.fromCollection(commercialCatalogues)); }
/// <summary> /// Adds a CommercialCatalogue. /// </summary> /// <param name="addCommercialCatalogueModelView">AddCommercialCatalogueModelView with the data used for creating the CommercialCatalogue.</param> /// <returns></returns> /// <exception cref="System.ArgumentException"> /// Thrown when no CustomizedProductCollection or CustomizedProduct could be found with the provided identifiers or when the CommercialCatalogue can't be saved. /// </exception> public GetCommercialCatalogueModelView addCommercialCatalogue(AddCommercialCatalogueModelView addCommercialCatalogueModelView) { CommercialCatalogue commercialCatalogue = CreateCommercialCatalogueService.create(addCommercialCatalogueModelView); CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); commercialCatalogue = catalogueRepository.save(commercialCatalogue); //an error occurred while saving the catalogue if (commercialCatalogue == null) { throw new ArgumentException(UNABLE_TO_SAVE_CATALOGUE); } return(CommercialCatalogueModelViewService.fromEntity(commercialCatalogue)); }
/// <summary> /// Adds a CatalogueCollection to a CommercialCatalogue. /// </summary> /// <param name="addCatalogueCollectionModelView">AddCatalogueCollectionModelView with the data used for creating a CatalogueCollection.</param> /// <returns>GetCommercialCatalogueModelView representing the updated CommercialCatalogue.</returns> /// <exception cref="ResourceNotFoundException"> /// Thrown when no CommercialCatalogue could be found with the provided identifier. /// </exception> /// <exception cref="System.ArgumentException"> /// Thrown when no CustomizedProductCollection or CustomizedProduct could be found with the provided identifiers. /// </exception> public GetCommercialCatalogueModelView addCatalogueCollection(AddCatalogueCollectionModelView addCatalogueCollectionModelView) { CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); CommercialCatalogue commercialCatalogue = catalogueRepository.find(addCatalogueCollectionModelView.commercialCatalogueId); if (commercialCatalogue == null) { throw new ResourceNotFoundException(string.Format( CATALOGUE_NOT_FOUND_BY_ID, addCatalogueCollectionModelView.commercialCatalogueId )); } CatalogueCollection catalogueCollection = CreateCatalogueCollectionService.create(addCatalogueCollectionModelView); commercialCatalogue.addCollection(catalogueCollection); commercialCatalogue = catalogueRepository.update(commercialCatalogue); return(CommercialCatalogueModelViewService.fromEntity(commercialCatalogue)); }
/// <summary> /// Updates an instance of CommercialCatalogue. /// </summary> /// <param name="updateCommercialCatalogueModelView">UpdateCommercialCatalogueModelView with the CommerciaCatalogue's identifier and data being updated.</param> /// <returns>An instance of GetCommercialCatalogueModelView representing the updated CommercialCatalogue.</returns> /// <exception cref="ResourceNotFoundException">Thrown when no CommercialCatalogue is found with a given identifier.</exception> /// <exception cref="System.ArgumentException"> /// Thrown no update is made to the CommercialCatalogue or when the CommercialCatalogue could not be saved with the updated data. /// </exception> public GetCommercialCatalogueModelView updateCommercialCatalogue(UpdateCommercialCatalogueModelView updateCommercialCatalogueModelView) { CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); CommercialCatalogue commercialCatalogue = catalogueRepository.find(updateCommercialCatalogueModelView.commercialCatalogueId); if (commercialCatalogue == null) { throw new ResourceNotFoundException(string.Format(CATALOGUE_NOT_FOUND_BY_ID, updateCommercialCatalogueModelView.commercialCatalogueId)); } bool performedUpdates = false; if (updateCommercialCatalogueModelView.reference != null) { commercialCatalogue.changeReference(updateCommercialCatalogueModelView.reference); performedUpdates = true; } if (updateCommercialCatalogueModelView.designation != null) { commercialCatalogue.changeDesignation(updateCommercialCatalogueModelView.designation); performedUpdates = true; } //if no update was performed if (!performedUpdates) { throw new ArgumentException(NO_UPDATES_PERFORMED); } commercialCatalogue = catalogueRepository.update(commercialCatalogue); if (commercialCatalogue == null) { throw new ArgumentException(UNABLE_TO_SAVE_CATALOGUE); } return(CommercialCatalogueModelViewService.fromEntity(commercialCatalogue)); }
/// <summary> /// Adds a CustomizedProduct to the CatalogueCollection. /// </summary> /// <param name="addCatalogueCollectionProductModelView">AddCatalogueCollectionProductModelView with the data used </param> /// <returns></returns> /// <exception cref="ResourceNotFoundException"> /// Thrown when no instance of CommercialCatalogue or CatalogueCollection could be found with the provided identifiers. /// </exception> /// <exception cref="System.ArgumentException"> /// Thrown when the CustomizedProduct being added does not exist in a given CustomizedProductCollection. /// </exception> public GetCommercialCatalogueModelView addCatalogueCollectionProduct(AddCatalogueCollectionProductModelView addCatalogueCollectionProductModelView) { CommercialCatalogueRepository catalogueRepository = PersistenceContext.repositories().createCommercialCatalogueRepository(); CommercialCatalogue commercialCatalogue = catalogueRepository.find(addCatalogueCollectionProductModelView.commercialCatalogueId); if (commercialCatalogue == null) { throw new ResourceNotFoundException(string.Format(CATALOGUE_NOT_FOUND_BY_ID, addCatalogueCollectionProductModelView.commercialCatalogueId)); } CatalogueCollection catalogueCollection = commercialCatalogue.catalogueCollectionList .Where(cc => cc.customizedProductCollectionId == addCatalogueCollectionProductModelView.customizedProductCollectionId).SingleOrDefault(); if (catalogueCollection == null) { throw new ResourceNotFoundException(string.Format( CATALOGUE_COLLECTION_NOT_FOUND_BY_ID, addCatalogueCollectionProductModelView.commercialCatalogueId, addCatalogueCollectionProductModelView.customizedProductCollectionId) ); } //retrieve the instance of CustomizedProduct from the the CustomizedProductCollection linked to the CatalogueCollection CustomizedProduct customizedProduct = catalogueCollection.customizedProductCollection.collectionProducts .Where(cp => cp.customizedProductId == addCatalogueCollectionProductModelView.customizedProductId) .Select(cp => cp.customizedProduct).SingleOrDefault(); if (customizedProduct == null) { throw new ArgumentException(string.Format( CUSTOMIZED_PRODUCT_NOT_FOUND_BY_ID, addCatalogueCollectionProductModelView.customizedProductId, addCatalogueCollectionProductModelView.customizedProductCollectionId )); } catalogueCollection.addCustomizedProduct(customizedProduct); commercialCatalogue = catalogueRepository.update(commercialCatalogue); return(CommercialCatalogueModelViewService.fromEntity(commercialCatalogue)); }