public JsonResult SaveAsDashboard(string dashboardId, string userId, string roleId) { var type = "success"; var msg = "Dashboard added successfully"; try { using (var context = new WebAppDbContext()) { UserDashboardMapping model = new UserDashboardMapping() { DashboardId = dashboardId, UserId = userId, RoleId = roleId, IsDefault = "0", InsertionDateTime = DateTime.Now, InsertedBy = Session[SessionKeys.UserId].ToString() }; context.UserDashboardMappings.Add(model); context.SaveChanges(); } } catch (Exception ex) { type = "error"; msg = ex.ToString(); } return(Json(new { type = type, msg = msg }, JsonRequestBehavior.AllowGet)); }
private string GetDashboardId(string inUserId) { string actionName = "GetDashboardId"; UserDashboardMapping dashboard = null; var id = ConfigurationManager.AppSettings["DefaultDashboardId"].ToString(); _logger.Log(LogLevel.Trace, actionName + " :: started"); try { using (var _context = new WebAppDbContext()) { var sessionDetails = (SessionHelper)Session[SessionKeys.SessionHelperInstance]; var dashboards = _context.UserDashboardMappings.Where(x => x.UserId == inUserId && x.RoleId == sessionDetails.CurrentRoleId); if (dashboards.Any()) { dashboard = dashboards.FirstOrDefault(x => x.IsPrefered == "1"); if (dashboard == null) { dashboard = dashboards.FirstOrDefault(x => x.IsDefault == "1"); } id = dashboard != null ? dashboard.DashboardId : id; } else { _logger.Log(LogLevel.Trace, actionName + " :: No dashboard linked with user."); } } } catch (Exception ex) { _logger.Log(LogLevel.Error, actionName + " EXCEPTION :: " + ex.ToString() + " INNER EXCEPTION :: " + ex.InnerException?.ToString()); } _logger.Log(LogLevel.Trace, actionName + " :: ended"); return(id); }
public ActionResult Save(string userId, string roleId, string dashboardId, string isDefault, string pageMode) { var type = "success"; var msg = pageMode == PageMode.Add.ToString() ? "Plan added successfully." : "Plan updated successfully."; isDefault = String.IsNullOrWhiteSpace(isDefault) ? "0" : isDefault; try { if (!string.IsNullOrWhiteSpace(userId) && !string.IsNullOrWhiteSpace(roleId) && !string.IsNullOrWhiteSpace(dashboardId)) { using (var context = new WebAppDbContext()) { if (roleId == AllRoles) { context.UserDashboardMappings.RemoveRange(context.UserDashboardMappings.Where(x => x.UserId == userId)); var roles = GetUserRoles(userId); List <UserDashboardMapping> models = new List <UserDashboardMapping>(); foreach (var role in roles) { UserDashboardMapping model = new UserDashboardMapping() { UserId = userId, RoleId = role.RoleId, DashboardId = dashboardId, InsertedBy = Session[SessionKeys.UserId].ToString(), InsertionDateTime = DateTime.Now, IsDefault = isDefault }; models.Add(model); } context.UserDashboardMappings.AddRange(models); context.SaveChanges(); } else { UserDashboardMapping model = null; if (pageMode == PageMode.Add.ToString()) { model = new UserDashboardMapping() { UserId = userId, RoleId = roleId, DashboardId = dashboardId, InsertedBy = Session[SessionKeys.UserId].ToString(), InsertionDateTime = DateTime.Now, IsDefault = isDefault }; context.UserDashboardMappings.Add(model); } else if (pageMode == PageMode.Edit.ToString()) { var dashboard = context.UserDashboardMappings.FirstOrDefault(x => x.RoleId == roleId && x.UserId == userId && x.DashboardId == dashboardId); if (dashboard != null) { dashboard.IsDefault = isDefault; context.UserDashboardMappings.Attach(dashboard); context.Entry(dashboard).State = EntityState.Modified; } } if (isDefault == "1") { var previousDefault = context.UserDashboardMappings.FirstOrDefault(x => x.RoleId == roleId && x.UserId == userId && x.IsDefault == "1"); if (previousDefault != null) { if (previousDefault.RoleId != roleId) { previousDefault.IsDefault = "0"; context.UserDashboardMappings.Attach(previousDefault); context.Entry(previousDefault).State = EntityState.Modified; } } } context.SaveChanges(); } } } } catch (Exception ex) { type = "error"; msg = ex.ToString(); } return(Json(new { msg = msg, type = type }, JsonRequestBehavior.AllowGet)); }