/// <inheritdoc/> public async Task <ServiceExecuteResult <PageInfo> > GetPageInfo(int pageInfoId) { try { var pageInfo = await _repository.GetPageInfo(pageInfoId); return(new ServiceExecuteResult <PageInfo> { IsSuccess = true, Result = pageInfo }); } catch (Exception ex) { var msg = $"Не удалось получить информацию о странице с идентификатором \"{pageInfoId}\". {ex.Message}"; _logger.LogError(ex, msg); return(new ServiceExecuteResult <PageInfo> { IsSuccess = false, Error = msg }); } }
/// <inheritdoc/> public async Task <ServiceExecuteResult <bool> > AddOrUpdate(PageInfoDTO entityDTO) { try { if (entityDTO.PageInfoId == 0) { var(entity, error) = await this.CreateEntity( entityDTO, addEntityDbFunc : _repository.AddPageInfo); if (entity == null) { return(new ServiceExecuteResult <bool> { IsSuccess = false, Error = error }); } return(new ServiceExecuteResult <bool> { IsSuccess = true, Result = true }); } else { var oldEntity = await _repository.GetPageInfo(entityDTO.PageInfoId); if (oldEntity is null) { var msg = $"Не удалось найти страницу с идентификатором \"{entityDTO.PageInfoId}\""; if (!entityDTO.IsAliasCanBeEdited) { msg += $"и наименованием \"{entityDTO.Alias}\""; } _logger.LogError(msg); return(new ServiceExecuteResult <bool> { IsSuccess = false, Error = msg }); } if ( entityDTO.IsAliasCanBeEdited && oldEntity.Alias.TransformToId() != entityDTO.Alias.TransformToId() ) { //await FullUpdate(entityDTO, oldEntity); throw new NotImplementedException(); } else { var(isSuccess, error) = await this.UpdateEntity( oldEntity, entityDTO, updateEntityDbFunc : _repository.UpdatePageInfo); return(new ServiceExecuteResult <bool> { IsSuccess = isSuccess, Result = isSuccess, Error = error }); } } } catch (Exception ex) { var msg = $"В результате добавления/обновления произошла ошибка: {ex.Message}"; _logger.LogError($"{msg}\nModel: {JsonHelper.Serialize(entityDTO)}"); return(new ServiceExecuteResult <bool> { IsSuccess = false, Error = msg }); } }