public ActionResult SetReportDefault(int reportId) { var userId = User.Identity.GetUserId <int>(); using (var db = NewDbContext()) { var setting = db.Settings.Where(r => r.Category == SettingsCategory_Reports + "Default" && r.Key == userId.ToString()).SingleOrDefault(); if (setting == null) { if (reportId != 0) { setting = new ZPM.NetDb.Models.Setting() { Category = SettingsCategory_Reports + "Default", Key = userId.ToString(), CreatedByUserId = userId, ChangedByUserId = userId, }; setting.CreatedDttm = setting.ChangedDttm = DateTime.Now; setting.Value = reportId.ToString(); db.Settings.Add(setting); db.SaveChanges(); } } else if (reportId == 0) { db.Settings.Remove(setting); db.SaveChanges(); } else { setting.ChangedByUserId = userId; setting.ChangedDttm = DateTime.Now; setting.Value = reportId.ToString(); db.SaveChanges(); } } return(GetReports(reportId)); }
public ActionResult SaveReport(string action, ReportParameters parms) { var userId = User.Identity.GetUserId <int>(); int selectedtReportId = 0; try { string strParms = new JavaScriptSerializer().Serialize(parms); using (var db = NewDbContext()) { ZPM.NetDb.Models.Setting setting = null; if (action != "Add") { setting = db.Settings.Where(r => r.SettingId == parms.ReportId).Single(); } string key = parms.ReportName; if (action != "Delete") { if (parms.Share == "NoShare") { key += "|" + userId.ToString(); // allow dupldate names per user } else { key += "|Share"; } } switch (action) { case "Add": setting = new ZPM.NetDb.Models.Setting() { Category = SettingsCategory_Reports, Key = key }; setting.Value = strParms; setting.CreatedByUserId = setting.ChangedByUserId = userId; setting.CreatedDttm = setting.ChangedDttm = DateTime.Now; db.Settings.Add(setting); db.SaveChanges(); selectedtReportId = setting.SettingId; break; case "Update": if (setting.Value != strParms || setting.Key != key) // if settings changed { setting.Key = key; setting.Value = strParms; setting.ChangedByUserId = userId; setting.ChangedDttm = DateTime.Now; db.SaveChanges(); } selectedtReportId = setting.SettingId; break; case "Delete": if (setting != null) // if found, delete it { db.Settings.Remove(setting); db.SaveChanges(); } break; } } } catch (Exception ex) { ex = Zpm.GetInnerException(ex); if (ex.Message.ToUpper().Contains("DUPLICATE")) { return(Json("Cannot add duplicate Report Name")); } throw ex; } return(GetReports(selectedtReportId)); }