public ActionResult _SaveandScheduledReportsExcel([DataSourceRequest] DataSourceRequest request, SearchSavedReportsInput search)
        {
            var SaveandScheduleReportsCall = new SaveandScheduledReports();
            //if (search.MyReportsView)
            //{ }
            //else
            //{ }
            DataSourceResult result = SaveandScheduleReportsCall._saveandscheduledReportsExcel(request, search);
            JsonResult       jr     = new JsonResult();

            jr = Json(result, JsonRequestBehavior.AllowGet);
            jr.MaxJsonLength  = Int32.MaxValue;
            jr.RecursionLimit = 100;
            return(jr);
        }
        public ActionResult _ERSaveandScheduledReportsExcel([DataSourceRequest] DataSourceRequest request, SearchSavedReportsInput search)
        {
            var SaveandScheduleReportsCall = new SaveandScheduledReports();

            DataSourceResult result = SaveandScheduleReportsCall._saveandscheduledReportsExcel(request, search, (int)WebConstants.ProductID.TracerER);
            JsonResult       jr     = new JsonResult();

            jr = Json(result, JsonRequestBehavior.AllowGet);
            jr.MaxJsonLength  = Int32.MaxValue;
            jr.RecursionLimit = 100;
            return(jr);
        }
Exemplo n.º 3
0
        public DataSourceResult _saveandscheduledReportsExcel([DataSourceRequest] DataSourceRequest request, SearchSavedReportsInput search, int EProductID = 1)
        {
            DataSourceResult result = new DataSourceResult();

            try
            {
                //System.Diagnostics.Debug.WriteLine("EProductID:" + EProductID);
                //System.Diagnostics.Debug.WriteLine("AppSession.LinkType:" + AppSession.LinkType);
                //System.Diagnostics.Debug.WriteLine("AppSession.PageID:" + AppSession.PageID);

                List <SaveandScheduledDetails> SaveandScheduledDetailsList = new List <SaveandScheduledDetails>();
                DataTable dt = new DataTable();

                if (EProductID == (int)WebConstants.ProductID.TracerER || AppSession.LinkType == (int)WebConstants.LinkType.AMPCorporateReports || AppSession.LinkType == (int)WebConstants.LinkType.AmpHome)
                {
                    List <int> siteIDList = new List <int>();

                    int eProductId;
                    int ERReportCategoryID;
                    if (AppSession.LinkType == (int)WebConstants.LinkType.AMPCorporateReports || AppSession.LinkType == (int)WebConstants.LinkType.AmpHome)
                    {
                        // Mark Orlando: It appears AMP Reports should go through here.
                        siteIDList         = AppSession.Sites.Select(m => m.SiteID).ToList();
                        eProductId         = (int)WebConstants.ProductID.AMP;
                        ERReportCategoryID = (int)WebConstants.ReportCategoryID.AMP;
                    }
                    else
                    {
                        // M.Orlando 09/27/2017: Updated for TEN
                        siteIDList = AppSession.Sites.Where(m => m.RoleID.In((int)(WebConstants.Role.ProgramAdministrator),
                                                                             (int)(WebConstants.Role.MockSurveyUser),
                                                                             (int)(WebConstants.Role.MockSurveyReviewer))).Select(m => m.SiteID).ToList();
                        eProductId         = (int)WebConstants.ProductID.TracerER;
                        ERReportCategoryID = (int)WebConstants.ReportCategoryID.TracerER;
                    }
                    // Mark Orlando: Requests to get ER Tracer Reports runs here and executes SP ustReport_GetSavedandScheduledERReports.
                    dt = ERSearchSaveandScheduleddataset(string.Join(",", siteIDList.ToArray()), search.SearchSelectedSites == null ? string.Join(",", siteIDList.ToArray()) : search.SearchSelectedSites, eProductId, ERReportCategoryID).Tables[0];
                }
                else
                {
                    // Mark Orlando: Requests to get Tracer Reports runs here and executes SP ustReport_GetSavedandScheduledReports.
                    dt = SaveandScheduleddataset(EProductID).Tables[0];
                }
                SaveandScheduledDetailsList = dt.ToList <SaveandScheduledDetails>();

                // to do filter data
                if (search.MyReportsView)
                {
                    SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s => s.UserID == AppSession.UserID).ToList();
                }
                else
                {
                    if (search.ReportUserScheduleID > 0)
                    {
                        SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s => s.ERReportUserScheduleID == search.ReportUserScheduleID).ToList();
                    }
                    else if (search.ERMyReportIDs != null && search.ERMyReportIDs != "-1" && search.ERMyReportIDs != "")
                    {
                        SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s => GetSearchIds(search.ERMyReportIDs)
                                                                                        .Contains(s.ERReportUserScheduleID.ToString()))
                                                      .ToList();
                    }
                    else
                    {
                        search.CreatedByIDs    = (search.CreatedByIDs != null && search.CreatedByIDs != "-1") ? search.CreatedByIDs : "";
                        search.ERReportIDs     = (search.ERReportIDs != null && search.ERReportIDs != "-1") ? search.ERReportIDs : "";
                        search.ERRecurrenceIDs = (search.ERRecurrenceIDs != null && search.ERRecurrenceIDs != "-1") ? search.ERRecurrenceIDs : "";
                        // filter by user
                        if (!String.IsNullOrEmpty(search.CreatedByIDs))
                        {
                            SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s => GetSearchIds(search.CreatedByIDs)
                                                                                            .Contains(s.UserID.ToString()))
                                                          .ToList();
                        }

                        // filter by Report Name
                        if (!String.IsNullOrEmpty(search.ERReportIDs))
                        {
                            SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s => GetSearchIds(search.ERReportIDs)
                                                                                            .Contains(s.ERReportID.ToString()))
                                                          .ToList();
                        }

                        // filter by Report Frequency / Schedule Type
                        if (!String.IsNullOrEmpty(search.ERRecurrenceIDs))
                        {
                            SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s => GetSearchIds(search.ERRecurrenceIDs)
                                                                                            .Contains(s.ERScheduleTypeID.ToString()))
                                                          .ToList();
                        }

                        // filter by Create Date
                        if (search.CreateDateFrom.HasValue && search.CreateDateFrom.Value > DateTime.MinValue)
                        {
                            DateTime maxDate = DateTime.MaxValue;
                            if (search.CreateDateTo.HasValue)
                            {
                                maxDate = search.CreateDateTo.Value.AddDays(1).Date;
                            }
                            SaveandScheduledDetailsList = SaveandScheduledDetailsList.Where(s =>
                                                                                            s.CreateDate >= search.CreateDateFrom && s.CreateDate < maxDate)
                                                          .ToList();
                        }
                    }
                }

                result = SaveandScheduledDetailsList.ToDataSourceResult(request, cqc => new SaveandScheduledDetails
                {
                    ERReportUserScheduleID = cqc.ERReportUserScheduleID,
                    ERReportID             = cqc.ERReportID,
                    UserID = cqc.UserID,
                    ERReportScheduleStatusID = cqc.ERReportScheduleStatusID,
                    EmailTo            = cqc.EmailTo,
                    LastRundate        = cqc.LastRundate,
                    LastRunStatus      = cqc.LastRunStatus,
                    ReportNameOverride = cqc.ReportNameOverride,
                    ReportDescription  = cqc.ReportDescription,
                    ERScheduleTypeID   = cqc.ERScheduleTypeID,
                    NextRunScheduled   = cqc.NextRunScheduled,
                    CreateDate         = cqc.CreateDate,
                    UpdateDate         = cqc.UpdateDate,
                    ERReportName       = cqc.ERReportName,
                    SiteID             = cqc.SiteID,
                    FirstName          = cqc.FirstName,
                    LastName           = cqc.LastName,
                    CreatedBy          = cqc.FirstName.ToString() + " " + cqc.LastName.ToString(),
                    UpdatedBy          = cqc.UpdateByUserFirstName.ToString() + " " + cqc.UpdateByUserLastName.ToString(),
                    UpdateByUserID     = cqc.UpdateByUserID,
                    //  UpdateByUserFirstName = cqc.UpdateByUserFirstName,
                    // UpdateByUserLastName = cqc.UpdateByUserLastName,
                    CC                                = cqc.CC,
                    BCC                               = cqc.BCC,
                    ReplyTo                           = cqc.ReplyTo,
                    Subject                           = cqc.Subject,
                    RenderFormatTypeID                = cqc.RenderFormatTypeID,
                    Comment                           = cqc.Comment,
                    ERReportScheduleStatusName        = cqc.ERReportScheduleStatusName,
                    ERReportScheduleStatusDescription = cqc.ERReportScheduleStatusDescription == "Complete" ? "None" : cqc.ERReportScheduleStatusDescription,
                    ERScheduleName                    = cqc.ERScheduleName,
                    ERScheduleDescription             = cqc.ERScheduleDescription == "One-time" ? "None" : cqc.ERScheduleDescription,
                    LastRunMessage                    = cqc.LastRunMessage == "" ? "None" : cqc.LastRunMessage,
                    ReportSource                      = cqc.ReportSource,
                });
            }
            catch (Exception ex)
            {
                if (ex.Message.ToString() == "No Data")
                {
                    result.Errors = WebConstants.NO_DATA_FOUND_EXCEL_VIEW;
                }
                else if (ex.Message.ToString() == "Limit")
                {
                    result.Errors = "Maximum limit of " + ConfigurationManager.AppSettings["ReportOutputLimit"].ToString() + " records reached. Refine your criteria to narrow the result.";
                }

                if (ex.Message.ToString() != "No Data" && ex.Message.ToString() != "Limit")
                {
                    ExceptionLog exceptionLog = new ExceptionLog
                    {
                        ExceptionText = "Reports: " + ex.Message,
                        PageName      = "_saveandscheduledReportsExcel",
                        MethodName    = "_saveandscheduledReportsExcel",
                        UserID        = Convert.ToInt32(AppSession.UserID),
                        SiteId        = Convert.ToInt32(AppSession.SelectedSiteId),
                        TransSQL      = "",
                        HttpReferrer  = null
                    };
                    _exceptionService.LogException(exceptionLog);
                }
            }


            return(result);
        }