public static ReportRequestTransportPostDTO CreateFromBusinessObject(ReportRequestPostDTO reportRequest)
        {
            ReportRequestTransportPostDTO result = new ReportRequestTransportPostDTO();

            result.CallbackURL = reportRequest.CallbackURL;
            result.Columns     = reportRequest.Columns != null?reportRequest.Columns.ToArray <string>() : null;

            result.DownloadFormat = reportRequest.DownloadFormat;
            result.Preview        = reportRequest.Preview;
            result.ReportType     = reportRequest.ReportType;
            result.Tag            = reportRequest.Tag;

            if (reportRequest.Filters != null)
            {
                result.Filters = FilterReportsTransport.CreateFromBusinessObject(reportRequest.Filters);
            }

            if (String.IsNullOrWhiteSpace(reportRequest.Sort))
            {
                result.Sort = "CreationDate:ASC";
            }
            else
            {
                result.Sort = reportRequest.Sort;
            }

            return(result);
        }
        public static FilterReportsTransport CreateFromBusinessObject(FilterReports filters)
        {
            FilterReportsTransport result = new FilterReportsTransport
            {
                AfterDate               = filters.AfterDate,
                BeforeDate              = filters.BeforeDate,
                MaxDebitedFundsAmount   = filters.MaxDebitedFundsAmount,
                MaxDebitedFundsCurrency = filters.MaxDebitedFundsCurrency,
                MinDebitedFundsAmount   = filters.MinDebitedFundsAmount,
                MinDebitedFundsCurrency = filters.MinDebitedFundsCurrency,
                MinFeesAmount           = filters.MinFeesAmount,
                MinFeesCurrency         = filters.MinFeesCurrency,
                MaxFeesAmount           = filters.MaxFeesAmount,
                MaxFeesCurrency         = filters.MaxFeesCurrency,
                MinBalanceAmount        = filters.MinBalanceAmount,
                MinBalanceCurrency      = filters.MinBalanceCurrency,
                MaxBalanceAmount        = filters.MaxBalanceAmount,
                MaxBalanceCurrency      = filters.MaxBalanceCurrency,
                Currency = filters.Currency,
                OwnerId  = filters.OwnerId,
                AuthorId = filters.AuthorId,
                WalletId = filters.WalletId
            };

            if (filters.Nature != null)
            {
                result.Nature = new String[filters.Nature.Count];
                for (int i = 0; i < filters.Nature.Count; i++)
                {
                    result.Nature[i] = filters.Nature[i].ToString();
                }
            }
            if (filters.Status != null)
            {
                result.Status = new String[filters.Status.Count];
                for (int i = 0; i < filters.Status.Count; i++)
                {
                    result.Status[i] = filters.Status[i].ToString();
                }
            }
            if (filters.Type != null)
            {
                result.Type = new String[filters.Type.Count];
                for (int i = 0; i < filters.Type.Count; i++)
                {
                    result.Type[i] = filters.Type[i].ToString();
                }
            }

            if (filters.ResultCode != null)
            {
                result.ResultCode = new String[filters.ResultCode.Count];

                for (int i = 0; i < filters.ResultCode.Count; i++)
                {
                    result.ResultCode[i] = String.Format("{0:000000}", (int)filters.ResultCode[i]);
                }
            }

            return(result);
        }