private string ParseCheckoutRoleInfoFromPost() { //toSave.CheckoutAssignRoleIds = chklAssignRoleIds.GetSelectedValues().ToCsv(); Dictionary <int, CheckoutRoleInfo> checkoutRoles = new Dictionary <int, CheckoutRoleInfo>(); string[] checkedRoleIds = Request.Form.GetValues("checkoutAssignRole") ?? new string[] { }; foreach (string roleIdStr in checkedRoleIds) { int roleId = WA.Parser.ToInt(roleIdStr).Value; checkoutRoles[roleId] = new CheckoutRoleInfo() { RoleId = roleId }; } NameValueCollection postedForm = Request.Form; foreach (string key in postedForm.Keys) { if (key.StartsWith("checkoutAssignRole-") && key.EndsWith("-ExpireDays")) { string[] keyParts = key.Split('-'); int? roleId = roleId = WA.Parser.ToInt(keyParts[1]); int? expireDays = WA.Parser.ToInt(postedForm[key]); if (checkoutRoles.ContainsKey(roleId.Value)) { checkoutRoles[roleId.Value].ExpireDays = expireDays; } } } List <CheckoutRoleInfo> checkoutRoleInfos = new List <CheckoutRoleInfo>(); foreach (var pair in checkoutRoles) { checkoutRoleInfos.Add(pair.Value); } return(Newtonsoft.Json.JsonConvert.SerializeObject(checkoutRoleInfos)); }
private void PopulateListControls(bool isEditMode) { // Delivery Methods List <ListItem> deliveryMethods = DeliveryMethodCollection.LoadAllToList().ConvertAll(d => d.ToListItem()); rdoDeliveryMethod.Items.Clear(); rdoDeliveryMethod.Items.AddRange(deliveryMethods.ToArray()); rdoDeliveryMethod.SelectedIndex = 0; // Categories CategoryTreeRenderer treeRenderer = new CategoryTreeRenderer( StoreContext.CurrentStore.Id.GetValueOrDefault(-1), c => string.Format(@"<span> <input type=""checkbox"" id=""cat-{0}"" name=""productCategory"" value=""{0}"" {2} /> <label for=""cat-{0}"">{1}</label> </span>", c.Id, c.Name, GetProductCategoryCheckedAttribute(c.Id.Value)) ); treeRenderer.CssClassForOuterList = "form"; treeRenderer.IncludeHiddenCategories = true; litCategories.Text = treeRenderer.RenderHtmlList(); // Descriptors List <ProductDescriptor> descriptors = product.GetProductDescriptors(); if (descriptors.Count >= 1) { litDescriptorName1.Text = descriptors[0].Name; txtDescriptorName1.Text = descriptors[0].Name; (txtDescriptorText1 as DotNetNuke.UI.UserControls.TextEditor).Text = descriptors[0].Text; } if (descriptors.Count >= 2) { litDescriptorName2.Text = descriptors[1].Name; txtDescriptorName2.Text = descriptors[1].Name; (txtDescriptorText2 as DotNetNuke.UI.UserControls.TextEditor).Text = descriptors[1].Text; } if (descriptors.Count >= 3) { litDescriptorName3.Text = descriptors[2].Name; txtDescriptorName3.Text = descriptors[2].Name; (txtDescriptorText3 as DotNetNuke.UI.UserControls.TextEditor).Text = descriptors[2].Text; } if (descriptors.Count >= 4) { litDescriptorName4.Text = descriptors[3].Name; txtDescriptorName4.Text = descriptors[3].Name; (txtDescriptorText4 as DotNetNuke.UI.UserControls.TextEditor).Text = descriptors[3].Text; } if (descriptors.Count >= 5) { litDescriptorName5.Text = descriptors[4].Name; txtDescriptorName5.Text = descriptors[4].Name; (txtDescriptorText5 as DotNetNuke.UI.UserControls.TextEditor).Text = descriptors[4].Text; } //--- DNN roles & Add Role After Checkout RoleController roleController = new RoleController(); List <RoleInfo> roleInfos = roleController.GetPortalRoles(PortalId).ToList <RoleInfo>(); StringBuilder checkoutRolesUi = new StringBuilder(); List <CheckoutRoleInfo> checkoutRoleInfos = product.GetCheckoutRoleInfos(); bool isSelected = false; foreach (RoleInfo role in roleInfos) { CheckoutRoleInfo selectedRole = checkoutRoleInfos.Find(cr => cr.RoleId == role.RoleID); isSelected = (selectedRole != null); int?expireDays = (selectedRole != null) ? selectedRole.ExpireDays : null; checkoutRolesUi.AppendFormat(@" <tr> <td> <input type=""checkbox"" id=""checkoutAssignRole-{0}"" name=""checkoutAssignRole"" value=""{0}"" {1} /> <label for=""checkoutAssignRole-{0}"">{2}</label> </td> <td> <input type=""text"" name=""checkoutAssignRole-{0}-ExpireDays"" style=""width: 50px;"" value=""{3}"" /> <span class=""inputHelp"">days</span> </td> </tr> ", role.RoleID, isSelected ? @"checked=""checked""" : "", role.RoleName, expireDays ); } litCheckoutRolesPickerUi.Text = checkoutRolesUi.ToString(); //--- DNN roles -- VIEW PERMISSIONS StringBuilder viewPermissionsRolesUi = new StringBuilder(); List <int> viewPermission = new List <int>(); if (!String.IsNullOrEmpty(product.ViewPermissions)) { viewPermission = product.ViewPermissions.ToListOfInt(","); } isSelected = viewPermission.Any(a => a == -1); viewPermissionsRolesUi.AppendFormat(@" <tr> <td> <input type=""checkbox"" id=""viewPermissionId-{0}"" name=""viewPermissionRole"" value=""{0}"" {1} /> <label for=""viewPermissionId-{0}"">{2}</label> </td> </tr> ", -1, isSelected ? @"checked=""checked""" : "", "All Users" ); foreach (RoleInfo role in roleInfos) { if (role.RoleType != RoleType.Administrator) { isSelected = viewPermission.Any(a => a == role.RoleID); viewPermissionsRolesUi.AppendFormat( @" <tr> <td> <input type=""checkbox"" id=""viewPermissionId-{0}"" name=""viewPermissionRole"" value=""{0}"" {1} /> <label for=""viewPermissionId-{0}"">{2}</label> </td> </tr> ", role.RoleID, isSelected ? @"checked=""checked""" : "", role.RoleName ); } } litViewPermissions.Text = viewPermissionsRolesUi.ToString(); //--- DNN roles -- CART PERMISSIONS StringBuilder cartPermissionsRolesUi = new StringBuilder(); List <int> cartPermission = new List <int>(); if (!String.IsNullOrEmpty(product.CheckoutPermissions)) { cartPermission = product.CheckoutPermissions.ToListOfInt(","); } isSelected = cartPermission.Any(a => a == -1); cartPermissionsRolesUi.AppendFormat(@" <tr> <td> <input type=""checkbox"" id=""cartPermissionId-{0}"" name=""cartPermissionRole"" value=""{0}"" {1} /> <label for=""cartPermissionId-{0}"">{2}</label> </td> </tr> ", -1, isSelected ? @"checked=""checked""" : "", "All Users" ); foreach (RoleInfo role in roleInfos) { if (role.RoleType != RoleType.Administrator) { isSelected = cartPermission.Any(a => a == role.RoleID); cartPermissionsRolesUi.AppendFormat( @" <tr> <td> <input type=""checkbox"" id=""cartPermissionId-{0}"" name=""cartPermissionRole"" value=""{0}"" {1} /> <label for=""cartPermissionId-{0}"">{2}</label> </td> </tr> ", role.RoleID, isSelected ? @"checked=""checked""" : "", role.RoleName ); } } litCartPermissions.Text = cartPermissionsRolesUi.ToString(); }