protected override void PersistUpdatedItem(ILogViewerQuery entity) { entity.UpdatingEntity(); var exists = Database.ExecuteScalar <int>($"SELECT COUNT(*) FROM {Core.Constants.DatabaseSchema.Tables.LogViewerQuery} WHERE name = @name AND id <> @id", new { name = entity.Name, id = entity.Id }); //ensure there is no other log query with the same name on another entity if (exists > 0) { throw new DuplicateNameException($"The log query name '{entity.Name}' is already used"); } var factory = new LogViewerQueryModelFactory(); var dto = factory.BuildDto(entity); Database.Update(dto); }
protected override void PersistNewItem(ILogViewerQuery entity) { var exists = Database.ExecuteScalar <int>($"SELECT COUNT(*) FROM {Core.Constants.DatabaseSchema.Tables.LogViewerQuery} WHERE name = @name", new { name = entity.Name }); if (exists > 0) { throw new DuplicateNameException($"The log query name '{entity.Name}' is already used"); } entity.AddingEntity(); var factory = new LogViewerQueryModelFactory(); var dto = factory.BuildDto(entity); var id = Convert.ToInt32(Database.Insert(dto)); entity.Id = id; }