public JsonResult LoadSavedParameters(int reportScheduleId) { var savedParameters = new SaveAndScheduleService(); var oScheduleDate = new SaveAndSchedule(); int actionTypeId = (int)WebConstants.ActionType.Edit; if (TempData["SavedParameters"] != null) { oScheduleDate = (SaveAndSchedule)TempData["SavedParameters"]; } else { oScheduleDate = savedParameters.LoadUserSchedule(reportScheduleId); } if (TempData["ActionType"] != null && int.TryParse(TempData["ActionType"].ToString(), out actionTypeId)) { if (actionTypeId == (int)WebConstants.ActionType.Copy) { AppSession.ReportScheduleID = 0; AppSession.ReportScheduleName = String.Concat("Copy of ", oScheduleDate.ReportNameOverride); AppSession.ReportScheduleDesc = oScheduleDate.ReportDescription != "" ? String.Concat("Copy of ", oScheduleDate.ReportDescription) : ""; } } oScheduleDate.ReportMode = actionTypeId; return(Json(oScheduleDate)); }
public ActionResult ERLevelSites() { string selectedSiteIds = ""; var reportService = new SearchInputService(); var sites = AppSession.Sites.Where(m => m.IsTracersAccess == 1).ToList(); var levelMap = reportService.GetLevelMap(sites); AppSession.SessionERLevelInformation = reportService.GetLevelInformation(AppSession.SelectedSiteId); levelMap = levelMap.OrderByDescending(l => l.ERLevel1.ERLevel1ID) .ThenBy(l => l.ERLevel2.ERLevel2Name) .ThenBy(l => l.ERLevel3.ERLevel3Name) .ToList(); bool hasLevel1 = levelMap.Where(l => l.ERLevel1ID > 0).Count() > 0 ? true : false; bool hasLevel2 = levelMap.Where(l => l.ERLevel2ID > 0).Count() > 0 ? true : false; bool hasLevel3 = levelMap.Where(l => l.ERLevel3ID > 0).Count() > 0 ? true : false; // if there are no level 1 names (or (None)), set to false if (hasLevel1) { if (levelMap.Where(l => !String.IsNullOrEmpty(l.ERLevel1.ERLevel1Name)).Count() == 0) { hasLevel1 = false; } } //Get the selected sites for the saved report if (AppSession.ReportScheduleID > 0 && TempData["SavedParameters"] != null) { var oScheduleDate = new SaveAndSchedule(); oScheduleDate = (SaveAndSchedule)TempData["SavedParameters"]; selectedSiteIds = string.Join(",", oScheduleDate.ReportSiteMaps.Select(siteMaps => siteMaps.SiteID).ToList()); } var siteSelectorViewModel = new SiteSelectorViewModel { ERLevelMap = levelMap, HasLevel1 = hasLevel1, HasLevel2 = hasLevel2, HasLevel3 = hasLevel3, SelectedSiteIds = selectedSiteIds }; //var dataContext = new SampleEntities(); //var employees = from e in dataContext.Employees // where (id.HasValue ? e.ReportsTo == id : e.ReportsTo == null) // select new // { // id = e.EmployeeID, // Name = e.FirstName + " " + e.LastName, // hasChildren = e.Employees1.Any() // }; return(PartialView("Search/_SitesTree", siteSelectorViewModel)); // return Json(siteSelectorViewModel, JsonRequestBehavior.AllowGet); }
public ActionResult ERLevelSites() { try { string selectedSiteIds = ""; var reportService = new SearchInputService(); //Not applying filter for Task Report var siteLst = AppSession.ReportID == 42 ? CMSService.GetCMSSitesFiltered(AppSession.Sites.ToList()) : CMSService.GetCMSSitesFiltered(AppSession.Sites.Where(m => m.IsAMPAccess == 1).ToList()); var levelMap = reportService.GetLevelMap(siteLst); AppSession.SessionERLevelInformation = reportService.GetLevelInformation(AppSession.SelectedSiteId); levelMap = levelMap.OrderByDescending(l => l.ERLevel1.ERLevel1ID) .ThenBy(l => l.ERLevel2.ERLevel2Name) .ThenBy(l => l.ERLevel3.ERLevel3Name) .ToList(); bool hasLevel1 = levelMap.Where(l => l.ERLevel1ID > 0).Count() > 0 ? true : false; bool hasLevel2 = levelMap.Where(l => l.ERLevel2ID > 0).Count() > 0 ? true : false; bool hasLevel3 = levelMap.Where(l => l.ERLevel3ID > 0).Count() > 0 ? true : false; // if there are no level 1 names (or (None)), set to false if (hasLevel1) { if (levelMap.Where(l => !String.IsNullOrEmpty(l.ERLevel1.ERLevel1Name)).Count() == 0) { hasLevel1 = false; } } //Get the selected sites for the saved report if (AppSession.ReportScheduleID > 0 && TempData["SavedParameters"] != null) { var oScheduleDate = new SaveAndSchedule(); oScheduleDate = (SaveAndSchedule)TempData["SavedParameters"]; selectedSiteIds = string.Join(",", oScheduleDate.ReportSiteMaps.Select(siteMaps => siteMaps.SiteID).ToList()); } var sites = string.Join(",", levelMap.Select(levelM => levelM.SiteID).ToList());; var siteSelectorViewModel = new SiteSelectorViewModel { ERLevelMap = levelMap, HasLevel1 = hasLevel1, HasLevel2 = hasLevel2, HasLevel3 = hasLevel3, SelectedSiteIds = selectedSiteIds, IsCorporateAccess = new CommonService().CheckCorporateAccess(sites) }; switch ((ReportsListEnum)AppSession.ReportID) { case ReportsListEnum.EPScoringReport: case ReportsListEnum.TaskAssignment: case ReportsListEnum.EPAssignmentScoring: case ReportsListEnum.CMSCompliance: case ReportsListEnum.EPsNotScoredinPeriod: case ReportsListEnum.EPScoringReportFinalMockSurvey: case ReportsListEnum.TaskReport: return(PartialView("Search/_SitesTreeForEPScoring", siteSelectorViewModel)); case ReportsListEnum.ComprehensiveScoringReport: return(PartialView("Search/_SitesTreeForEPScoring", siteSelectorViewModel)); default: return(PartialView("Search/_SitesTree", siteSelectorViewModel)); } } catch (Exception ex) { ExceptionLog exceptionLog = new ExceptionLog { ExceptionText = "Reports: " + ex.Message, PageName = "CorporatePriorityFinding", MethodName = "ERLevelSites", UserID = Convert.ToInt32(AppSession.UserID), SiteId = Convert.ToInt32(AppSession.SelectedSiteId), TransSQL = "", HttpReferrer = null }; exceptionService.LogException(exceptionLog); return(RedirectToAction("Error", "Transfer")); } }
public int SaveUserSchedule(SaveAndSchedule userSchedule) { int erReportUserScheduleID = -1; SqlTransaction tran = null; SqlCommand cmdSchedule = null; SqlCommand cmdScheduleClear = null; SqlCommand cmdScheduleSiteMap = null; SqlCommand cmdScheduleParameter = null; using (SqlConnection cn = new SqlConnection(this.ConnectionString)) { try { cn.Open(); tran = cn.BeginTransaction(); cmdSchedule = new SqlCommand("usmERReportUserScheduleUpdate", cn, tran); cmdScheduleClear = new SqlCommand("usmERReportUserScheduleClear", cn, tran); cmdScheduleSiteMap = new SqlCommand("usmERReportUserScheduleSiteMapUpdate", cn, tran); cmdScheduleParameter = new SqlCommand("usmERReportUserScheduleParameterUpdate", cn, tran); //Update report schedule cmdSchedule.CommandType = CommandType.StoredProcedure; cmdSchedule.Parameters.Add("@ERReportUserScheduleID", SqlDbType.Int); cmdSchedule.Parameters["@ERReportUserScheduleID"].Direction = ParameterDirection.InputOutput; if (userSchedule.ReportUserScheduleID > 0) { cmdSchedule.Parameters["@ERReportUserScheduleID"].Value = userSchedule.ReportUserScheduleID; } else { cmdSchedule.Parameters["@ERReportUserScheduleID"].Value = 0; } cmdSchedule.Parameters.AddWithValue("@ERReportID", userSchedule.ReportID); cmdSchedule.Parameters.AddWithValue("@UserID", userSchedule.UserID); cmdSchedule.Parameters.AddWithValue("@ERReportScheduleStatusID", userSchedule.ReportScheduleStatusID); cmdSchedule.Parameters.AddWithValue("@ReportNameOverride", GetValue(userSchedule.ReportNameOverride)); cmdSchedule.Parameters.AddWithValue("@ReportDescription", GetValue(userSchedule.ReportDescription)); cmdSchedule.Parameters.AddWithValue("@EmailTo", userSchedule.EmailTo); cmdSchedule.Parameters.AddWithValue("@CC", GetValue(userSchedule.EmailCC)); cmdSchedule.Parameters.AddWithValue("@BCC", GetValue(userSchedule.EmailBCC)); cmdSchedule.Parameters.AddWithValue("@ReplyTo", GetValue(userSchedule.ReplyTo)); cmdSchedule.Parameters.AddWithValue("@Subject", GetValue(userSchedule.Subject)); cmdSchedule.Parameters.AddWithValue("@RenderFormatTypeID", userSchedule.RenderFormatTypeID); cmdSchedule.Parameters.AddWithValue("@Priority", userSchedule.Priority); cmdSchedule.Parameters.AddWithValue("@Comment", GetValue(userSchedule.Comment)); cmdSchedule.Parameters.AddWithValue("@ERScheduleTypeID", userSchedule.ScheduleTypeID); cmdSchedule.Parameters.AddWithValue("@DaysOfWeek", GetValue(userSchedule.DaysOfWeek)); cmdSchedule.Parameters.AddWithValue("@DayOfMonth", GetValue(userSchedule.DaysOfMonth)); cmdSchedule.Parameters.AddWithValue("@DayOfQuarter", GetValue(userSchedule.DaysOfQuarter)); cmdSchedule.Parameters.AddWithValue("@NextRunScheduled", GetValue(userSchedule.NextRunScheduled)); cmdSchedule.Parameters.AddWithValue("@LastRundate", GetValue(userSchedule.LastRundate)); cmdSchedule.Parameters.AddWithValue("@LastRunStatus", GetValue(userSchedule.LastRunStatus)); cmdSchedule.Parameters.AddWithValue("@LastRunMessage", GetValue(userSchedule.LastRunMessage)); cmdSchedule.Parameters.AddWithValue("@UpdateByUserId", userSchedule.UpdateByUserId); cmdSchedule.Parameters.AddWithValue("@ReportLauncherID", GetValue(userSchedule.ReportLauncherID)); cmdSchedule.Parameters.AddWithValue("@ReportDelete", userSchedule.ReportDelete); CreateSQLExecuted("usmERReportUserScheduleUpdate", cmdSchedule); cmdSchedule.ExecuteNonQuery(); erReportUserScheduleID = (int)cmdSchedule.Parameters["@ERReportUserScheduleID"].Value; //Clear any existing parameters and site map CreateSQLExecuted("usmERReportUserScheduleClear", cmdScheduleClear); cmdScheduleClear.CommandType = CommandType.StoredProcedure; cmdScheduleClear.Parameters.AddWithValue("@ERReportUserScheduleID", erReportUserScheduleID); cmdScheduleClear.ExecuteNonQuery(); //Update site map cmdScheduleSiteMap.CommandType = CommandType.StoredProcedure; cmdScheduleSiteMap.Parameters.Add("@ERReportUserScheduleID", SqlDbType.Int); cmdScheduleSiteMap.Parameters.Add("@SiteID", SqlDbType.Int); foreach (var siteMap in userSchedule.ReportSiteMaps) { siteMap.ERReportUserScheduleID = erReportUserScheduleID; cmdScheduleSiteMap.Parameters["@ERReportUserScheduleID"].Value = erReportUserScheduleID; cmdScheduleSiteMap.Parameters["@SiteID"].Value = siteMap.SiteID; CreateSQLExecuted("usmERReportUserScheduleSiteMapUpdate", cmdScheduleSiteMap); cmdScheduleSiteMap.ExecuteNonQuery(); } //Update parameters cmdScheduleParameter.CommandType = CommandType.StoredProcedure; cmdScheduleParameter.Parameters.Add("@ERReportUserScheduleID", SqlDbType.Int); cmdScheduleParameter.Parameters.Add("@ERReportParameterID", SqlDbType.Int); cmdScheduleParameter.Parameters.Add("@DisplayTextOverride", SqlDbType.VarChar); cmdScheduleParameter.Parameters.Add("@ParameterValue", SqlDbType.VarChar); foreach (var pararmeter in userSchedule.ReportParameters) { pararmeter.ReportUserScheduleID = erReportUserScheduleID; cmdScheduleParameter.Parameters["@ERReportUserScheduleID"].Value = erReportUserScheduleID; cmdScheduleParameter.Parameters["@ERReportParameterID"].Value = pararmeter.ReportParameterID; cmdScheduleParameter.Parameters["@DisplayTextOverride"].Value = pararmeter.DisplayTextOverride; cmdScheduleParameter.Parameters["@ParameterValue"].Value = pararmeter.ParameterValue; CreateSQLExecuted("usmERReportUserScheduleParameterUpdate", cmdScheduleParameter); cmdScheduleParameter.ExecuteNonQuery(); } if (tran.Connection != null) { tran.Commit(); } } catch (Exception ex) { if (tran != null) { tran.Rollback(); } ex.Data.Add(TSQL, _SQLExecuted); throw ex; } } return(erReportUserScheduleID); }
public SaveAndSchedule LoadUserSchedule(int reportScheduleID) { SaveAndSchedule savedParameters; try { SqlConnection cn = new SqlConnection(this.ConnectionString_WHSE); cn.Open(); SqlCommand cmd = new SqlCommand("usmERReportUserScheduleSelect", cn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@ERReportUserScheduleID", reportScheduleID); CreateSQLExecuted("usmERReportUserScheduleSelect", cmd); // data set of three tables DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); using (cn) using (cmd) using (da) { da.Fill(ds); } DataRow drUserSchedule = ds.Tables[0].Rows[0]; savedParameters = new SaveAndSchedule { ReportUserScheduleID = Convert.ToInt32(drUserSchedule["ERReportUserScheduleID"]), ReportID = Convert.ToInt32(drUserSchedule["ERReportID"]), UserID = Convert.ToInt32(drUserSchedule["UserID"]), ReportScheduleStatusID = Convert.ToInt32(drUserSchedule["ERReportScheduleStatusID"]), ReportNameOverride = drUserSchedule["ReportNameOverride"].ToString(), ReportDescription = drUserSchedule["ReportDescription"].ToString(), EmailTo = drUserSchedule["EmailTo"].ToString(), EmailCC = drUserSchedule["CC"].ToString(), EmailBCC = drUserSchedule["BCC"].ToString(), ReplyTo = drUserSchedule["ReplyTo"].ToString(), Subject = drUserSchedule["Subject"].ToString(), RenderFormatTypeID = Convert.ToInt32(drUserSchedule["RenderFormatTypeID"]), Priority = Convert.ToInt32(drUserSchedule["Priority"]), Comment = drUserSchedule["Comment"].ToString(), ScheduleTypeID = Convert.ToInt32(drUserSchedule["ERScheduleTypeID"]), DaysOfWeek = drUserSchedule["DaysOfWeek"].ToString(), DaysOfMonth = GetIntOrNull(drUserSchedule["DayOfMonth"]), DaysOfQuarter = GetIntOrNull(drUserSchedule["DayOfQuarter"]), NextRunScheduled = GetDateOrNull(drUserSchedule["NextRunScheduled"]), LastRundate = GetDateOrNull(drUserSchedule["LastRundate"]), LastRunStatus = GetIntOrNull(drUserSchedule["LastRunStatus"]), LastRunMessage = string.IsNullOrEmpty(drUserSchedule["LastRunMessage"].ToString()) == true ? null : drUserSchedule["LastRunMessage"].ToString(), UpdateByUserId = Convert.ToInt32(drUserSchedule["UpdateByUserId"]), ReportLauncherID = GetIntOrNull(drUserSchedule["ReportLauncherID"]), }; // Site Map List <ReportUserScheduleSiteMap> siteMapList = new List <ReportUserScheduleSiteMap>(); //Assign the site value if (ds.Tables[1].Rows.Count > 0) { savedParameters.SiteID = Convert.ToInt32(ds.Tables[1].Rows[0]["SiteID"]); foreach (DataRow row in ds.Tables[1].Rows) { siteMapList.Add(new ReportUserScheduleSiteMap { ERReportUserScheduleID = Convert.ToInt32(row["ERReportUserScheduleID"]), SiteID = Convert.ToInt32(row["SiteID"]), ERLevelMapID = Convert.ToInt32(row["ERLevelMapID"]), CreateDate = Convert.ToDateTime(row["CreateDate"]), UpdateDate = Convert.ToDateTime(row["UpdateDate"]) }); } } savedParameters.ReportSiteMaps = siteMapList; //Load the parameters List <ReportUserScheduleParameter> parameterList = new List <ReportUserScheduleParameter>(); if (ds.Tables[2].Rows.Count > 0) { foreach (DataRow row in ds.Tables[2].Rows) { parameterList.Add(new ReportUserScheduleParameter { ReportUserScheduleID = Convert.ToInt32(row["ERReportUserScheduleID"]), ReportParameterID = Convert.ToInt32(row["ERReportParameterID"]), ReportParameterName = row["ParameterName"].ToString(), DisplayTextOverride = row["DisplayTextOverride"].ToString(), ParameterValue = row["ParameterValue"].ToString(), CreateDate = Convert.ToDateTime(row["CreateDate"]), UpdateDate = Convert.ToDateTime(row["UpdateDate"]) }); } } savedParameters.ReportParameters = parameterList; } catch (Exception ex) { ex.Data.Add(TSQL, _SQLExecuted); throw ex; } return(savedParameters); }
public JsonResult SaveReport(List <Dictionary <string, string> > objDictionary) { string message = string.Empty; try { int reportID = AppSession.ReportID; SaveAndSchedule oSaveModel = new SaveAndSchedule(); //Set the schedule information if (AppSession.ReportScheduleID > 0 && Convert.ToInt16(objDictionary.Find(p => p.ContainsKey("ReportDelete"))["ReportDelete"]) != 1) { oSaveModel.ReportUserScheduleID = AppSession.ReportScheduleID; SaveAndScheduleService oScheduleService = new SaveAndScheduleService(); oSaveModel = oScheduleService.LoadUserSchedule(AppSession.ReportScheduleID); } else { oSaveModel.LastRunStatus = (int)LastRunStatus.NotRun; oSaveModel.UserID = AppSession.UserID; } oSaveModel.ReportParameters.Clear(); oSaveModel.ReportID = AppSession.ReportID; //Get all the selected sites var selectedSites = objDictionary.Find(d => d.ContainsKey("SelectedSites")) != null? objDictionary.Find(d => d.ContainsKey("SelectedSites"))["SelectedSites"].ToString() : string.Empty; oSaveModel.ReportSiteMaps.Clear(); if (!String.IsNullOrWhiteSpace(selectedSites)) { foreach (var site in selectedSites.Trim(',').Split(',')) { oSaveModel.ReportSiteMaps.Add(new ReportUserScheduleSiteMap { SiteID = Convert.ToInt32(site) }); } } else { oSaveModel.ReportSiteMaps.Add(new ReportUserScheduleSiteMap { SiteID = AppSession.SelectedSiteId }); } var scheduledReportName = objDictionary.Find(d => d.ContainsKey("ScheduledReportName")); if (scheduledReportName != null && scheduledReportName.Count > 0) { oSaveModel.ReportNameOverride = scheduledReportName["ScheduledReportName"]; AppSession.ReportScheduleName = scheduledReportName["ScheduledReportName"]; } var scheduledReportDesc = objDictionary.Find(d => d.ContainsKey("ScheduledReportDesc")); if (scheduledReportDesc != null && scheduledReportDesc.Count > 0) { oSaveModel.ReportDescription = scheduledReportDesc["ScheduledReportDesc"]; AppSession.ReportScheduleDesc = scheduledReportDesc["ScheduledReportDesc"]; } var reportType = objDictionary.Find(d => d.ContainsKey("ReportType")); if (reportType != null && reportType.Count > 0) { if (string.Equals(reportType["ReportType"], "ExcelView")) { oSaveModel.RenderFormatTypeID = (int)RenderFormatType.Excel; } else if (reportID == (int)ReportsListEnum.ComplianceByDepartment || reportID == (int)ReportsListEnum.TracerComplianceDepartment) { oSaveModel.RenderFormatTypeID = (int)RenderFormatType.Excel; } else { oSaveModel.RenderFormatTypeID = (int)RenderFormatType.PDF; } } else { //Only excel format for Monthly breakdowns reports if (reportID == (int)ReportsListEnum.MonthlyQuestionBreakdown || reportID == (int)ReportsListEnum.MonthlyTracerBreakdown || reportID == (int)ReportsListEnum.ComplianceByDepartment) { oSaveModel.RenderFormatTypeID = (int)RenderFormatType.Excel; } else { oSaveModel.RenderFormatTypeID = (int)RenderFormatType.PDF; } } oSaveModel.Priority = 1; //Recurrence information oSaveModel.EmailTo = objDictionary.Find(d => d.ContainsKey("EmailTo")) != null?objDictionary.Find(d => d.ContainsKey("EmailTo"))["EmailTo"].ToString() : String.Concat(AppSession.EmailAddress, "; "); //Check for Email place holder texts oSaveModel.EmailCC = objDictionary.Find(d => d.ContainsKey("EmailCC")) != null?objDictionary.Find(d => d.ContainsKey("EmailCC"))["EmailCC"].ToString() : String.Empty; if (!String.IsNullOrWhiteSpace(oSaveModel.EmailCC) && oSaveModel.EmailCC == EMAILPLACEHOLDER) { oSaveModel.EmailCC = string.Empty; } oSaveModel.EmailBCC = objDictionary.Find(d => d.ContainsKey("EmailBCC")) != null?objDictionary.Find(d => d.ContainsKey("EmailBCC"))["EmailBCC"].ToString() : String.Empty; if (!String.IsNullOrWhiteSpace(oSaveModel.EmailBCC) && oSaveModel.EmailBCC == EMAILPLACEHOLDER) { oSaveModel.EmailBCC = string.Empty; } oSaveModel.ReplyTo = string.Empty; oSaveModel.Subject = objDictionary.Find(d => d.ContainsKey("Subject")) != null?objDictionary.Find(d => d.ContainsKey("Subject"))["Subject"].ToString() : String.Empty; oSaveModel.Comment = objDictionary.Find(d => d.ContainsKey("Comment")) != null?objDictionary.Find(d => d.ContainsKey("Comment"))["Comment"].ToString() : String.Empty; var scheduleTypeID = objDictionary.Find(p => p.ContainsKey("ScheduleTypeID")) == null ? 0 : Convert.ToInt16(objDictionary.Find(p => p.ContainsKey("ScheduleTypeID"))["ScheduleTypeID"]); oSaveModel.DaysOfWeek = null; oSaveModel.DaysOfMonth = null; if (scheduleTypeID == (int)ScheduleType.Weekly) { oSaveModel.ScheduleTypeID = (int)ScheduleType.Weekly; oSaveModel.DaysOfWeek = objDictionary.Find(p => p.ContainsKey("DaysOfWeek"))["DaysOfWeek"].ToString().TrimEnd(','); oSaveModel.ReportScheduleStatusID = (int)ScheduleStatus.Scheduled; } else if (scheduleTypeID == (int)ScheduleType.Monthly) { oSaveModel.ScheduleTypeID = (int)ScheduleType.Monthly; oSaveModel.DaysOfMonth = Convert.ToInt16(objDictionary.Find(p => p.ContainsKey("DaysOfMonth"))["DaysOfMonth"]); oSaveModel.ReportScheduleStatusID = (int)ScheduleStatus.Scheduled; } else if (scheduleTypeID == (int)ScheduleType.Quarterly) { oSaveModel.ScheduleTypeID = (int)ScheduleType.Quarterly; oSaveModel.DaysOfQuarter = Convert.ToInt16(objDictionary.Find(p => p.ContainsKey("PeriodOfQuarter"))["PeriodOfQuarter"]); oSaveModel.ReportScheduleStatusID = (int)ScheduleStatus.Scheduled; } else if (scheduleTypeID == (int)ScheduleType.Daily) { oSaveModel.ScheduleTypeID = (int)ScheduleType.Daily; oSaveModel.ReportScheduleStatusID = (int)ScheduleStatus.Scheduled; } else { oSaveModel.ScheduleTypeID = (int)ScheduleType.None; oSaveModel.ReportScheduleStatusID = (int)ScheduleStatus.Complete; } if (Convert.ToInt16(objDictionary.Find(p => p.ContainsKey("ReportDelete"))["ReportDelete"]) == 1) { // We hit report limit issue and want ReportLauncher to generate report for us oSaveModel.ReportDelete = 1; oSaveModel.DaysOfWeek = null; oSaveModel.DaysOfMonth = null; oSaveModel.ScheduleTypeID = (int)ScheduleType.None; // Should not be rescheduled // Launch report immediately oSaveModel.ReportScheduleStatusID = (int)ScheduleStatus.Pending; } else { oSaveModel.ReportDelete = 0; } oSaveModel.NextRunScheduled = HelperClasses.CalculateNextRunDate(oSaveModel.ScheduleTypeID, oSaveModel.DaysOfWeek, oSaveModel.DaysOfMonth, oSaveModel.DaysOfQuarter); oSaveModel.UpdateByUserId = AppSession.UserID; oSaveModel.ReportLauncherID = 1; //Set the parameters SaveAndScheduleService objSaveService = new SaveAndScheduleService(); var lstReportParameters = objSaveService.GetReportParameters(reportID); foreach (var parameter in lstReportParameters) { var param = objDictionary.Find(d => d.ContainsKey(parameter.ParameterName)); if (param != null && param.Count > 0) { oSaveModel.ReportParameters.Add(new ReportUserScheduleParameter { ReportParameterID = parameter.ReportParameterID, ParameterValue = param[parameter.ParameterName], DisplayTextOverride = parameter.DisplayText }); } } SaveAndScheduleService oService = new SaveAndScheduleService(); // AppSession.ReportScheduleID = oService.SaveUserSchedule(oSaveModel); int ReportScheduleID = oService.SaveUserSchedule(oSaveModel); if (ReportScheduleID > 0) { if (oSaveModel.ReportDelete == 0) { AppSession.ReportScheduleID = ReportScheduleID; message = string.Format("{0} has been saved successfully!!", AppSession.ReportScheduleName); } else { message = "The report will be delivered to the recipient email addresses. It may take a few minutes for the report to show up in your email inbox."; } } } catch (Exception ex) { ModelState.AddModelError("Error", "Error saving the report"); message = "Error saving the report"; } return(Json(message)); }