Пример #1
0
 private static bool RequestMatchesParameters(GetAccountEventsRequest x, DateTime toDateTime, DateTime fromDateTime, int fromEventId, int pageNumber, int pageSize)
 {
     return(x.ToDateTime.ToString("yyyyMMddHHmmss") == toDateTime.ToString("yyyyMMddHHmmss") &&
            x.FromDateTime.ToString("yyyyMMddHHmmss") == fromDateTime.ToString("yyyyMMddHHmmss") &&
            x.FromEventId == fromEventId &&
            x.PageNumber == pageNumber &&
            x.PageSize == pageSize);
 }
        public async Task <IEnumerable <AccountEventView> > GetEvents(string fromDate, string toDate, int pageSize, int pageNumber, long fromEventId)
        {
            try
            {
                _logger.Info($"Getting Account Events for period: {fromDate ?? "(all)"} - {toDate ?? "(all)"}, from eventId = {(fromEventId == 0 ? "(all)" : fromEventId.ToString())}");

                fromDate = fromDate ?? new DateTime(2000, 1, 1).ToString("yyyyMMddHHmmss");
                toDate   = toDate ?? DateTime.MaxValue.ToString("yyyyMMddHHmmss");

                var request = new GetAccountEventsRequest
                {
                    FromDateTime = fromDate.ParseDateTime(),
                    ToDateTime   = toDate.ParseDateTime(),
                    PageSize     = pageSize,
                    PageNumber   = pageNumber,
                    FromEventId  = fromEventId
                };

                var response = await _mediator.SendAsync(request);

                return(response.Data.Select(x => new AccountEventView
                {
                    Id = x.Id,
                    CreatedOn = x.CreatedOn,
                    Event = x.Event,
                    ResourceUri = x.ResourceUri
                }));
            }
            catch (ValidationException ex)
            {
                _logger.Warn(ex, "Invalid request");
                throw;
            }
            catch (Exception ex)
            {
                _logger.Error(ex, ex.Message);
                throw;
            }
        }