// GET: /View
        public ActionResult View(int id)
        {
            //Get Item From Database
            ProductGroup productGroup = new ProductGroup();

            productGroup = passiveSegmentBuilderGroupRepository.GetGroup(id);

            //Check Exists
            if (productGroup == null)
            {
                ViewData["ActionMethod"] = "DeleteGet";
                return(View("RecordDoesNotExistError"));
            }
            PassiveSegmentBuilderGroupVM productGroupVM = new PassiveSegmentBuilderGroupVM();

            productGroupRepository.EditGroupForDisplay(productGroup);
            productGroupVM.ProductGroup = productGroup;

            List <SelectListItem> products = new List <SelectListItem>();

            products = productRepository.GetPassiveSegmentProducts(id);
            productGroupVM.Products = products;

            List <SelectListItem> subProducts = new List <SelectListItem>();

            subProducts = productGroupSubProductRepository.GetProductGroupSubProducts(id);
            productGroupVM.SubProducts = subProducts;

            return(View(productGroupVM));
        }
Example #2
0
        //Edit Group
        public void Edit(PassiveSegmentBuilderGroupVM passiveSegmentBuilderGroup)
        {
            string adminUserGuid = HttpContext.Current.User.Identity.Name.Split(new[] { '|' })[0];

            //products to XML
            XmlDocument    doc = new XmlDocument();// Create the XML Declaration, and append it to XML document
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", null, null);

            doc.AppendChild(dec);
            XmlElement root = doc.CreateElement("ProductGroup");

            doc.AppendChild(root);

            if (passiveSegmentBuilderGroup.Products != null)
            {
                if (passiveSegmentBuilderGroup.Products.Count > 0)
                {
                    XmlElement xmlProducts = doc.CreateElement("Products");
                    foreach (SelectListItem p in passiveSegmentBuilderGroup.Products)
                    {
                        if (p.Selected)
                        {
                            XmlElement xmlProduct = doc.CreateElement("Product");
                            xmlProduct.InnerText = p.Value;
                            xmlProducts.AppendChild(xmlProduct);
                        }
                    }
                    root.AppendChild(xmlProducts);
                }
            }
            if (passiveSegmentBuilderGroup.SubProducts != null)
            {
                if (passiveSegmentBuilderGroup.SubProducts.Count > 0)
                {
                    XmlElement xmlSubProducts = doc.CreateElement("SubProducts");
                    foreach (SelectListItem p in passiveSegmentBuilderGroup.SubProducts)
                    {
                        XmlElement xmlSubProduct = doc.CreateElement("SubProduct");
                        xmlSubProduct.InnerText = p.Value;
                        xmlSubProducts.AppendChild(xmlSubProduct);
                    }
                    root.AppendChild(xmlSubProducts);
                }
            }

            db.spDesktopDataAdmin_UpdatePassiveSegmentBuilderGroup_v1(
                passiveSegmentBuilderGroup.ProductGroup.ProductGroupId,
                passiveSegmentBuilderGroup.ProductGroup.ProductGroupName,
                passiveSegmentBuilderGroup.ProductGroup.EnabledFlagNonNullable,
                passiveSegmentBuilderGroup.ProductGroup.EnabledDate,
                passiveSegmentBuilderGroup.ProductGroup.ExpiryDate,
                passiveSegmentBuilderGroup.ProductGroup.InheritFromParentFlag,
                passiveSegmentBuilderGroup.ProductGroup.HierarchyType,
                passiveSegmentBuilderGroup.ProductGroup.HierarchyCode,
                System.Xml.Linq.XElement.Parse(doc.OuterXml),
                adminUserGuid,
                passiveSegmentBuilderGroup.ProductGroup.VersionNumber
                );
        }
        public ActionResult UnDelete(PassiveSegmentBuilderGroupVM passiveSegmentBuilderGroupVM)
        {
            //Check Valid Item passed in Form
            if (passiveSegmentBuilderGroupVM.ProductGroup == null)
            {
                ViewData["ActionMethod"] = "DeletePost";
                return(View("RecordDoesNotExistError"));
            }

            //Get Item From Database
            ProductGroup productGroup = new ProductGroup();

            productGroup = passiveSegmentBuilderGroupRepository.GetGroup(passiveSegmentBuilderGroupVM.ProductGroup.ProductGroupId);

            //Check Exists in Databsase
            if (productGroup == null || productGroup.DeletedFlag == false)
            {
                ViewData["ActionMethod"] = "DeletePost";
                return(View("RecordDoesNotExistError"));
            }
            //Check Access
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToProductGroup(productGroup.ProductGroupId))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }
            //Delete Form Item
            try
            {
                passiveSegmentBuilderGroupVM.ProductGroup.DeletedFlag = false;
                productGroupRepository.UpdateGroupDeletedStatus(passiveSegmentBuilderGroupVM.ProductGroup);
            }
            catch (SqlException ex)
            {
                //Versioning Error - go to standard versionError page
                if (ex.Message == "SQLVersioningError")
                {
                    ViewData["ReturnURL"] = "/ProductGroup.mvc/UnDelete/" + productGroup.ProductGroupId;
                    return(View("VersionError"));
                }

                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }
            return(RedirectToAction("ListUnDeleted"));
        }
        // GET: /Edit
        public ActionResult Edit(int id)
        {
            //Get Item From Database
            ProductGroup productGroup = new ProductGroup();

            productGroup = passiveSegmentBuilderGroupRepository.GetGroup(id);

            //Check Exists
            if (productGroup == null)
            {
                ViewData["ActionMethod"] = "EditGet";
                return(View("RecordDoesNotExistError"));
            }
            //Check Access
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToProductGroup(id))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            PassiveSegmentBuilderGroupVM productGroupVM = new PassiveSegmentBuilderGroupVM();

            productGroupRepository.EditGroupForDisplay(productGroup);
            productGroupVM.ProductGroup = productGroup;

            TablesDomainHierarchyLevelRepository tablesDomainHierarchyLevelRepository = new TablesDomainHierarchyLevelRepository();
            SelectList hierarchyTypesList = new SelectList(tablesDomainHierarchyLevelRepository.GetDomainHierarchies(groupName).ToList(), "HierarchyLevelTableName", "HierarchyLevelTableName");

            productGroupVM.HierarchyTypes = hierarchyTypesList;

            List <SelectListItem> products = new List <SelectListItem>();

            products = productRepository.GetPassiveSegmentProducts(id);
            productGroupVM.Products = products;

            List <SelectListItem> subProducts = new List <SelectListItem>();

            subProducts = productGroupSubProductRepository.GetProductGroupSubProducts(id);
            productGroupVM.SubProducts = subProducts;

            List <SelectListItem> availableSubProducts = new List <SelectListItem>();

            availableSubProducts = productGroupSubProductRepository.GetProductGroupAvailableSubProducts(id);
            productGroupVM.AvailableSubProducts = availableSubProducts;

            return(View(productGroupVM));
        }
        // GET: /UnDelete
        public ActionResult UnDelete(int id)
        {
            //Get Item From Database
            ProductGroup productGroup = new ProductGroup();

            productGroup = passiveSegmentBuilderGroupRepository.GetGroup(id);

            //Check Exists
            if (productGroup == null || productGroup.DeletedFlag == false)
            {
                ViewData["ActionMethod"] = "DeleteGet";
                return(View("RecordDoesNotExistError"));
            }
            //Check Access
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToProductGroup(id))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            PassiveSegmentBuilderGroupVM productGroupVM = new PassiveSegmentBuilderGroupVM();

            productGroupRepository.EditGroupForDisplay(productGroup);
            productGroupVM.ProductGroup = productGroup;

            List <SelectListItem> products = new List <SelectListItem>();

            products = productRepository.GetPassiveSegmentProducts(id);
            productGroupVM.Products = products;

            List <SelectListItem> subProducts = new List <SelectListItem>();

            subProducts = productGroupSubProductRepository.GetProductGroupSubProducts(id);
            productGroupVM.SubProducts = subProducts;

            return(View(productGroupVM));
        }
        // GET: /Create
        public ActionResult Create()
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            PassiveSegmentBuilderGroupVM productGroupVM = new PassiveSegmentBuilderGroupVM();
            ProductGroup productGroup = new ProductGroup();

            productGroup.EnabledFlagNonNullable = true;
            productGroup.InheritFromParentFlag  = true;
            productGroupVM.ProductGroup         = productGroup;

            TablesDomainHierarchyLevelRepository tablesDomainHierarchyLevelRepository = new TablesDomainHierarchyLevelRepository();
            SelectList hierarchyTypesList = new SelectList(tablesDomainHierarchyLevelRepository.GetDomainHierarchies(groupName).ToList(), "HierarchyLevelTableName", "HierarchyLevelTableName");

            productGroupVM.HierarchyTypes = hierarchyTypesList;

            List <SelectListItem> products = new List <SelectListItem>();

            products = productRepository.GetPassiveSegmentProducts(null);
            productGroupVM.Products = products;

            List <SelectListItem> subProducts = new List <SelectListItem>();

            productGroupVM.SubProducts = subProducts;

            List <SelectListItem> availableSubProducts = new List <SelectListItem>();

            availableSubProducts = productGroupSubProductRepository.GetProductGroupAvailableSubProducts(null);
            productGroupVM.AvailableSubProducts = availableSubProducts;

            return(View(productGroupVM));
        }
        public ActionResult Edit(PassiveSegmentBuilderGroupVM passiveSegmentBuilderGroupVM)
        {
            //Get Item From Database
            ProductGroup productGroup = new ProductGroup();

            productGroup = passiveSegmentBuilderGroupRepository.GetGroup(passiveSegmentBuilderGroupVM.ProductGroup.ProductGroupId);

            //Check Exists
            if (productGroup == null)
            {
                ViewData["ActionMethod"] = "DeleteGet";
                return(View("RecordDoesNotExistError"));
            }
            //Check Access
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToProductGroup(productGroup.ProductGroupId))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }
            //Update Model From Form + Validate against DB
            try
            {
                UpdateModel <ProductGroup>(productGroup, "ProductGroup");
            }
            catch
            {
                string n = "";
                foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        n += error.ErrorMessage;
                    }
                }
                ViewData["Message"] = "ValidationError : " + n;
                return(View("Error"));
            }



            //Database Update
            try
            {
                passiveSegmentBuilderGroupRepository.Edit(passiveSegmentBuilderGroupVM);
            }
            catch (SqlException ex)
            {
                //Versioning Error
                if (ex.Message == "SQLVersioningError")
                {
                    ViewData["ReturnURL"] = "/ProductGroup.mvc/Edit/" + productGroup.ProductGroupId;
                    return(View("VersionError"));
                }
                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }
            return(RedirectToAction("ListUnDeleted"));
        }
        public ActionResult Create(PassiveSegmentBuilderGroupVM passiveSegmentBuilderGroupVM)
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //We need to extract group
            ProductGroup productGroup = new ProductGroup();

            productGroup = passiveSegmentBuilderGroupVM.ProductGroup;
            if (productGroup == null)
            {
                ViewData["ActionMethod"] = "CreatePost";
                return(View("RecordDoesNotExistError"));
            }

            //Check Access Rights to Domain Hierarchy
            if (!hierarchyRepository.AdminHasDomainHierarchyWriteAccess(productGroup.HierarchyType, productGroup.HierarchyCode, productGroup.SourceSystemCode, groupName))
            {
                ViewData["Message"] = "You cannot add to this hierarchy item";
                return(View("Error"));
            }

            //Update Model From Form + Validate against DB
            try
            {
                UpdateModel <ProductGroup>(productGroup, "ProductGroup");
            }
            catch
            {
                string n = "";
                foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        n += error.ErrorMessage;
                    }
                }
                ViewData["Message"] = "ValidationError : " + n;
                return(View("Error"));
            }


            //Database Update
            try
            {
                passiveSegmentBuilderGroupRepository.Add(passiveSegmentBuilderGroupVM);
            }
            catch (SqlException ex)
            {
                //Non-Unique Name
                if (ex.Message == "NonUniqueName")
                {
                    return(View("NonUniqueNameError"));
                }
                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }

            return(RedirectToAction("ListUnDeleted"));
        }