public PersonalizationData GetUserSettings(PersonalizationSearchCriteria searchCriteria) { var userSettingsToReturn = new PersonalizationData(); SqlConnection cn; SPSecurity.RunWithElevatedPrivileges(delegate { using (cn = new SqlConnection(EPMLiveCore.CoreFunctions.getConnectionString(_web.Site.WebApplication.Id))) { cn.Open(); var cmd = new SqlCommand("SELECT * FROM PERSONALIZATIONS WHERE FK=@FK and UserId=@userid and [Key]=@key and SiteId=@siteid and WebId=@webid", cn); cmd.Parameters.AddWithValue("@FK", searchCriteria.WebPartId.ToString()); cmd.Parameters.AddWithValue("@siteid", searchCriteria.SiteId.ToString()); cmd.Parameters.AddWithValue("@webid", searchCriteria.WebId.ToString()); cmd.Parameters.AddWithValue("@userid", searchCriteria.UserId); cmd.Parameters.AddWithValue("@key", _personalizationKey); var reader = cmd.ExecuteReader(); userSettingsToReturn.Hydrate(reader); cn.Close(); } }); return(userSettingsToReturn); }
protected void btnGetPersonalization_ServerClick(object sender, EventArgs e) { var data = new List <PersonalizationData>(); Sitecore.Data.Database master = Sitecore.Data.Database.GetDatabase("master"); var startItem = master.GetItem("/sitecore/content"); DeviceItem device = master.Resources.Devices["Default"]; foreach (var item in startItem.Axes.GetDescendants()) { PersonalizationData details = new PersonalizationData(); Sitecore.Data.Fields.LayoutField layoutField = item.Fields["__renderings"]; List <Sitecore.Layouts.RenderingReference> renderings = layoutField.GetReferences(device) != null?layoutField.GetReferences(device).ToList() : null; if (renderings != null) { Sitecore.Data.Fields.LayoutField finalLayoutField = item.Fields["__final renderings"]; List <Sitecore.Layouts.RenderingReference> finalRenderings = finalLayoutField.GetReferences(device) != null?finalLayoutField.GetReferences(device).ToList() : null; if (finalRenderings != null) { renderings.AddRange(finalRenderings); var renderingsWithPersonalization = renderings.Where(r => r.Settings.Rules.Count > 0).ToList(); details.ItemName = item.Name; details.RederingDetails = new List <RenderingDetails>(); if (details.ItemName != null && renderingsWithPersonalization != null && renderingsWithPersonalization.Count > 0) { foreach (var rendering in renderingsWithPersonalization) { RenderingDetails renderingDetail = new RenderingDetails(); renderingDetail.RenderingID = master.GetItem(rendering.RenderingID).Paths.FullPath.ToString(); renderingDetail.RenderingName = master.GetItem(rendering.RenderingID).Name; details.RederingDetails.Add(renderingDetail); } } } data.Add(details); } data = data.Where(x => x.RederingDetails.Count() > 0).ToList(); } personalizedData.Text = ""; if (data.Count > 0) { foreach (var finalData in data) { personalizedData.Text += "Item Name : <strong>" + finalData.ItemName + "</strong></br>"; personalizedData.Text += "Renderings with Personalizations defined : </br>"; foreach (var renderingData in finalData.RederingDetails) { personalizedData.Text += "Rendering - Path -" + renderingData.RenderingID + "</br>"; } personalizedData.Text += "</br>"; } } else { personalizedData.Text += "No renderings with Personalization found"; } }
public void Hydrate(PersonalizationData personalizationData) { WebPartId = personalizationData.ForeignKey; UserId = personalizationData.UserId; SiteId = personalizationData.SiteId; WebId = personalizationData.WebId; ListId = personalizationData.ListId; if (WebPartId != null && !string.IsNullOrEmpty(UserId) && SiteId != null && WebId != null && ListId != null) { PopulateUserSettings(personalizationData); } }
public static PersonalizationData GetPersonalizationData(EpmChartUserSettings epmChartUserSettings) { var personalizationData = new PersonalizationData { ForeignKey = epmChartUserSettings.WebPartId, Key = EpmChartUserSettings.Key, ListId = epmChartUserSettings.ListId, SiteId = epmChartUserSettings.SiteId, WebId = epmChartUserSettings.WebId, UserId = epmChartUserSettings.UserId, Value = epmChartUserSettings.Value }; return(personalizationData); }
/// <summary> /// Get application personalization information based on the incoming user. /// </summary> /// <returns></returns> public PersonalizationData GetPersonalizationData() { var user = RequestContext.Principal as ClaimsPrincipal; string userName = user.FindFirst("sub").Value; var persData = new PersonalizationData { Features = GetFeatures(userName).ToList(), UiClaims = new UiClaimsData { UserName = userName, Capabilities = GetCapabilities(userName), Constraints = GetConstraints(userName), NameValueClaims = GetNameValueClaims(userName) } }; return(persData); }
public void PersistUserSettings(PersonalizationData userSettings) { var searchCriteria = new PersonalizationSearchCriteria { WebPartId = userSettings.ForeignKey, SiteId = userSettings.SiteId, WebId = userSettings.WebId, UserId = userSettings.UserId, Key = _personalizationKey }; if (UserHasPersistedSettings(searchCriteria)) { UpdateUserSettings(userSettings); } else { InsertUserSettings(userSettings); } }
private void InsertUserSettings(PersonalizationData userSettings) { SPSecurity.RunWithElevatedPrivileges(delegate { using (var cn = new SqlConnection(EPMLiveCore.CoreFunctions.getConnectionString(_web.Site.WebApplication.Id))) { cn.Open(); var cmd = new SqlCommand("INSERT INTO PERSONALIZATIONS (FK, userid, [key], value, siteid, webid, listid) VALUES (@FK, @userid, @key, @value, @siteid, @webid, @listid)", cn); cmd.Parameters.AddWithValue("@FK", userSettings.ForeignKey); cmd.Parameters.AddWithValue("@siteid", userSettings.SiteId); cmd.Parameters.AddWithValue("@webid", userSettings.WebId); cmd.Parameters.AddWithValue("@userid", userSettings.UserId); cmd.Parameters.AddWithValue("@listid", userSettings.ListId); cmd.Parameters.AddWithValue("@key", _personalizationKey); cmd.Parameters.AddWithValue("@value", userSettings.Value); cmd.ExecuteNonQuery(); cn.Close(); } }); }
private void UpdateUserSettings(PersonalizationData personalizationData) { SPSecurity.RunWithElevatedPrivileges(delegate { using (var cn = new SqlConnection(EPMLiveCore.CoreFunctions.getConnectionString(_web.Site.WebApplication.Id))) { cn.Open(); var cmd = new SqlCommand("UPDATE PERSONALIZATIONS set value=@value, listid=@listid where FK=@FK and userid=@userid and webid=@webid and siteid=@siteid", cn); cmd.Parameters.AddWithValue("@FK", personalizationData.ForeignKey); cmd.Parameters.AddWithValue("@siteid", personalizationData.SiteId); cmd.Parameters.AddWithValue("@webid", personalizationData.WebId); cmd.Parameters.AddWithValue("@userid", personalizationData.UserId); cmd.Parameters.AddWithValue("@listid", personalizationData.ListId); cmd.Parameters.AddWithValue("@key", personalizationData.Key); cmd.Parameters.AddWithValue("@value", personalizationData.Value); cmd.ExecuteNonQuery(); cn.Close(); } }); }
private void PopulateUserSettings(PersonalizationData personalizationData) { if (personalizationData.Value == null) { return; } if (!personalizationData.Value.Contains("|")) { return; } var valueSections = personalizationData.Value.Split(new[] { '|' }); if (valueSections.Length != 7) { return; } var xAxisField = valueSections[0]; if (!string.IsNullOrEmpty(xAxisField)) { XaxisField = xAxisField; } var xAxisFieldLabel = valueSections[1]; if (!string.IsNullOrEmpty(xAxisFieldLabel)) { XaxisFieldLabel = xAxisFieldLabel; } var yAxisFieldSection = valueSections[2]; if (!string.IsNullOrEmpty(yAxisFieldSection)) { var yAxisFields = yAxisFieldSection.Split(new[] { ',' }); foreach (var yAxisField in yAxisFields) { YaxisFields.Add(yAxisField); } } var yAxisFieldLabel = valueSections[3]; if (!string.IsNullOrEmpty(yAxisFieldLabel)) { YaxisFieldLabel = yAxisFieldLabel; } var zAxisField = valueSections[4]; if (!string.IsNullOrEmpty(zAxisField)) { ZaxisField = zAxisField; } var zAxisFieldLabel = valueSections[5]; if (!string.IsNullOrEmpty(zAxisFieldLabel)) { ZaxisFieldLabel = zAxisFieldLabel; } var zAxisColorField = valueSections[6]; if (!string.IsNullOrEmpty(zAxisColorField)) { ZaxisColorField = zAxisColorField; } IsValid = true; }