public IActionResult UpdateLocalizationLabel(UpdateLocalizationLabelModel model) { if (ModelState.IsValid) { var labels = _localizedLabelService.Query(n => n.Where(f => f.ObjectColumnName == model.ObjectColumnName && f.ObjectId == model.ObjectId)); int i = 0; foreach (var item in model.Label) { var original = labels.Find(n => (int)n.LanguageId == model.LanguageId[i]); if (original != null) { if (item.IsEmpty()) { //delete _localizedLabelService.DeleteById(original.LocalizedLabelId); } else { //update _localizedLabelService.Update(n => n.Set(f => f.Label, item).Where(f => f.LocalizedLabelId == original.LocalizedLabelId)); } } else { //create //_localizedLabelService.Create(SolutionDefaults.DefaultSolutionId, item, labels.First().LabelTypeCode, model.ObjectColumnName, model.ObjectId, (LanguageEnum)Enum.ToObject(typeof(LanguageEnum), model.LanguageId[i])); } i++; } return(UpdateSuccess()); } return(UpdateFailure(GetModelErrors())); }
public bool Import(string file, Guid solutionId, LanguageCode baseLanguageId) { var data = new DataTable();// _dataImporter.ExcelToDataTable(file); var languages = _languageService.Query(n => n.Sort(s => s.SortAscending(f => f.Name))); foreach (DataRow row in data.Rows) { var objectId = Guid.Parse(row[0].ToString()); var name = row[1].ToString(); var typeCode = int.Parse(row[2].ToString()); foreach (var lg in languages) { if (data.Columns.Contains(lg.UniqueId.ToString())) { var label = row[lg.UniqueId.ToString()] != null ? row[lg.UniqueId.ToString()].ToString() : string.Empty; var originalLabel = _localizedLabelService.Find(n => n.ObjectId == objectId && n.ObjectColumnName == name && (int)n.LanguageId == lg.UniqueId); if (originalLabel != null) { if (label.IsEmpty()) { _localizedLabelService.DeleteById(originalLabel.LocalizedLabelId); } else if (!label.IsCaseInsensitiveEqual(originalLabel.Label)) { originalLabel.Label = label; _localizedLabelService.Update(originalLabel); } } else if (label.IsNotEmpty()) { _localizedLabelService.Create(solutionId, label, typeCode.ToString(), name, objectId, (LanguageCode)Enum.Parse(typeof(LanguageCode), lg.UniqueId.ToString())); } } } } return(true); }
public void DeleteOriginalLabels(Domain.SystemForm original) { var oldForm = new FormDescriptor().DeserializeFromJson(original.FormConfig); List <Guid> objectIds = new List <Guid>(); if (oldForm.Header != null && oldForm.Header.Rows.NotEmpty()) { //header foreach (var row in oldForm.Header.Rows) { foreach (var cell in row.Cells) { if (!cell.Id.Equals(Guid.Empty) && cell.Label.IsNotEmpty()) { objectIds.Add(cell.Id); } } } } if (oldForm.NavGroups.NotEmpty()) { //navs foreach (var navg in oldForm.NavGroups) { if (!navg.Id.Equals(Guid.Empty) && navg.Label.IsNotEmpty()) { objectIds.Add(navg.Id); } foreach (var item in navg.NavItems) { if (!item.Id.Equals(Guid.Empty) && item.Label.IsNotEmpty()) { objectIds.Add(item.Id); } } } } if (oldForm.Panels.NotEmpty()) { //tabs foreach (var tab in oldForm.Panels) { if (!tab.Id.Equals(Guid.Empty) && tab.Label.IsNotEmpty()) { objectIds.Add(tab.Id); } foreach (var sec in tab.Sections) { if (!sec.Id.Equals(Guid.Empty) && sec.Label.IsNotEmpty()) { objectIds.Add(sec.Id); } foreach (var row in sec.Rows) { foreach (var cell in row.Cells) { if (!cell.Id.Equals(Guid.Empty) && cell.Label.IsNotEmpty()) { objectIds.Add(cell.Id); } } } } } } if (oldForm.Footer != null && oldForm.Footer.Rows.NotEmpty()) { //footer foreach (var row in oldForm.Footer.Rows) { foreach (var cell in row.Cells) { if (!cell.Id.Equals(Guid.Empty) && cell.Label.IsNotEmpty()) { objectIds.Add(cell.Id); } } } } if (objectIds.NotEmpty()) { _localizedLabelService.DeleteById(objectIds.ToArray()); } }