Beispiel #1
0
        public async System.Threading.Tasks.Task Load(Shared.Contracts.Events.Support support, CancellationToken ct)
        {
            if (!string.IsNullOrEmpty(support.CreatedBy?.Id))
            {
                var teamMember = (await teamRepository.GetMembers(userId: support.CreatedBy.Id)).SingleOrDefault();
                if (teamMember != null)
                {
                    support.CreatedBy.DisplayName = $"{teamMember.FirstName}, {teamMember.LastName.Substring(0, 1)}";
                    support.CreatedBy.TeamId      = teamMember.TeamId;
                    support.CreatedBy.TeamName    = teamMember.TeamName;
                    if (support.IssuedBy == null)
                    {
                        support.IssuedBy = support.CreatedBy;
                    }
                }
            }
            if (support.SupportDelivery is Shared.Contracts.Events.Referral referral && !string.IsNullOrEmpty(referral.SupplierDetails?.Id))
            {
                var supplier = (await supplierRepository.QuerySupplier(new SupplierSearchQuery {
                    SupplierId = referral.SupplierDetails.Id, ActiveOnly = false
                })).Items.SingleOrDefault();
                if (supplier != null)
                {
                    referral.SupplierDetails.Name     = supplier.LegalName;
                    referral.SupplierDetails.Address  = mapper.Map <Shared.Contracts.Events.Address>(supplier.Address);
                    referral.SupplierDetails.TeamId   = supplier.Team?.Id;
                    referral.SupplierDetails.TeamName = supplier.Team?.Name;
                    referral.SupplierDetails.Phone    = supplier.Contact.Phone;
                }
            }
            if (support.SupportDelivery is Shared.Contracts.Events.Interac interac && !string.IsNullOrEmpty(interac.ReceivingRegistrantId))
            {
                var recipient = (await evacueesRepository.Query(new EvacueeQuery {
                    EvacueeId = interac.ReceivingRegistrantId
                })).Items.SingleOrDefault();
                if (recipient != null)
                {
                    interac.RecipientFirstName = recipient.FirstName;
                    interac.RecipientLastName  = recipient.LastName;
                }

                var payment = ((SearchPaymentResponse)await paymentRepository.Query(new SearchPaymentRequest
                {
                    ByLinkedSupportId = support.Id
                })).Items.Where(p => p.Status != PaymentStatus.Cancelled).Cast <InteracSupportPayment>().OrderByDescending(p => p.CreatedOn).FirstOrDefault();

                if (payment != null && payment is InteracSupportPayment interacPayment)
                {
                    interac.SecurityAnswer   = interacPayment.SecurityAnswer;
                    interac.SecurityQuestion = interacPayment.SecurityAnswer;
                    interac.RelatedPaymentId = interacPayment.Id;
                }
            }
        }
Beispiel #2
0
 private static PrintReferralType MapSupportType(Shared.Contracts.Events.Support support) =>
 support switch
 {
Beispiel #3
0
 private static Shared.Contracts.Events.Referral GetReferralOrNull(Shared.Contracts.Events.Support support) => support.SupportDelivery as Shared.Contracts.Events.Referral;