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 newAlias = 0;
foreach (var pre in values)
{
var existing = existingByIds.FirstOrDefault(valueDto => valueDto.Id == pre.Value.Id);
if (existing != null)
{
existing.Value = pre.Value.Value;
existing.SortOrder = sortOrder;
_preValRepository.AddOrUpdate(new PreValueEntity
{
//setting an id will update it
Id = existing.Id,
Alias = existing.Alias,
SortOrder = existing.SortOrder,
Value = existing.Value,
DataType = dataType,
});
}
else
{
_preValRepository.AddOrUpdate(new PreValueEntity
{
Alias = pre.Key,
SortOrder = sortOrder,
Value = pre.Value.Value,
DataType = dataType,
});
}
foreach (var pre in values)
{
var existing = existingByIds.FirstOrDefault(valueDto => valueDto.Id == pre.Value.Id);
if (existing != null)
{
existing.Value = pre.Value.Value;
existing.SortOrder = sortOrder;
_preValRepository.AddOrUpdate(new PreValueEntity
{
//setting an id will update it
Id = existing.Id,
Alias = existing.Alias,
SortOrder = existing.SortOrder,
Value = existing.Value,
DataType = dataType,
});
}
else
{
// 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)
{
newAlias++;
}
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++;
}
}