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; } } } })); }
public MagentoProductGroupSetting GetMagentoSettingByMasterGroupMappingID(int MasterGroupMappingID) { MagentoProductGroupSetting magentoProductGroupSetting = petaPoco.SingleOrDefault <MagentoProductGroupSetting>(string.Format(@" SELECT * FROM MagentoProductGroupSetting WHERE MasterGroupMappingID = {0} ", MasterGroupMappingID)); return(magentoProductGroupSetting); }
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)); } }
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" })); }
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); } } }