public async Task CreateAsync(PrintingEditionModel model) { var editions = await _printingEditionRepository.GetAsync(edition => edition.Description == model.Description); if (editions.Any()) { throw new CustomExeption(Constants.Error.EDITION_EXISTS_DB, StatusCodes.Status400BadRequest); } if (!model.AuthorModels.Any()) { throw new CustomExeption(Constants.Error.EDITION_MUST_HAVE_AUTHOR, StatusCodes.Status400BadRequest); } var allAuthors = await _authorRepository.GetAllAsync(); var autors = allAuthors.Where(a => model.AuthorModels.Exists(p => p.Id == a.Id)).ToList(); if (model.AuthorModels.Count != autors.Count) { throw new CustomExeption(Constants.Error.NO_AUTHOR_ID_IN_DB_ADD_AUTHOR_FIRST, StatusCodes.Status400BadRequest); } var printingEdition = _mapper.Map <PrintingEdition>(model); await _printingEditionRepository.CreateAsync(printingEdition); }
public async Task DeleteAsync(long id) { if (await _printingEditionRepository.GetAsync(id) is null) { throw new UserException(HttpStatusCode.BadRequest, new List <string> { ExceptionsInfo.InvalidId }); } await _printingEditionRepository.DeleteAsync(id); }
public async Task <PrintingEditionModel> GetAsync(Guid id) { var printingEdition = await _printingEditionRepository.GetAsync(id); if (printingEdition is null) { throw new ServerException(HttpStatusCode.BadRequest, ExceptionMessage.PRINTING_EDITION_NOT_FOUND); } var mapped = _mapper.Map <PrintingEditionModel>(printingEdition); return(mapped); }
public async Task <PrintingEditionModel> GetByIdAsync(string id) { var result = Guid.TryParse(id, out var printingEditionId); if (!result) { return(new PrintingEditionModel()); } var printingEdition = await _printingEditionRepository.GetAsync(printingEditionId); var printingEditionModel = _printingEditionModelMapper.Map(printingEdition); return(printingEditionModel); }