public bool LoadChildTemplates(ref HashSet <int> IDs, Template ParentTemplate, MySqlConnection ConX = null, bool StubsOnly = false) { bool rv = true; bool openConX = ConX == null; if (openConX) { ConX = new MySqlConnection(DBOps.ConnectionString); ConX.Open(); } try { string fields; if (StubsOnly) { fields = "t.TemplateID,t.Description,t.OwnerID"; } else { fields = "t.*"; } string sql = @"SELECT " + fields + @" FROM template t JOIN templatetree tt ON t.TemplateID=tt.ChildTemplateID WHERE tt.ParentTemplateID=" + TemplateID + @" ORDER BY tt.Seq,tt.ChildTemplateID;"; using (var cmd = new MySqlCommand(sql, ConX)) using (var rdr = cmd.ExecuteReader()) { while (rdr.Read()) { var item = new Template(); item.ParentTemplate = ParentTemplate; item.Read(rdr, StubsOnly); if (!IDs.Contains(item.TemplateID)) { ChildTemplates.Add(item); IDs.Add(item.TemplateID); } } } foreach (var child in ChildTemplates) { child.LoadChildTemplates(ref IDs, child, ConX); } } finally { if (openConX) { ConX.Close(); } } return(rv); }
public bool Update(out string Err, MySqlConnection ConX = null, bool SaveChildren = true) { Err = ""; bool openConX = ConX == null; if (openConX) { ConX = new MySqlConnection(DBOps.ConnectionString); ConX.Open(); } try { string sql = @"UPDATE template SET Description=@Description,X=@X,Y=@Y,Width=@Width,Height=@Height,Expression=@Expression,URL=@URL, Contents=@Contents,IsContainer=@IsContainer,IsRepeatingItem=@IsRepeatingItem,CanExpand=@CanExpand, StickToTop=@StickToTop,StickToBottom=@StickToBottom,ContinuedOver=@ContinuedOver, ContinuedFrom=@ContinuedFrom,NotContinuedOver=@NotContinuedOver,NotContinuedFrom=@NotContinuedFrom, KeepTogether=@KeepTogether,MinOrphanWidowRows=@MinOrphanWidowRows,OwnerID=@OwnerID WHERE TemplateID=@TemplateID; SELECT ROW_COUNT();"; var cmd = new MySqlCommand(sql, ConX); cmd.Parameters.AddWithValue("TemplateID", TemplateID); cmd.Parameters.AddWithValue("Description", (Description ?? "").Trim()); cmd.Parameters.AddWithValue("X", X); cmd.Parameters.AddWithValue("Y", Y); cmd.Parameters.AddWithValue("Width", Width); cmd.Parameters.AddWithValue("Height", Height); cmd.Parameters.AddWithValue("Expression", (Expression ?? "").Trim()); cmd.Parameters.AddWithValue("URL", (URL ?? "").Trim()); cmd.Parameters.AddWithValue("Contents", Contents); cmd.Parameters.AddWithValue("IsContainer", IsContainer); cmd.Parameters.AddWithValue("IsRepeatingItem", IsRepeatingItem); cmd.Parameters.AddWithValue("CanExpand", CanExpand); cmd.Parameters.AddWithValue("StickToTop", StickToTop); cmd.Parameters.AddWithValue("StickToBottom", StickToBottom); cmd.Parameters.AddWithValue("ContinuedOver", ContinuedOver); cmd.Parameters.AddWithValue("ContinuedFrom", ContinuedFrom); cmd.Parameters.AddWithValue("NotContinuedOver", NotContinuedOver); cmd.Parameters.AddWithValue("NotContinuedFrom", NotContinuedFrom); cmd.Parameters.AddWithValue("KeepTogether", KeepTogether); cmd.Parameters.AddWithValue("MinOrphanWidowRows", MinOrphanWidowRows); int?ownerID = OwnerID <= 0 ? null : (int?)OwnerID; cmd.Parameters.AddWithValue("OwnerID", ownerID); int rv = cmd.ExecuteScalarInt32(); if (rv <= 0) { Err = "The template could not be saved."; } if (TemplateID > 0 && SaveChildren) { ChildTemplates.SaveChildenForTemplate(TemplateID, out Err, ConX); if (!string.IsNullOrWhiteSpace(Err)) { return(false); } } return(TemplateID > 0); } catch (Exception ex) { Err = ex.Message; return(false); } finally { if (openConX) { ConX.Close(); } } }
public bool Create(out string Err, MySqlConnection ConX = null) { Err = ""; bool openConX = ConX == null; if (openConX) { ConX = new MySqlConnection(DBOps.ConnectionString); ConX.Open(); } try { string sql = @"INSERT INTO template (Description,X,Y,Width,Height,Expression,URL,Contents,IsContainer,IsRepeatingItem,CanExpand, StickToTop,StickToBottom,ContinuedOver,ContinuedFrom,NotContinuedOver,NotContinuedFrom,KeepTogether, MinOrphanWidowRows,OwnerID) VALUES(@Description,@X,@Y,@Width,@Height,@Expression,@URL,@Contents,@IsContainer,@IsRepeatingItem,@CanExpand, @StickToTop,@StickToBottom,@ContinuedOver,@ContinuedFrom,@NotContinuedOver,@NotContinuedFrom,@KeepTogether, @MinOrphanWidowRows,@OwnerID); SELECT LAST_INSERT_ID();"; var cmd = new MySqlCommand(sql, ConX); cmd.Parameters.AddWithValue("Description", (Description ?? "").Trim()); cmd.Parameters.AddWithValue("X", X); cmd.Parameters.AddWithValue("Y", Y); cmd.Parameters.AddWithValue("Width", Width); cmd.Parameters.AddWithValue("Height", Height); cmd.Parameters.AddWithValue("Expression", (Expression ?? "").Trim()); cmd.Parameters.AddWithValue("URL", (URL ?? "").Trim()); cmd.Parameters.AddWithValue("Contents", Contents); cmd.Parameters.AddWithValue("IsContainer", IsContainer); cmd.Parameters.AddWithValue("IsRepeatingItem", IsRepeatingItem); cmd.Parameters.AddWithValue("CanExpand", CanExpand); cmd.Parameters.AddWithValue("StickToTop", StickToTop); cmd.Parameters.AddWithValue("StickToBottom", StickToBottom); cmd.Parameters.AddWithValue("ContinuedOver", ContinuedOver); cmd.Parameters.AddWithValue("ContinuedFrom", ContinuedFrom); cmd.Parameters.AddWithValue("NotContinuedOver", NotContinuedOver); cmd.Parameters.AddWithValue("NotContinuedFrom", NotContinuedFrom); cmd.Parameters.AddWithValue("KeepTogether", KeepTogether); cmd.Parameters.AddWithValue("MinOrphanWidowRows", MinOrphanWidowRows); int?ownerID = OwnerID <= 0 ? null : (int?)OwnerID; cmd.Parameters.AddWithValue("OwnerID", ownerID); int rv = cmd.ExecuteScalarInt32(); if (rv > 0) { TemplateID = rv; } if (TemplateID <= 0) { Err = "The template could not be saved."; } if (TemplateID > 0) { ChildTemplates.SaveChildenForTemplate(TemplateID, out Err, ConX); if (!string.IsNullOrWhiteSpace(Err)) { return(false); } } return(TemplateID > 0); } catch (Exception ex) { Err = ex.Message; return(false); } finally { if (openConX) { ConX.Close(); } } }