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