public void Update(Dymbnail entity) { Procedure("Dymbnails_Update") .WithParameters(new Dictionary <string, object> { { "@ID", entity.ID }, { "@Title", entity.Title }, { "@Description", entity.Description }, { "@Content", entity.Content } }).ExecuteNonQuery(); }
public void Update(Dymbnail entity) { using (var database = new Database()) { var variableNames = variablesService.ExtractNamesFromXslt(entity.Content); database.BeginTransaction(); // Update variables var oldVariables = variablesService.GetList(entity.ID); var variables = new List <Variable>(variableNames.Count); foreach (var name in variableNames) { var newVariable = oldVariables.FirstOrDefault(variable => variable.Name == name); if (newVariable == null) { newVariable = new Variable { DymbnailID = entity.ID, Name = name, Title = name }; } variables.Add(newVariable); } var variablesToDelete = oldVariables.Except(variables).Select(variable => variable.ID); foreach (var id in variablesToDelete) { database.Variables.Delete(id); } foreach (var variable in variables) { if (variable.ID > 0) { continue; } database.Variables.Create(variable); } // Update entity database.Dymbnails.Update(entity); database.CommitTransaction(); } }