private static void AddCatalogLanguage(CatalogDto workingDto, CatalogDto.CatalogRow catalogRow, string languageCode) { CatalogDto.CatalogLanguageRow languageRow = workingDto.CatalogLanguage.NewCatalogLanguageRow(); languageRow.LanguageCode = languageCode; languageRow.CatalogId = catalogRow.CatalogId; workingDto.CatalogLanguage.AddCatalogLanguageRow(languageRow); }
/// <summary> /// Saves the changes. /// </summary> /// <param name="context">The context.</param> public void SaveChanges(IDictionary context) { CatalogDto dto = (CatalogDto)context["Catalog"]; CatalogDto.CatalogRow row = null; if (dto.Catalog.Count > 0) { row = dto.Catalog[0]; row.Modified = DateTime.UtcNow; } else { row = dto.Catalog.NewCatalogRow(); row.Created = DateTime.UtcNow; row.Modified = DateTime.UtcNow; row.IsPrimary = true; } row.Name = CatalogName.Text; row.DefaultCurrency = DefaultCurrency.SelectedValue; row.DefaultLanguage = DefaultLanguage.SelectedValue; row.WeightBase = BaseWeight.SelectedValue; row.StartDate = this.AvailableFrom.Value.ToUniversalTime(); row.EndDate = this.ExpiresOn.Value.ToUniversalTime(); row.IsActive = this.IsCatalogActive.IsSelected; row.SortOrder = Int32.Parse(this.SortOrder.Text); row.ApplicationId = CatalogConfiguration.Instance.ApplicationId; if (row.RowState == DataRowState.Detached) { dto.Catalog.Rows.Add(row); } // Populate other languages foreach (ListItem item in OtherLanguagesList.Items) { if (item.Selected && !DefaultLanguage.SelectedValue.Equals(item.Value)) { if (dto.CatalogLanguage.Select(String.Format("CatalogId = {0} and LanguageCode = '{1}'", CatalogId, item.Value)).Length == 0) { CatalogDto.CatalogLanguageRow langRow = dto.CatalogLanguage.NewCatalogLanguageRow(); langRow.LanguageCode = item.Value; langRow.CatalogId = row.CatalogId; dto.CatalogLanguage.Rows.Add(langRow); } } else { DataRow[] rows = dto.CatalogLanguage.Select(String.Format("CatalogId = {0} and LanguageCode = '{1}'", CatalogId, item.Value)); if (rows.Length > 0) { foreach (CatalogDto.CatalogLanguageRow lrow in rows) { lrow.Delete(); } } } } // Populate sites foreach (ListItem item in SiteList.Items) { if (item.Selected) // add row { DataRow[] rows = dto.SiteCatalog.Select(String.Format("CatalogId = {0} and SiteId = '{1}'", CatalogId, item.Value)); if (rows.Length == 0) { CatalogDto.SiteCatalogRow siteRow = dto.SiteCatalog.NewSiteCatalogRow(); siteRow.SiteId = new Guid(item.Value); siteRow.CatalogId = row.CatalogId; dto.SiteCatalog.Rows.Add(siteRow); } } else // delete row { DataRow[] rows = dto.SiteCatalog.Select(String.Format("CatalogId = {0} and SiteId = '{1}'", CatalogId, item.Value)); if (rows.Length > 0) { foreach (CatalogDto.SiteCatalogRow srow in rows) { srow.Delete(); } } } } // Re add sites }