public ActionResult Summary(string txtDateFrom, string txtDateTo, string Export,string SortBy, string Order)
{
try
{
if (txtDateFrom == null | txtDateTo == null)
{
txtDateTo = System.DateTime.Today.ToShortDateString();
txtDateFrom = System.DateTime.Today.Subtract(TimeSpan.FromDays(30)).ToShortDateString();
}
bool mFromDateStatus = isDate(txtDateFrom);
bool mToDateStatus = isDate(txtDateTo);
if (mFromDateStatus == false)
{
txtDateFrom = System.DateTime.Today.Subtract(TimeSpan.FromDays(30)).ToShortDateString();
ModelState.AddModelError("FromDateValidation", "Invalid Date Range");
}
if (mToDateStatus == false)
{
txtDateTo = System.DateTime.Today.ToShortDateString();
ModelState.AddModelError("ToDateValidation", "Invalid Date Range");
}
ViewData["txtDateFrom"] = txtDateFrom;
ViewData["txtDateTo"] = txtDateTo;
if (!ModelState.IsValid)
{
return View();
}
else
{
if (Convert.ToDateTime(txtDateFrom) > Convert.ToDateTime(txtDateTo))
{
ModelState.AddModelError("FromDateValidation", "Invalid Date Range");
ModelState.AddModelError("ToDateValidation", "Invalid Date Range");
return View();
}
}
ReportsDomain _reportsDomain = new ReportsDomain(ConfigurationManager.ConnectionStrings["FeedbackScriptConnectionString"].ConnectionString);
var orderedResultsPerPage = _reportsDomain.GetSummary(txtDateFrom, txtDateTo);
if (Export == string.Empty | Export == null)
{
if (SortBy == "" || SortBy == null) { SortBy = "AgencyName"; }
if (Order == "" || Order == null) { Order = "Asc"; }
switch (SortBy)
{
case "VolumeOfFeedback":
orderedResultsPerPage = Order == "Asc" ? _reportsDomain.GetSummary(txtDateFrom, txtDateTo).OrderBy(a => a.VolumeFeedBack) : _reportsDomain.GetSummary(txtDateFrom, txtDateTo).OrderByDescending(a => a.VolumeFeedBack);
break;
case "PositiveFeedback":
orderedResultsPerPage = Order == "Asc" ? _reportsDomain.GetSummary(txtDateFrom, txtDateTo).OrderBy(a => a.Pfeedback) : _reportsDomain.GetSummary(txtDateFrom, txtDateTo).OrderByDescending(a => a.Pfeedback);
break;
case "AgencyName":
default:
orderedResultsPerPage = Order == "Asc" ? _reportsDomain.GetSummary(txtDateFrom, txtDateTo).OrderBy(a => a.Agency) : _reportsDomain.GetSummary(txtDateFrom, txtDateTo).OrderByDescending(a => a.Agency);
break;
}
ViewData["SortBy"] = SortBy;
ViewData["Order"] = Order;
if (_reportsDomain.GetSummary(txtDateFrom, txtDateTo).Count() <= 0)
ModelState.AddModelError("RecordCount", "No results found for the specified search criteria");
return View(orderedResultsPerPage);
}
else
{
ExportToExcelSummaryPage(orderedResultsPerPage.ToList(), txtDateFrom.ToString(), txtDateTo.ToString());
return View(orderedResultsPerPage);
}
}
catch (Exception ex)
{
ViewData["ErrorMessage"] = ex.Message + ex.StackTrace;
return View("Error");
}
}