Merge pull request #541 from jforage/issue-U4-5758

Fix to issue U4-5758. Branched off from 7.2.0
This commit is contained in:
Shannon Deminick
2014-11-19 12:03:36 +11:00

View File

@@ -369,37 +369,53 @@ AND umbracoNode.id <> @id",
} }
var sortOrder = 1; var sortOrder = 1;
var newAlias = 0;
foreach (var pre in values) foreach (var pre in values)
{ {
var existing = existingByIds.FirstOrDefault(valueDto => valueDto.Id == pre.Value.Id); var existing = existingByIds.FirstOrDefault(valueDto => valueDto.Id == pre.Value.Id);
if (existing != null) if (existing != null)
{ {
existing.Value = pre.Value.Value; existing.Value = pre.Value.Value;
existing.SortOrder = sortOrder; existing.SortOrder = sortOrder;
_preValRepository.AddOrUpdate(new PreValueEntity _preValRepository.AddOrUpdate(new PreValueEntity
{ {
//setting an id will update it //setting an id will update it
Id = existing.Id, Id = existing.Id,
Alias = existing.Alias, Alias = existing.Alias,
SortOrder = existing.SortOrder, SortOrder = existing.SortOrder,
Value = existing.Value, Value = existing.Value,
DataType = dataType, DataType = dataType,
}); });
} }
else else
{ {
_preValRepository.AddOrUpdate(new PreValueEntity // adding new prevalue so make sure our alias is unique by adding 1 to the largest existing (or newly added already within this batch)
{ if (newAlias > 0)
Alias = pre.Key, {
SortOrder = sortOrder, newAlias++;
Value = pre.Value.Value, }
DataType = dataType, else
}); {
} newAlias =
Database.ExecuteScalar<int>(
"SELECT (coalesce(max(alias), 0) + 1) " +
"FROM cmsDataTypePreValues " +
"WHERE datatypeNodeId = @datatypeNodeId",
new { datatypeNodeId = dataType.Id });
}
sortOrder++; _preValRepository.AddOrUpdate(new PreValueEntity
} {
Alias = Convert.ToString(newAlias),
SortOrder = sortOrder,
Value = pre.Value.Value,
DataType = dataType,
});
}
sortOrder++;
}
} }