public async Task <AEvent_EventLogList> GetEventLogsAsync(string unitOfWork, string source)
        {
            using var log = BeginFunction(nameof(EventAdminService), nameof(GetEventLogsAsync), unitOfWork);
            try
            {
                await Assert(SecurityPolicy.IsPrivileged).ConfigureAwait(false);

                var eventLogs = new AEvent_EventLogList()
                {
                    MFunderEventLogs          = await FundingMicroService.GetFunderEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MFundableEventLogs        = await FundingMicroService.GetFundableEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MFulfillableEventLogs     = await FulfillmentMicroService.GetFulfillableEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MShipmentRequestEventLogs = await FulfillmentMicroService.GetShipmentRequestEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MShipmentEventLogs        = await FulfillmentMicroService.GetShipmentEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MReturnRequestTrnsactions = await FulfillmentMicroService.GetReturnRequestEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MReturnEventLogs          = await FulfillmentMicroService.GetReturnEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MOrderEventLogs           = await OrderMicroService.GetOrderEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MSquarePaymentEventLogs   = await SquareMicroService.GetPaymentEventLogSummariesAsync(null, unitOfWork, source).ConfigureAwait(false),
                    MSquareRefundEventLogs    = await SquareMicroService.GetRefundEventLogSummariesAsync(null, null, unitOfWork, source).ConfigureAwait(false)
                };

                var result = eventLogs;

                log.Result(result);

                return(result);
            }
            catch (Exception ex)
            {
                log.Exception(ex);
                throw;
            }
        }
        private List <EventLogListItem> CreateEventLogs(AEvent_EventLogList aEventLogList)
        {
            var events = new List <EventLogListItem>();

            events.AddRange(aEventLogList.MFunderEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MFundableEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MFulfillableEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MShipmentRequestEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MShipmentEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MReturnRequestTrnsactions.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MReturnEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MOrderEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MSquarePaymentEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));
            events.AddRange(aEventLogList.MSquareRefundEventLogs.Summaries.Select(r => CreateEventLogListItem(r)));

            return(events);
        }
        public EventLogList CreateEventLogList(AEvent_EventLogList mEventLog, PagingState pagingState)
        {
            var summaries = CreateEventLogs(mEventLog);

            var sortFunction    = GetSortFunction(pagingState.Sort);
            var sortedSummaries = sortFunction != null
                ? pagingState.Descending
                    ? summaries.OrderByDescending(sortFunction).ToList()
                    : summaries.OrderBy(sortFunction).ToList()
                : summaries;

            var pageSize       = PagingState.PageSize;
            var pageNumber     = WebMath.GetPageNumber(pagingState.Page, sortedSummaries.Count, pageSize);
            var pagedSummaries = sortedSummaries.ToPagedList(pageNumber, pageSize);

            ParseFilter(pagingState.Filter, out string unitOfWork, out string source);

            var model = new EventLogList()
            {
                Items      = pagedSummaries,
                UnitOfWork = unitOfWork,
                Source     = source,
                SourceList = new List <SelectListItem>
                {
                    new SelectListItem()
                    {
                        Text = "(Any)", Value = "*ANY"
                    },
                    new SelectListItem()
                    {
                        Text = "Fulfillable", Value = MSources.Fulfillable
                    },
                    new SelectListItem()
                    {
                        Text = "Fundable", Value = MSources.Fundable
                    },
                    new SelectListItem()
                    {
                        Text = "Funder", Value = MSources.Funder
                    },
                    new SelectListItem()
                    {
                        Text = "Order", Value = MSources.Order
                    },
                    new SelectListItem()
                    {
                        Text = "Shipment", Value = MSources.Shipment
                    },
                    new SelectListItem()
                    {
                        Text = "Shipment Request", Value = MSources.ShipmentRequest
                    },
                    new SelectListItem()
                    {
                        Text = "Square Payment", Value = MSources.SquarePayment
                    },
                    new SelectListItem()
                    {
                        Text = "Square Refund", Value = MSources.SquareRefund
                    },
                    new SelectListItem()
                    {
                        Text = "Return", Value = MSources.Return
                    },
                    new SelectListItem()
                    {
                        Text = "Return Request", Value = MSources.ReturnRequest
                    }
                }
            };

            return(model);
        }