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;
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #9
0
        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 = "";
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }