/// <summary>
        /// AJAX handler to reply a JSON containing the events for
        /// EventCalendarAggregator placeholder and SimpleCalendar control
        /// </summary>
        /// <param name="context"></param>
        public void ProcessInternalRequest(DateTime start, DateTime end, HttpContext context)
        {
            bool showFile = PageUtils.getFromForm("showFile", false); // Basic rule: event calendar shows files, simple calendar does not

            CmsLanguage lang = CmsLanguage.GetFromHaystack(PageUtils.getFromForm("lang", "en"), CmsConfig.Languages);
            List <EventCalendarDb.EventCalendarDetailsData>  list            = new EventCalendarDb().fetchDetailsDataByRange(start, end, lang);
            List <EventCalendarDb.EventCalendarCategoryData> eventCategories = new EventCalendarDb().fetchCategoryList();
            List <FullCalendarEvent> eventsToOutput = new List <FullCalendarEvent>();

            foreach (EventCalendarDb.EventCalendarDetailsData c in list)
            {
                eventsToOutput.Add(new FullCalendarEvent(c, eventCategories));
                if (!showFile)
                {
                    continue;
                }

                CmsPage eventPage = CmsContext.getPageById(c.PageId);
                List <FileLibraryDetailsData> fileList = new FileLibraryDb().fetchDetailsData(lang, eventPage);
                foreach (FileLibraryDetailsData f in fileList)
                {
                    if (userHasAuthority(f))
                    {
                        eventsToOutput.Add(new FullCalendarEvent(c, f, eventCategories));
                    }
                }
            }

            string json = JsonWriter.Serialize(eventsToOutput.ToArray());

            context.Response.Write(json);
        }
        /// <summary>
        /// Delete the file from disk (rename the file)
        /// </summary>
        /// <param name="detailsPage"></param>
        /// <returns></returns>
        protected string deleteFileFromDisk(CmsPage detailsPage, CmsLanguage language)
        {
            FileLibraryDb db = new FileLibraryDb();
            List <FileLibraryDetailsData> fileList = db.fetchDetailsData(detailsPage);

            if (fileList.Count == 0)
            {
                return("");
            }


            foreach (FileLibraryDetailsData f in fileList)
            {
                try
                {
                    string newFileName       = "Deleted." + DateTime.Now.ToString("yyyyMMdd.HH.mm.ss.") + f.FileName;
                    string oldFileNameOnDisk = FileLibraryDetailsData.getTargetNameOnDisk(detailsPage, f.Identifier, language, f.FileName);
                    string newFileNameOnDisk = FileLibraryDetailsData.getTargetNameOnDisk(detailsPage, f.Identifier, language, newFileName);
                    if (File.Exists(oldFileNameOnDisk))
                    {
                        File.Move(oldFileNameOnDisk, newFileNameOnDisk);
                    }
                }
                catch (Exception ex)
                {
                    return("Error deleting file from disk (" + f.FileName + ": " + ex.Message + ").");
                }
            }
            return("");
        }
Exemple #3
0
        /// <summary>
        /// Handle form submit, either updating an existing category, or adding
        /// a new category.
        /// </summary>
        /// <param name="langArray"></param>
        /// <param name="controlId"></param>
        /// <returns></returns>
        protected string handleFormSubmit(CmsLanguage[] langArray, string controlId)
        {
            int id = PageUtils.getFromForm(controlId + "id", -999);

            if (id == -999)
            {
                return("");
            }

            int step = langArray.Length;

            FileLibraryCategoryData[] data = null;

            lock (this)       // lock this code segment because auto-id cannot be used during insert
            {
                if (id == -1) // add new record
                {
                    data = createAddRecord(langArray, controlId);
                }
                else // update existing record
                {
                    data = createUpdateRecord(langArray, controlId, id);
                }

                FileLibraryDb db = new FileLibraryDb();

                foreach (FileLibraryCategoryData d in data)
                {
                    if (id == -1)
                    {   // when ID is -1, it is ADD mode
                        if (db.insertCategoryData(d) == false)
                        {
                            return(formatErrorMsg("Error adding record."));
                        }
                    }
                    else
                    {
                        if (PageUtils.getFromForm(controlId + "delete", "") == "true")
                        {   // when ID != -1 and DELETE flag is set, DEL mode
                            string msg = handleDelete(d);
                            if (msg != "")
                            {
                                return(msg);
                            }
                        }
                        else
                        {   // when ID != -1 and no DELETE flag, CHG mode
                            if (db.updateCategoryData(d) == false)
                            {
                                return(formatErrorMsg("Error updating record."));
                            }
                        }
                    }
                }
            }

            return(formatNormalMsg("Updated successfully."));
        }
        /// <summary>
        /// Delete the FileLibraryDetails (set Deleted timestamp)
        /// </summary>
        /// <param name="detailsPage"></param>
        /// <returns></returns>
        protected string deleteFileLibraryDetails(CmsPage detailsPage)
        {
            FileLibraryDb db = new FileLibraryDb();

            if (db.deleteDetailsData(detailsPage) == false)
            {
                return("Error deleting file details (Id " + detailsPage.ID.ToString() + ").");
            }

            return("");
        }
        /// <summary>
        /// Delete the FileLibraryAggregator (set Deleted timestamp)
        /// </summary>
        /// <param name="aggregatorPage"></param>
        /// <returns></returns>
        protected string deleteFileLibraryAggregator(CmsPage aggregatorPage)
        {
            FileLibraryDb db = new FileLibraryDb();

            if (db.deleteAggregatorData(aggregatorPage) == false)
            {
                return("Error deleting file aggregator details (Id " + aggregatorPage.ID.ToString() + ").");
            }

            return("");
        }
        /// <summary>
        /// Get all the files attached to this event and render the html.
        /// </summary>
        /// <param name="page"></param>
        /// <param name="lang"></param>
        /// <returns></returns>
        protected string renderAttachedFileList(CmsPage page, CmsLanguage lang, CmsUrlFormat fileUrlFormat)
        {
            List <FileLibraryDetailsData> fileList = new FileLibraryDb().fetchDetailsData(lang, page);

            if (fileList.Count == 0)
            {
                return("");
            }

            WebPortalUser u             = CmsContext.currentWebPortalUser;
            List <string> renderedLinks = new List <string>();

            foreach (FileLibraryDetailsData f in fileList)
            {
                string link = renderAttachedFile(lang, f, u, fileUrlFormat);
                if (link != "")
                {
                    renderedLinks.Add(link);
                }
            }
            if (renderedLinks.Count == 0)
            {
                return("");
            }

            StringBuilder html = new StringBuilder();

            html.Append("<tr valign=\"top\">");
            html.Append("<td>" + getAttachedFilesText(lang) + ":</td>");
            html.Append("<td>" + renderedLinks[0] + "</td>");
            html.Append("</tr>");

            for (int x = 1; x < renderedLinks.Count; x++)
            {
                html.Append("<tr valign=\"top\">");
                html.Append("<td> </td>");
                html.Append("<td>" + renderedLinks[x] + "</td>");
                html.Append("</tr>");
            }

            return(html.ToString());
        }
Exemple #7
0
        /// <summary>
        /// Create table body to show the Event Calendar Category records.
        /// </summary>
        /// <param name="langArray"></param>
        /// <param name="controlId"></param>
        /// <returns></returns>
        protected string generateContent(CmsLanguage[] langArray, string controlId)
        {
            FileLibraryDb db = new FileLibraryDb();
            List <FileLibraryCategoryData> list = db.fetchCategoryList();

            int           step = langArray.Length;
            StringBuilder html = new StringBuilder();

            for (int x = 0; x < list.Count; x = x + step)
            {
                html.Append("<tr>" + EOL);
                FileLibraryCategoryData data1 = list[x];
                html.Append("<td>" + EOL);
                html.Append("<input class=\"" + controlId + "chgButton\" type=\"button\" value=\"Edit\" title=\"" + data1.CategoryId + "\" />" + EOL);
                html.Append("<input class=\"" + controlId + "delButton\" type=\"button\" value=\"Delete\" title=\"" + data1.CategoryId + "\" />" + EOL);
                html.Append("<input class=\"" + controlId + "chgSaveButton\" type=\"button\" value=\"Save\" title=\"" + data1.CategoryId + "\" />" + EOL);
                html.Append("<input class=\"" + controlId + "chgCancelButton\" type=\"button\" value=\"Cancel\" title=\"" + data1.CategoryId + "\" />" + EOL);
                html.Append("</td>" + EOL);

                html.Append("<td>" + EOL);
                html.Append("<select title=\"" + data1.EventRequired.ToString().ToLower() + "\" class=\"" + controlId + "chg\" disabled=\"disabled\" id=\"" + controlId + "eventRequired_" + data1.CategoryId + "\" name=\"" + controlId + "eventRequired\">" + EOL);
                html.Append(generateEventRequiredOption(data1.EventRequired.ToString().ToLower()));
                html.Append("</select>" + EOL);
                html.Append("</td>" + EOL);

                html.Append("<td>" + EOL);
                html.Append("<div id=\"" + controlId + "sortOrdinal_" + data1.CategoryId.ToString() + "\">" + data1.SortOrdinal.ToString() + "</td>" + EOL);
                html.Append("</td>" + EOL);

                for (int y = 0; y < step; y++)
                {
                    string l = langArray[y].shortCode;
                    FileLibraryCategoryData data2 = list[y + x];

                    string catName = data2.CategoryName;
                    html.Append("<td><div id=\"" + controlId + "name_" + l + "_" + data1.CategoryId + "\">" + catName + "</div></td>" + EOL);
                }

                html.Append("</tr>" + EOL);
            }
            return(html.ToString());
        }
Exemple #8
0
        /// <summary>
        /// Create the entity object by reading the new values from html form.
        /// </summary>
        /// <param name="langArray"></param>
        /// <param name="controlId"></param>
        /// <returns></returns>
        protected FileLibraryCategoryData[] createAddRecord(CmsLanguage[] langArray, string controlId)
        {
            int step = langArray.Length;

            FileLibraryCategoryData[] data = new FileLibraryCategoryData[step];
            FileLibraryDb             db   = new FileLibraryDb();
            int newId = db.fetchNextCategoryId();

            for (int x = 0; x < step; x++)
            {
                string l = langArray[x].shortCode;
                data[x]               = new FileLibraryCategoryData();
                data[x].CategoryId    = newId;
                data[x].Lang          = langArray[x];
                data[x].EventRequired = PageUtils.getFromForm(controlId + "addEventRequired", false);
                data[x].CategoryName  = PageUtils.getFromForm(controlId + "addName_" + l, "");
                data[x].SortOrdinal   = PageUtils.getFromForm(controlId + "addSortOrdinal", 0);
            }
            return(data);
        }
Exemple #9
0
 /// <summary>
 /// Delete record from category table
 /// </summary>
 /// <param name="d"></param>
 /// <returns></returns>
 protected string handleDelete(FileLibraryCategoryData d)
 {
     try
     {
         FileLibraryDb db = new FileLibraryDb();
         if (db.fetchCountByCategory(d) > 0)
         {
             return(formatErrorMsg("Some files under this category, cannot delete category record."));
         }
         else if (db.deleteCategoryData(d) == false)
         {
             return(formatErrorMsg("Error deleting record."));
         }
         else
         {
             return("");
         }
     }
     catch (Exception ex)
     {
         return(formatErrorMsg("Error deleting record. " + ex.Message));
     }
 }