public void CreateCourse(Course c, List<CourseItemEntity> cis) { rep.CreateCourse(c); try { foreach (CourseItemEntity ci in cis) { ci.CourseId = c.CourseId; rep.CreateCourseItem(ci); } } catch (Exception) { DeleteCourse(c); throw; } //Create CoursePage DNNHelper d = new DNNHelper(); string pageUrl = "C" + c.CourseId.ToString(); string pageName = pageUrl + ": " + c.Title; try { TabInfo newTab = d.AddCoursePage(pageName, pageUrl); c.TabId = newTab.TabID; rep.UpdateCourse(c); } catch (Exception) { DeleteCourse(c); throw; } }
protected void btnSave_Click(object sender, EventArgs e) { BaseHandler bh = new BaseHandler(); PHText t = bh.GetCurrentVersionText(CultureCode, ItemId, ItemType); if (t == null) { t = new PHText(); t.CreatedByUserId = UserId; t.CultureCode = CultureCode; t.ItemId = ItemId; t.ItemType = ItemType; } t.Text = Regex.Replace(tbTheText.Text, "<[^>]*>", String.Empty); t.ModifiedByUserId = UserId; if (Case == EControlCase.Edit) { bh.SavePhTextInAllCc(t); if (ItemType == ETextItemType.PluggTitle) { string newPageName = ItemId.ToString() + ": " + t.Text; PluggContainer pc = new PluggContainer(CultureCode, ItemId); DNNHelper h = new DNNHelper(); h.RenameTab(pc.ThePlugg.TabId, newPageName); } if (ItemType == ETextItemType.CourseTitle) { string newPageName = "C" + ItemId.ToString() + ": " + t.Text; CourseContainer cc = new CourseContainer(CultureCode, ItemId); DNNHelper h = new DNNHelper(); h.RenameTab(cc.TheCourse.TabId, newPageName); } Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(TabId, "", "edit=0", AttachQS)); } else if (Case == EControlCase.Translate) { t.CultureCodeStatus = ECultureCodeStatus.HumanTranslated; bh.SavePhText(t); Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(TabId, "", "translate=0", AttachQS)); } }
public void SavePlugg(PluggContainer p, List<object> cs) { if (p.ThePlugg.CreatedInCultureCode != null && p.CultureCode != p.ThePlugg.CreatedInCultureCode) throw new Exception("Cannot use SavePlugg unless you are saving it in the creation language."); p.ThePlugg.CreatedInCultureCode = p.CultureCode; try { bool isNew = p.ThePlugg.PluggId == 0; //Temporary - to avoid login - remove soon p.ThePlugg.CreatedByUserId = 1; p.ThePlugg.ModifiedByUserId = 1; //Save Plugg entity p.ThePlugg.ModifiedOnDate = DateTime.Now; if (isNew) { p.ThePlugg.CreatedOnDate = DateTime.Now; rep.CreatePlugg(p.ThePlugg); } else rep.UpdatePlugg(p.ThePlugg); //Save Title if (p.TheTitle == null || p.TheTitle.Text == null) throw new Exception("Cannot Save Plugg. TheTitle cannot be null"); if (p.TheTitle.TextId == 0) { p.TheTitle.ItemId = p.ThePlugg.PluggId; p.TheTitle.ItemType = ETextItemType.PluggTitle; p.TheTitle.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; p.TheTitle.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheTitle.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; } SavePhTextInAllCc(p.TheTitle); //Save or Update if (p.TheDescription != null && p.TheDescription.Text != null) { if (p.TheDescription.TextId == 0) { p.TheDescription.ItemId = p.ThePlugg.PluggId; p.TheDescription.ItemType = ETextItemType.PluggDescription; p.TheDescription.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; p.TheDescription.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheDescription.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; } SavePhTextInAllCc(p.TheDescription); } int cmpOrder = 1; PluggComponent pc = new PluggComponent(); pc.PluggId = p.ThePlugg.PluggId; foreach (object cmp in cs) { pc.ComponentOrder = cmpOrder; switch (cmp.GetType().Name) { case "PHText": PHText theText = (PHText)cmp; switch (theText.ItemType) { case ETextItemType.PluggComponentRichRichText: pc.ComponentType = EComponentType.RichRichText; break; case ETextItemType.PluggComponentRichText: pc.ComponentType = EComponentType.RichText; break; case ETextItemType.PluggComponentLabel: pc.ComponentType = EComponentType.Label; break; } rep.CreatePluggComponent(pc); theText.ItemId = pc.PluggComponentId; theText.CultureCode = p.ThePlugg.CreatedInCultureCode; theText.CreatedByUserId = p.ThePlugg.CreatedByUserId; SavePhTextInAllCc(theText); break; case "PHLatex": PHLatex theLatex = (PHLatex)cmp; pc.ComponentType = EComponentType.Latex; rep.CreatePluggComponent(pc); theLatex.ItemId = pc.PluggComponentId; theLatex.CultureCode = p.ThePlugg.CreatedInCultureCode; theLatex.CreatedByUserId = p.ThePlugg.CreatedByUserId; SaveLatexTextInAllCc(theLatex); break; case "YouTube": pc.ComponentType = EComponentType.YouTube; rep.CreatePluggComponent(pc); YouTube theVideo = (YouTube)cmp; theVideo.CreatedByUserId = p.ThePlugg.CreatedByUserId; theVideo.PluggComponentId = pc.PluggComponentId; SaveYouTube(theVideo); break; } cmpOrder++; } //Create PluggPage DNNHelper d = new DNNHelper(); string pageUrl = p.ThePlugg.PluggId.ToString(); string pageName = pageUrl + ": " + p.TheTitle.Text; TabInfo newTab = d.AddPluggPage(pageName, pageUrl); p.ThePlugg.TabId = newTab.TabID; rep.UpdatePlugg(p.ThePlugg); } catch (Exception) { //Todo: Update //DeletePlugg(p.ThePlugg); throw; } }
public void CreateBasicPlugg(PluggContainer p) { if (p.CultureCode == null || p.CultureCode == "") throw new Exception("Cannot Create Plugg. CutureCode cannot be null"); if (p.TheTitle == null || p.TheTitle.Text == null || p.TheTitle.Text == "") throw new Exception("Cannot Save Plugg. Title cannot be null"); p.ThePlugg.CreatedInCultureCode = p.CultureCode; p.ThePlugg.CreatedOnDate = DateTime.Now; p.ThePlugg.ModifiedByUserId = p.ThePlugg.CreatedByUserId; p.ThePlugg.ModifiedOnDate = p.ThePlugg.CreatedOnDate; p.ThePlugg.IsDeleted = false; p.ThePlugg.IsListed = true; rep.CreatePlugg(p.ThePlugg); //Save Title p.TheTitle.ItemId = p.ThePlugg.PluggId; p.TheTitle.ItemType = ETextItemType.PluggTitle; p.TheTitle.CultureCode = p.CultureCode; p.TheTitle.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; p.TheTitle.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheTitle.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; SavePhTextInAllCc(p.TheTitle); //Save or Update //Save Description if (p.TheDescription != null && p.TheDescription.Text != null && p.TheDescription.Text != "") { p.TheDescription.ItemId = p.ThePlugg.PluggId; p.TheDescription.ItemType = ETextItemType.PluggDescription; p.TheDescription.CultureCode = p.CultureCode; p.TheDescription.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; p.TheDescription.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheDescription.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; SavePhTextInAllCc(p.TheDescription); } PluggComponent video = new PluggComponent(); video.ComponentOrder = 1; video.ComponentType = EComponentType.YouTube; AddComponent(p, video); PluggComponent rrText = new PluggComponent(); rrText.ComponentOrder = 2; rrText.ComponentType = EComponentType.RichRichText; p.TheComponents = null; AddComponent(p, rrText); //Create PluggPage DNNHelper d = new DNNHelper(); string pageUrl = p.ThePlugg.PluggId.ToString(); string pageName = pageUrl + ": " + p.TheTitle.Text; TabInfo newTab = d.AddPluggPage(pageName, pageUrl); p.ThePlugg.TabId = newTab.TabID; rep.UpdatePlugg(p.ThePlugg); }
public void CreateCourse(CourseContainer c) { if (c.CultureCode == null || c.CultureCode == "") throw new Exception("Cannot Create Course. CutureCode cannot be null"); if (c.TheTitle == null || c.TheTitle.Text == null || c.TheTitle.Text == "") throw new Exception("Cannot Save Course. Title cannot be null"); c.TheCourse.CreatedInCultureCode = c.CultureCode; c.TheCourse.CreatedOnDate = DateTime.Now; c.TheCourse.ModifiedByUserId = c.TheCourse.CreatedByUserId; c.TheCourse.ModifiedOnDate = c.TheCourse.CreatedOnDate; c.TheCourse.IsDeleted = false; c.TheCourse.IsListed = true; bool isNew = c.TheCourse.CourseId == 0; if (isNew) { rep.CreateCourse(c.TheCourse); } else rep.UpdateCourse(c.TheCourse); //Save Title c.TheTitle.ItemId = c.TheCourse.CourseId; c.TheTitle.ItemType = ETextItemType.CourseTitle; c.TheTitle.CultureCode = c.CultureCode; c.TheTitle.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; c.TheTitle.CreatedByUserId = c.TheCourse.CreatedByUserId; c.TheTitle.ModifiedByUserId = c.TheCourse.ModifiedByUserId; SavePhTextInAllCc(c.TheTitle); //Save or Update //Save Description if (c.TheDescription != null && c.TheDescription.Text != null && c.TheDescription.Text != "") { c.TheDescription.ItemId = c.TheCourse.CourseId; c.TheDescription.ItemType = ETextItemType.CourseDescription; c.TheDescription.CultureCode = c.CultureCode; c.TheDescription.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; c.TheDescription.CreatedByUserId = c.TheCourse.CreatedByUserId; c.TheDescription.ModifiedByUserId = c.TheCourse.ModifiedByUserId; SavePhTextInAllCc(c.TheDescription); } if (c.TheRichRichText != null && c.TheRichRichText.Text != null && c.TheRichRichText.Text != "") { c.TheRichRichText.ItemId = c.TheCourse.CourseId; c.TheRichRichText.ItemType = ETextItemType.CourseRichRichText; c.TheRichRichText.CultureCode = c.CultureCode; c.TheRichRichText.CultureCodeStatus = ECultureCodeStatus.InCreationLanguage; c.TheRichRichText.CreatedByUserId = c.TheCourse.CreatedByUserId; c.TheRichRichText.ModifiedByUserId = c.TheCourse.ModifiedByUserId; SavePhTextInAllCc(c.TheRichRichText); } //Create CoursePage if (isNew) { DNNHelper d = new DNNHelper(); string pageUrl = "C" + c.TheCourse.CourseId.ToString(); string pageName = pageUrl + ": " + c.TheTitle.Text; TabInfo newTab = d.AddCoursePage(pageName, pageUrl); c.TheCourse.TabId = newTab.TabID; rep.UpdateCourse(c.TheCourse); } }
public void DeleteCourse(Course c) { // Todo: Don't delete course if: It has comments or ratings // Todo: Soft delete of Course if (c == null) { throw new Exception("Cannot delete: Course not initialized"); return; } TabController tabController = new TabController(); TabInfo getTab = tabController.GetTab(c.TabId); if (getTab != null) { DNNHelper h = new DNNHelper(); h.DeleteTab(getTab); } var cis = rep.GetItemsInCourse(c.CourseId); foreach (CourseItem ciDelete in cis) { rep.DeleteCourseItem(ciDelete); } rep.DeleteCourse(c); }
public void SavePlugg(PluggContainer p) { try { bool isNew = p.ThePlugg.PluggId == 0; //Temporary - remove soon p.ThePlugg.Title = "Title no longer here"; p.ThePlugg.CreatedByUserId = 1; p.ThePlugg.ModifiedByUserId = 1; if (isNew) rep.CreatePlugg(p.ThePlugg); else rep.UpdatePlugg(p.ThePlugg); //Todo: Update.. p.TheTitle.ItemId = p.ThePlugg.PluggId; p.TheTitle.ItemType = ETextItemType.PluggTitle; p.TheTitle.CcStatus = ECCStatus.InCreationLanguage; p.TheTitle.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheTitle.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; SavePhText(p.TheTitle); //Todo: Update.. if (p.TheHtmlText != null) { p.TheHtmlText.ItemId = p.ThePlugg.PluggId; p.TheHtmlText.ItemType = ETextItemType.PluggHtml; p.TheHtmlText.CcStatus = ECCStatus.InCreationLanguage; p.TheHtmlText.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheHtmlText.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; SavePhText(p.TheHtmlText); } //Todo: Update.. if (p.TheLatex != null) { p.TheLatex.ItemId = p.ThePlugg.PluggId; p.TheLatex.ItemType = ELatexType.Plugg; p.TheLatex.CcStatus = ECCStatus.InCreationLanguage; p.TheLatex.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheLatex.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; LatexToMathMLConverter myConverter = new LatexToMathMLConverter(p.TheLatex.Text); myConverter.Convert(); p.TheLatex.HtmlText = myConverter.HTMLOutput; SaveLatexText(p.TheLatex); } LocaleController lc = new LocaleController(); var locales = lc.GetLocales(PortalID); foreach (var locale in locales) { if (locale.Key != p.ThePlugg.CreatedInCultureCode) { GoogleTranslate(p.TheTitle, locale.Key); if (p.TheHtmlText != null) GoogleTranslate(p.TheHtmlText, locale.Key); if (p.TheLatex != null) GoogleTranslate(p.TheLatex, locale.Key); } } //Create PluggPage DNNHelper d = new DNNHelper(); string pageUrl = p.ThePlugg.PluggId.ToString(); string pageName = pageUrl + ": " + p.TheTitle.Text; TabInfo newTab = d.AddPluggPage(pageName, pageUrl); p.ThePlugg.TabId = newTab.TabID; rep.UpdatePlugg(p.ThePlugg); } catch (Exception) { //Todo: Update DeletePlugg(p.ThePlugg); throw; } }
public void DeletePlugg(Plugg p) { // Todo: Don't delete Plugg if: It has comments or ratings, Its included in a course. // Todo: Soft delete of Plugg if (p == null) { throw new Exception("Cannot delete: Plugg not initialized"); return; } TabController tabController = new TabController(); TabInfo getTab = tabController.GetTab(p.TabId); if (getTab != null) { DNNHelper h = new DNNHelper(); h.DeleteTab(getTab); } rep.DeleteAllPhTextForItem(p.PluggId, (int)ETextItemType.PluggTitle); rep.DeleteAllPhTextForItem(p.PluggId, (int)ETextItemType.PluggHtml); rep.DeleteAllLatexForItem(p.PluggId, (int)ELatexType.Plugg); rep.DeletePlugg(p); }
protected void btnDeleteTab_Click(object sender, EventArgs e) { DNNHelper h = new DNNHelper(); TabInfo t; string s = tbDeleteTabID.Text; if (s.IndexOf(',') > -1) { string[] tabIDs = s.Split(','); for (int i = 0; i < tabIDs.Length; i++) { t = new TabInfo(); t.TabID = Convert.ToInt32(tabIDs[i]); h.DeleteTab(t); } } else { int posOfDash = s.IndexOf('-'); if (posOfDash > -1) { string starts = s.Substring(0, posOfDash); string ends = s.Substring(posOfDash + 1, s.Length - posOfDash - 1); int startint = Convert.ToInt32(starts); int endint = Convert.ToInt32(ends); for (int tID = startint; tID <= endint; tID++) { t = new TabInfo(); t.TabID = tID; h.DeleteTab(t); } } else { t = new TabInfo(); t.TabID = Convert.ToInt32(s); h.DeleteTab(t); } } tbDeleteTabID.Text = ""; }
public void DeletePlugg(Plugg p) { // Todo: Don't delete Plugg if: It has comments or ratings or its included in a course. if (p == null) { throw new Exception("Cannot delete: Plugg not initialized"); } //Delete Plugg page if (p.TabId != 0) { DNNHelper h = new DNNHelper(); h.DeleteTab(p.TabId); } //Delete Plugg title and Plugg description rep.DeleteAllPhTextForItem(p.PluggId, ETextItemType.PluggTitle); rep.DeleteAllPhTextForItem(p.PluggId, ETextItemType.PluggDescription); //Delete all Pluggcomponents PluggContainer pc = new PluggContainer("en-us", p.PluggId); pc.LoadComponents(); foreach (PluggComponent c in pc.TheComponents) { switch (c.ComponentType) { case EComponentType.YouTube: YouTube yt = GetYouTubeByComponentId(c.PluggComponentId); if (yt!=null) rep.DeleteYouTube(yt); break; case EComponentType.RichRichText: rep.DeleteAllPhTextForItem(c.PluggComponentId, ETextItemType.PluggComponentRichRichText); break; case EComponentType.RichText: rep.DeleteAllPhTextForItem(c.PluggComponentId, ETextItemType.PluggComponentRichText); break; case EComponentType.Label: rep.DeleteAllPhTextForItem(c.PluggComponentId, ETextItemType.PluggComponentLabel); break; case EComponentType.Latex: rep.DeleteAllLatexForItem(c.PluggComponentId, ELatexItemType.PluggComponentLatex); break; default: break; } rep.DeletePluggComponent(c); } //Delete Pluggentity rep.DeletePlugg(p); }
public void DeleteCourse(Course c) { // Todo: Don't delete Course if: It has comments or ratings if (c == null) { throw new Exception("Cannot delete: Course not initialized"); } //Delete Course page if (c.TabId != 0) { DNNHelper h = new DNNHelper(); h.DeleteTab(c.TabId); } rep.DeleteAllPhTextForItem(c.CourseId, ETextItemType.CourseTitle); rep.DeleteAllPhTextForItem(c.CourseId, ETextItemType.CourseDescription); rep.DeleteAllPhTextForItem(c.CourseId, ETextItemType.CourseRichRichText); var CPEs = GetCPEsInCourse(c.CourseId); foreach (CoursePluggEntity cp in CPEs) { rep.DeleteAllPhTextForItem(cp.CoursePluggId, ETextItemType.CoursePluggText); rep.DeleteCoursePlugg(cp); } rep.DeleteCourse(c); }