public PetAlertDetails GetPetAlertDetails(Guid alertCode) { var request = new PetAlertDetailsRequest { AlertCode = alertCode }; return(_petSearchServiceClient.GetPetAlertDetails(request)); }
public async Task <PetAlertDetails> Post(PetAlertDetailsRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } return(await _petSearchProvider.GetPetAlertDetails(request) .ConfigureAwait(false)); }
public async Task <PetAlertDetails> GetPetAlertDetails(PetAlertDetailsRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } return(await _petSearchDataAccess.GetPetAlertDetailsAsync(request) .ConfigureAwait(false)); }
public async Task <PetAlertDetails> GetPetAlertDetailsAsync(PetAlertDetailsRequest request) { PetAlertDetails petAlertDetails = null; PetAlertTableModel petAlertTable = null; using (var dbConnection = _dbConnectionFactory.Open()) { petAlertTable = await dbConnection.SingleAsync <PetAlertTableModel>(pa => pa.Code == request.AlertCode && pa.AlertStatus == (int)AlertStatusEnum.Active) .ConfigureAwait(false); if (petAlertTable != null) { petAlertDetails = new PetAlertDetails(); petAlertDetails.PetInfo = new PetDetails(); petAlertDetails.OwnersInfo = new List <OwnerDetails>(); OwnerDetails ownerDetails; // --- Pet Details --- if (petAlertTable.PetId.HasValue && petAlertTable.PetId > 0) { var petQuery = dbConnection.From <PetTableModel>() .Join <PetTableModel, PetAlertTableModel>((p, pa) => p.Id == pa.PetId && pa.Code == petAlertTable.Code); var petResult = await dbConnection.SelectMultiAsync <PetTableModel, PetAlertTableModel>(petQuery) .ConfigureAwait(false); var petImages = await dbConnection.SelectAsync <PetImageTableModel>(pi => pi.PetTableModelId == petAlertTable.PetId.Value) .ConfigureAwait(false); foreach (var item in petResult) { petAlertDetails.PetInfo.Name = item.Item1.Name; petAlertDetails.PetInfo.ProfileImageUrl = petImages.Where(pi => pi.IsProfileImage).FirstOrDefault()?.ImageUrl; petAlertDetails.PetInfo.DateOfBirth = item.Item1.DateOfBirth; petAlertDetails.PetInfo.Description = item.Item1.Description; petAlertDetails.PetInfo.LostComment = item.Item2.Comment; petAlertDetails.PetInfo.LostDateTime = item.Item2.CreatedOn; petAlertDetails.PetInfo.PositionImageUrl = item.Item2.PositionImageUrl; petAlertDetails.PetInfo.Images = petImages.Select(pi => pi.ImageUrl).ToList(); } } else { var petImages = await dbConnection.SelectAsync <PetAlertImageTableModel>(pi => pi.PetAlertTableModelId == petAlertTable.Id) .ConfigureAwait(false); petAlertDetails.PetInfo.Name = GeneralHelper.GetAnonymousTitle(petAlertTable.AlertType); petAlertDetails.PetInfo.LostComment = petAlertTable.Comment; petAlertDetails.PetInfo.LostDateTime = petAlertTable.CreatedOn; petAlertDetails.PetInfo.PositionImageUrl = petAlertTable.PositionImageUrl; petAlertDetails.PetInfo.Images = petImages.Select(x => x.ImageUrl).ToList(); } // --- Owner Details --- if (petAlertTable.OwnerTableModelId.HasValue && petAlertTable.OwnerTableModelId > 0) { // --- Owner's Pet -- if (petAlertTable.PetId.HasValue && petAlertTable.PetId.Value > 0) { var ownersQuery = dbConnection.From <OwnerPetTableModel>() .Join <OwnerPetTableModel, OwnerTableModel>((op, o) => op.OwnerTableModelId == o.Id) .Join <OwnerPetTableModel, OwnerSettingTableModel>((op, os) => op.OwnerTableModelId == os.OwnerTableModelId) .Where(op => op.PetTableModelId == petAlertTable.PetId.Value); var ownersResult = await dbConnection.SelectMultiAsync <OwnerPetTableModel, OwnerTableModel, OwnerSettingTableModel>(ownersQuery) .ConfigureAwait(false); foreach (var item in ownersResult) { ownerDetails = new OwnerDetails { FullName = $"{item.Item2.FirstName} {item.Item2.LastName}", ProfileImageUrl = item.Item2.ProfileImageUrl, Email = item.Item3.ShowEmailForAlerts ? item.Item2.Email : string.Empty, PhoneNumber1 = item.Item3.ShowPhoneNumberForAlerts ? item.Item2.PhoneNumber1 : string.Empty, PhoneNumber2 = item.Item3.ShowPhoneNumberForAlerts ? item.Item2.PhoneNumber2 : string.Empty, Address1 = item.Item3.ShowAddressForAlerts ? item.Item2.Address1 : string.Empty, Address2 = item.Item3.ShowAddressForAlerts ? item.Item2.Address2 : string.Empty }; petAlertDetails.OwnersInfo.Add(ownerDetails); } } else // --- Other Pet --- { var ownersQuery = dbConnection.From <OwnerTableModel>() .Join <OwnerTableModel, OwnerSettingTableModel>((o, os) => o.Id == os.OwnerTableModelId) .Where(o => o.Id == petAlertTable.OwnerTableModelId); var ownersResult = await dbConnection.SelectMultiAsync <OwnerTableModel, OwnerSettingTableModel>(ownersQuery) .ConfigureAwait(false); foreach (var item in ownersResult) { ownerDetails = new OwnerDetails { FullName = $"{item.Item1.FirstName} {item.Item1.LastName}", ProfileImageUrl = item.Item1.ProfileImageUrl, Email = item.Item2.ShowEmailForAlerts ? item.Item1.Email : string.Empty, PhoneNumber1 = item.Item2.ShowPhoneNumberForAlerts ? item.Item1.PhoneNumber1 : string.Empty, PhoneNumber2 = item.Item2.ShowPhoneNumberForAlerts ? item.Item1.PhoneNumber2 : string.Empty, Address1 = item.Item2.ShowAddressForAlerts ? item.Item1.Address1 : string.Empty, Address2 = item.Item2.ShowAddressForAlerts ? item.Item1.Address2 : string.Empty }; petAlertDetails.OwnersInfo.Add(ownerDetails); } } } } } return(petAlertDetails); }
public PetAlertDetails GetPetAlertDetails(PetAlertDetailsRequest request) { var response = _findMyPetClient.JsonClient().Post(request); return(response); }