Ejemplo n.º 1
0
        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);
        }