public override async Task <Maybe <Pub> > GetByIdAsync(string id) { return(await _pubRepository.GetSingleOrMaybeAsync( p => p.Id == id, $"{nameof(Pub.Address)}", $"{nameof(Pub.LikedPubs)}", $"{nameof(Pub.PubRates)}.{nameof(PubRate.HexadoUser)}", $"{nameof(Pub.PubBoardGames)}.{nameof(PubBoardGame.BoardGame)}", $"{nameof(Pub.PubBoardGames)}.{nameof(PubBoardGame.BoardGame)}.{nameof(BoardGame.Category)}", $"{nameof(Pub.PubBoardGames)}.{nameof(PubBoardGame.BoardGame)}.{nameof(BoardGame.BoardGameRates)}", $"{nameof(Pub.Events)}.{nameof(Event.BoardGame)}", $"{nameof(Pub.Events)}.{nameof(Event.ParticipantEvents)}")); }
public override async Task <Maybe <Event> > CreateAsync(Event entity) { if (entity.Address?.City != null) { return(await _eventRepository.CreateAsync(entity)); } var pub = await _pubRepository.GetSingleOrMaybeAsync( p => p.Id == entity.PubId, p => p.Address); if (!pub.HasValue) { return(Maybe <Event> .Nothing); } entity.Address = new EventAddress { City = pub.Value.Address.City, LocalNumber = pub.Value.Address.LocalNumber, BuildingNumber = pub.Value.Address.BuildingNumber, Street = pub.Value.Address.Street, PostalCode = pub.Value.Address.PostalCode }; return(await _eventRepository.CreateAsync(entity)); }