public FileContentResult CancellationExport(string keyword                     = null,
                                                    string referenceInternal           = null, string referenceExternal = null, string sentOrigin = null, string internalCaseNumber  = null,
                                                    string submissionMethod            = null, string applicant         = null, string trademark  = null, string researchPerformance = null, string status = null, string acquisitionLetterSentOrigin = null,
                                                    string acquisitionLetterSentMethod = null, string UDRPStrategy      = null, string ownerResponseAcquisitionLetter = null, string domainEnquiry = null, string outcome = null)
        {
            var query = CancellationUtils.BuildExportQuery(keyword ?? referenceInternal, referenceExternal, sentOrigin, internalCaseNumber,
                                                           submissionMethod, applicant, trademark, researchPerformance, status, acquisitionLetterSentOrigin,
                                                           acquisitionLetterSentMethod, UDRPStrategy, ownerResponseAcquisitionLetter, domainEnquiry, outcome);
            var file = this._managementCancellationService.ExportByQuery(query);

            return(File(new UTF8Encoding().GetBytes(file.ToString()), "text/csv", $"Export-Cancellation-{StringUtils.GetCurrentDateTimeAsString()}.csv"));
        }
        public ActionResult Cancellation(int rowCount                       = 25, int page = 1, string keyword = null,
                                         string referenceInternal           = null, string referenceExternal = null, string sentOrigin = null, string internalCaseNumber  = null,
                                         string submissionMethod            = null, string applicant         = null, string trademark  = null, string researchPerformance = null, string status = null, string acquisitionLetterSentOrigin = null,
                                         string acquisitionLetterSentMethod = null, string UDRPStrategy      = null, string ownerResponseAcquisitionLetter = null, string domainEnquiry = null, string outcome = null)
        {
            var searchResultObject = new VMSearchResultObject <Cancellation> {
                Caption = "Cancellation"
            };
            var startIndex = (page - 1) * rowCount;

            var query = CancellationUtils.BuildQuery(startIndex, rowCount,
                                                     keyword ?? referenceInternal, referenceExternal, sentOrigin, internalCaseNumber,
                                                     submissionMethod, applicant, trademark, researchPerformance, status, acquisitionLetterSentOrigin,
                                                     acquisitionLetterSentMethod, UDRPStrategy, ownerResponseAcquisitionLetter, domainEnquiry, outcome);

            var cancellations = this._managementCancellationService.GetByQuery(query.Item1, query.Item2, out int total);

            searchResultObject.ObjectResult = new VMPageResult <Cancellation>
            {
                StartIndex = startIndex,
                RowCount   = rowCount,
                Page       = page,
                Total      = total,
                Records    = cancellations
            };

            if (!string.IsNullOrWhiteSpace(keyword))
            {
                var searchResultWrapperList = this._searchService.Search(referenceInternal ?? keyword);

                searchResultObject.SearchResult = new VMSearchResult
                {
                    Table = searchResultWrapperList
                };
            }

            ViewBag.Keyword         = keyword ?? referenceInternal;
            ViewBag.IsAdvanceSearch = string.IsNullOrWhiteSpace(keyword);

            return(View(searchResultObject));
        }