Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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();
        }