public IEnumerable <PartnerInvoiceDTO> SelectByPartner(Guid partnerId)
        {
            CurrencyRepository             currencyRepository      = new CurrencyRepository(Connector);
            PartnerInvoiceDetailRepository invoiceDetailRepository = new PartnerInvoiceDetailRepository(Connector);

            return(Connector.ExecuteReader(selectByPartnerQuery, new Dictionary <string, object>()
            {
                { "Partner", partnerId }
            }, reader => ReadFromDataReader(reader, currencyRepository, invoiceDetailRepository)));;
        }
        private PartnerInvoiceDTO ReadFromDataReader(IDataReader reader, CurrencyRepository currencyRepository, PartnerInvoiceDetailRepository invoiceDetailRepository)
        {
            string currencyId = reader["CurrencyId"] as string;
            Guid   invoiceId  = (Guid)reader["Id"];

            return(new PartnerInvoiceDTO()
            {
                Id = invoiceId,
                Partner = new PartnerDTO()
                {
                    Id = (Guid)reader["Partner"]
                },
                TimeStamp = (DateTime)reader["TimeStamp"],
                Currency = new CurrencyDTO()
                {
                    Id = currencyId,
                    DisplayName = new LocalizationDictionary(currencyRepository.GetDisplayName(currencyId)),
                    Symbol = reader["CurrencySymbol"] as string
                },
                StripeId = reader["StripeId"] as string,
                Details = invoiceDetailRepository.SelectByInvoice(invoiceId)
            });
        }