Exemplo n.º 1
0
        private void CopyMagentoProductGroupSetting(int fromProductGroupMappingID, int toProductGroupMappingID)
        {
            MagentoProductGroupSetting fromMagentoProductGroupSetting = magentoSettingRepo.GetMagentoSettingByMasterGroupMappingID(fromProductGroupMappingID);

            if (fromMagentoProductGroupSetting != null)
            {
                MagentoProductGroupSetting toMagentoProductGroupSetting = magentoSettingRepo.GetMagentoSettingByMasterGroupMappingID(toProductGroupMappingID);
                if (toMagentoProductGroupSetting == null)
                {
                    MagentoProductGroupSetting newMagentoProductGroupSetting = new MagentoProductGroupSetting()
                    {
                        ProductGroupmappingID = fromMagentoProductGroupSetting.ProductGroupmappingID, //todo: remove this
                        ShowInMenu            = fromMagentoProductGroupSetting.ShowInMenu,
                        DisabledMenu          = fromMagentoProductGroupSetting.DisabledMenu,
                        IsAnchor             = fromMagentoProductGroupSetting.IsAnchor,
                        MasterGroupMappingID = toProductGroupMappingID
                    };
                    magentoSettingRepo.InsertMagentoSetting(newMagentoProductGroupSetting);
                }
                else
                {
                    if (fromMagentoProductGroupSetting.ShowInMenu != toMagentoProductGroupSetting.ShowInMenu ||
                        fromMagentoProductGroupSetting.DisabledMenu != toMagentoProductGroupSetting.DisabledMenu ||
                        fromMagentoProductGroupSetting.IsAnchor != toMagentoProductGroupSetting.IsAnchor
                        )
                    {
                        List <string> listOfIngnoreProperties = generateIgnoreList.GenerateIgnoreProperties(new MagentoProductGroupSetting(), x => x.MagentoProductGroupSettingID, x => x.ProductGroupmappingID, x => x.CreatedBy, x => x.CreationTime, x => x.LastModifiedBy, x => x.LastModificationTime, x => x.MasterGroupMappingID);
                        magentoSettingRepo.UpdateMagentoProductGroupSetting(toMagentoProductGroupSetting, fromMagentoProductGroupSetting, listOfIngnoreProperties);
                    }
                }
            }
        }
        public ActionResult Create(int?LayoutID)
        {
            return(Create <ProductGroupMapping>(isMultipartRequest: true, onCreatingAction: (unit, pmg) =>
            {
                if (LayoutID.HasValue)
                {
                    pmg.MagentoPageLayoutID = LayoutID.Value;
                }

                var m = new MagentoProductGroupSetting();
                SetSpecialPropertyValues <MagentoProductGroupSetting>(m);


                if ((m.ShowInMenu.HasValue && m.ShowInMenu.Value) || (m.IsAnchor.HasValue & m.IsAnchor.Value) || (m.DisabledMenu.HasValue && m.DisabledMenu.Value))
                {
                    m.ProductGroupMapping = pmg;
                    unit.Service <MagentoProductGroupSetting>().Create(m);
                }

                if (pmg.ConnectorID == 0 && Client.User.ConnectorID.HasValue)
                {
                    pmg.ConnectorID = Client.User.ConnectorID.Value;
                }

                foreach (string f in Request.Files)
                {
                    var file = Request.Files.Get(f);
                    if (!string.IsNullOrEmpty(file.FileName))
                    {
                        string externalPath = ConfigurationManager.AppSettings["FTPMediaDirectory"];
                        string internalPath = ConfigurationManager.AppSettings["FTPProductGroupMappingMediaPath"];

                        string dirPath = Path.Combine(externalPath, internalPath);

                        if (!Directory.Exists(dirPath))
                        {
                            Directory.CreateDirectory(dirPath);
                        }
                        string path = Path.Combine(dirPath, file.FileName);


                        if (file.FileName != String.Empty)
                        {
                            file.SaveAs(path);
                        }

                        if (f == "ProductGroupMappingPath")
                        {
                            pmg.ProductGroupMappingPath = file.FileName;
                        }
                        else
                        {
                            pmg.MappingThumbnailImagePath = file.FileName;
                        }
                    }
                }
            }));
        }
Exemplo n.º 3
0
        public MagentoProductGroupSetting GetMagentoSettingByMasterGroupMappingID(int MasterGroupMappingID)
        {
            MagentoProductGroupSetting magentoProductGroupSetting = petaPoco.SingleOrDefault <MagentoProductGroupSetting>(string.Format(@"
        SELECT *
        FROM MagentoProductGroupSetting
        WHERE MasterGroupMappingID = {0}
      ", MasterGroupMappingID));

            return(magentoProductGroupSetting);
        }
Exemplo n.º 4
0
        public void UpdateMagentoProductGroupSetting(MagentoProductGroupSetting currentMagentoSetting, MagentoProductGroupSetting compareMagentoSetting, List <string> ignoreProperties)
        {
            List <string> changes = generateUpdateFields.GetPropertiesForUpdate(compareMagentoSetting, currentMagentoSetting, ignoreProperties);

            if (changes.Count > 0)
            {
                var updateQuery = string.Join(",", changes);
                petaPoco.Update <MagentoProductGroupSetting>(string.Format(@"
          SET {1}
          WHERE MagentoProductGroupSettingID = {0}
        ", currentMagentoSetting.MagentoProductGroupSettingID, updateQuery));
            }
        }
Exemplo n.º 5
0
        public int InsertMagentoSetting(MagentoProductGroupSetting magentoProductGroupSetting)
        {
            PetaPocoMagentoProductGroupSetting newMagentoSetting = new PetaPocoMagentoProductGroupSetting();

            newMagentoSetting.ProductGroupmappingID = magentoProductGroupSetting.ProductGroupmappingID.Value; //todo: remove this
            newMagentoSetting.ShowInMenu            = magentoProductGroupSetting.ShowInMenu;
            newMagentoSetting.DisabledMenu          = magentoProductGroupSetting.DisabledMenu;
            newMagentoSetting.IsAnchor             = magentoProductGroupSetting.IsAnchor;
            newMagentoSetting.MasterGroupMappingID = magentoProductGroupSetting.MasterGroupMappingID;
            newMagentoSetting.CreatedBy            = 1; // todo: need fix!

            var newMagentoProductGroupSettingID = petaPoco.Insert("MagentoProductGroupSetting", "MagentoProductGroupSettingID", true, newMagentoSetting);

            return(int.Parse(newMagentoProductGroupSettingID.ToString()));
        }
        public ActionResult Update(int ProductGroupMappingID, bool?ShowInMenu, bool?DisabledMenu, bool?IsAnchor, string Relation)
        {
            return(Update <ProductGroupMapping>(

                       c => c.ProductGroupMappingID == ProductGroupMappingID,
                       action: (unit, mapping) =>
            {
                var ex = unit.Service <ProductGroupMapping>().Get(c => c.ProductGroupMappingID == ProductGroupMappingID);
                mapping.ProductGroupMappingPath = ex.ProductGroupMappingPath;
                mapping.MappingThumbnailImagePath = ex.MappingThumbnailImagePath;

                foreach (string f in Request.Files)
                {
                    var file = Request.Files.Get(f);
                    if (!string.IsNullOrEmpty(file.FileName))
                    {
                        string externalPath = ConfigurationManager.AppSettings["FTPMediaDirectory"];
                        string internalPath = ConfigurationManager.AppSettings["FTPProductGroupMappingMediaPath"];

                        string dirPath = Path.Combine(externalPath, internalPath);

                        if (!Directory.Exists(dirPath))
                        {
                            Directory.CreateDirectory(dirPath);
                        }
                        string path = Path.Combine(dirPath, file.FileName);


                        if (file.FileName != String.Empty)
                        {
                            file.SaveAs(path);
                        }

                        if (f == "ProductGroupMappingPath")
                        {
                            mapping.ProductGroupMappingPath = file.FileName;
                        }
                        else
                        {
                            mapping.MappingThumbnailImagePath = file.FileName;
                        }
                    }
                }


                mapping.FilterByParentGroup = Request.Params["FilterByParentGroup"] != null ? Request.Params["FilterByParentGroup"].Contains("on") ? true : false : false;
                mapping.FlattenHierarchy = Request.Params["FlattenHierarchy"] != null ? Request.Params["FlattenHierarchy"].Contains("on") ? true : false : false;

                var magentoProductGroupSetting = unit.Service <MagentoProductGroupSetting>().Get(x => x.ProductGroupmappingID == ProductGroupMappingID);

                if (magentoProductGroupSetting == null)
                {
                    magentoProductGroupSetting = new MagentoProductGroupSetting();
                    magentoProductGroupSetting.ProductGroupmappingID = ProductGroupMappingID;
                    unit.Service <MagentoProductGroupSetting>().Create(magentoProductGroupSetting);
                }

                SetSpecialPropertyValues(magentoProductGroupSetting);

                if (magentoProductGroupSetting.ShowInMenu.HasValue && !magentoProductGroupSetting.ShowInMenu.Value)
                {
                    magentoProductGroupSetting.ShowInMenu = null;
                }


                int?layoutID = Request.Params["LayoutID"] != null ? Request.Params["LayoutID"].ParseToInt() : null;
                if (layoutID.HasValue && layoutID.Value == -1)
                {
                    layoutID = null;
                }
                mapping.MagentoPageLayoutID = layoutID;
                mapping.Relation = Relation;

                magentoProductGroupSetting.LastModifiedBy = Client.User.UserID;
                magentoProductGroupSetting.LastModificationTime = DateTime.Now;

                //inactive groups for connectors

                var userConnectors = GetUserConnectors();

                foreach (var con in userConnectors)
                {
                    var ProductGroupIsCurrentlyActiveForConnector = con.ProductGroupMappingsNotActive.FirstOrDefault(x => x.ProductGroupMappingID == ProductGroupMappingID) == null;       //so it is not in de DB

                    var checkboxValue = Request.Params["ConnectorID_" + con.ConnectorID];

                    if (checkboxValue != null)                          //checked
                    {
                        if (!ProductGroupIsCurrentlyActiveForConnector) //it is in de DB, so remove it
                        {
                            con.ProductGroupMappingsNotActive.Remove(ex);
                        }
                    }
                    else                                               //not checked
                    {
                        if (ProductGroupIsCurrentlyActiveForConnector) //it is NOT in de DB, so add it (only store inactive groups in the DB)
                        {
                            con.ProductGroupMappingsNotActive.Add(ex);
                        }
                    }
                }
            }, isMultipartRequest: true, properties: new string[] { "Score", "FilterByParent", "FlattenHierarchy", "CustomProductGroupLabel", "Relation" }));
        }
Exemplo n.º 7
0
        public void Process()
        {
            var connectorID = (_connector.ParentConnectorID.HasValue ? _connector.ParentConnectorID.Value : _connector.ConnectorID);
            var score       = 0;

            Dictionary <int, bool> existingCPGs = _repoContentProductGroup.GetAll(c => c.ConnectorID == _connector.ConnectorID && c.IsCustom && c.MasterGroupMappingID != null).Select(c => c.ContentProductGroupID).Select(c => new { ContentProductGroupID = c, Active = false }).ToDictionary(c => c.ContentProductGroupID, c => c.Active);
            List <string>          allMasterGroupMappingBackendLabels = _repoMasterGroupMapping.GetAll(c => c.ConnectorID == _connector.ConnectorID && c.BackendMatchingLabel != null).Select(c => c.BackendMatchingLabel).ToList().Where(c => !string.IsNullOrEmpty(c)).ToList();

            foreach (var grp in _groups)
            {
                var parentMasterGroupMapping = _repoMasterGroupMapping.GetAll(c => c.ConnectorID == connectorID && c.ProductGroupID == _getTheLookGroupID).Where(c => c.MasterGroupMappingParent.ProductGroup.ProductGroupVendors.FirstOrDefault(l => l.VendorID == 1).VendorProductGroupCode1 == grp.TargetGroup).FirstOrDefault();

                if (parentMasterGroupMapping == null)
                {
                    continue;
                }

                var label   = grp.BackendLabel;
                var mapping = _repoMasterGroupMapping.GetSingle(c => c.ProductGroupID == _groupID && c.BackendMatchingLabel == label && c.ParentMasterGroupMappingID == parentMasterGroupMapping.MasterGroupMappingID);

                allMasterGroupMappingBackendLabels.Remove(label);

                if (mapping == null)
                {
                    mapping = new MasterGroupMapping()
                    {
                        CustomProductGroupLabel    = label,
                        ProductGroupID             = _groupID,
                        ConnectorID                = connectorID,
                        MasterGroupMappingParent   = parentMasterGroupMapping,
                        ParentMasterGroupMappingID = parentMasterGroupMapping.MasterGroupMappingID,
                        BackendMatchingLabel       = label,
                        Score = score,
                        MasterGroupMappingProducts = new List <MasterGroupMappingProduct>()
                    };

                    var magentoProductGroupSetting = new MagentoProductGroupSetting()
                    {
                        MasterGroupMapping = mapping,
                        DisabledMenu       = true,
                        ShowInMenu         = true
                    };

                    _repoMasterGroupMapping.Add(mapping);
                    _repoMagentoSetting.Add(magentoProductGroupSetting);
                }

                foreach (var prod in grp.Products)
                {
                    var activeCPG = _repoContentProductGroup.GetSingle(c =>
                                                                       c.ProductID == prod &&
                                                                       c.ConnectorID == _connector.ConnectorID &&
                                                                       c.IsCustom &&
                                                                       c.MasterGroupMapping.BackendMatchingLabel == mapping.BackendMatchingLabel &&
                                                                       c.MasterGroupMapping.ParentMasterGroupMappingID == mapping.ParentMasterGroupMappingID);

                    if (activeCPG == null)
                    {
                        var content = _repoContent.GetSingle(c => c.ProductID == prod && c.ConnectorID == _connector.ConnectorID);
                        if (content != null)
                        {
                            activeCPG = new ContentProductGroup()
                            {
                                ProductID             = prod,
                                ConnectorID           = _connector.ConnectorID,
                                IsCustom              = true,
                                MasterGroupMapping    = mapping,
                                ProductGroupMappingID = 933 //TODO: for now hardcoded, remove when total migration is complete
                            };
                            _repoContentProductGroup.Add(activeCPG);

                            var masterGroupMappingProduct = mapping.MasterGroupMappingProducts.FirstOrDefault(x => x.ProductID == prod);

                            if (masterGroupMappingProduct == null)
                            {
                                masterGroupMappingProduct = new MasterGroupMappingProduct()
                                {
                                    ProductID = prod,
                                    IsCustom  = true
                                };

                                mapping.MasterGroupMappingProducts.Add(masterGroupMappingProduct);
                            }
                        }
                    }
                    else
                    {
                        existingCPGs[activeCPG.ContentProductGroupID] = true;
                    }
                }
                score++;
            }

            foreach (var cp in existingCPGs.Where(c => !c.Value))
            {
                var contentProductGroup = _repoContentProductGroup.GetSingle(c => c.ContentProductGroupID == cp.Key);
                if (contentProductGroup.CreatedBy == 1) ///quick fix
                {
                    _repoContentProductGroup.Delete(contentProductGroup);
                }
            }
        }