public static void Save(DayExtra dayExtra, IBlogDataService dataService) { FileStream fileStream = FileUtils.OpenForWrite(Path.Combine(ContentPath, dayExtra.FileName)); if (fileStream != null) { try { XmlSerializer ser = new XmlSerializer(typeof(DayExtra), "urn:newtelligence-com:dasblog:runtime:data"); using (StreamWriter writer = new StreamWriter(fileStream)) { ser.Serialize(writer, dayExtra); } } catch (Exception ex) { WriteLine(String.Format("ERROR: Cannot write file: {0}", dayExtra.FileName)); WriteLine(ex.ToString()); } finally { fileStream.Close(); } } }
public DayExtra GetDayExtra(DateTime date) { DayExtra ex = data.GetDayExtra(date); ex.Load(); return(ex); }
private void downloadMenu_Click(object sender, System.EventArgs e) { ResolveFileCallback old = BlogXData.Resolver; BlogXData.Resolver = new ResolveFileCallback(ResolvePathToCache); Debug.WriteLine("Begin GetDaysWithEntries"); DateTime[] dates = browse.GetDaysWithEntries(); Debug.WriteLine("End GetDaysWithEntries"); foreach (DateTime date in dates) { Debug.WriteLine("Begin GetDayEntry"); DayEntry dayEntry = browse.GetDayEntry(date); Debug.WriteLine("End GetDayEntry"); dayEntry.Save(); Debug.WriteLine("Begin GetDayExtra"); DayExtra dayExtra = browse.GetDayExtra(date); Debug.WriteLine("End GetDayExtra"); if (dayExtra.Comments.Count > 0) { dayExtra.Save(); } } BlogXData.Resolver = old; }
private void WebForm1_PreRender(object sender, System.EventArgs e) { Control root = blogContent; int entryCount = 0; int dayCount = 0; DateTime start = StartDate; HtmlGenericControl date = null; SiteConfig config = SiteConfig.GetSiteConfig(); categoryList.Data = data; bool needHeader = true; foreach (DayEntry day in data.Days) { if (day.Date <= start) { if (dayCount < 7) { day.Load(); day.Entries.Sort(new EntrySorter()); dayCount++; DayExtra extra = data.GetDayExtra(day.Date); needHeader = true; foreach (Entry entry in day.Entries) { if (needHeader) { date = new HtmlGenericControl("div"); date.Attributes["class"] = "date"; date.ID = day.Date.ToString("yyyy-MM-dd"); HtmlGenericControl dateHeader = new HtmlGenericControl("h2"); dateHeader.Attributes["class"] = "dateHeader"; dateHeader.Controls.Add(new LiteralControl(day.Date.ToString("MMM dd, yyyy"))); date.Controls.Add(dateHeader); root.Controls.Add(date); needHeader = false; } entryCount++; EntryView view = (EntryView)LoadControl("EntryView.ascx"); view.Data = data; view.EntryTitleAsLink = config.EntryTitleAsLink; view.Extra = extra; view.Entry = entry; date.Controls.Add(view); } } } } }
private void Page_Load(object sender, System.EventArgs e) { BlogXUtils.TrackReferrer(Request, Server); EntryIdCache ecache = new EntryIdCache(); ecache.Ensure(data); Control root = content; string entryId = Request.QueryString["guid"]; if (entryId != null && entryId.Length > 0) { entryId = entryId.ToUpper(); } else { entryId = Request.PathInfo.Substring(1).ToUpper(); } DateTime found = new DateTime(); foreach (EntryIdCacheEntry ece in ecache.Entries) { if (ece.EntryId.ToUpper() == entryId) { found = ece.Date; break; } } foreach (DayEntry day in data.Days) { if (day.Date == found) { day.Load(); DayExtra extra = data.GetDayExtra(day.Date); foreach (Entry entry in day.Entries) { if (entryId.ToUpper() == entry.EntryId.ToUpper()) { EntryView view = (EntryView)LoadControl("EntryView.ascx"); view.DateFormat = "MM/dd/yyyy h:mm tt"; view.Data = data; view.Extra = extra; view.Entry = entry; root.Controls.Add(view); break; } } } } }
void ViewingDayChangedUICallback(DayExtra extra) { EndOperation(); Debug.WriteLine("End GetDayExtra"); viewingDayExtra = extra; foreach (Entry entry in viewingDay.Entries) { ListViewItem item = new ListViewItem(); item.Text = entry.Created.ToString("hh:mm tt"); item.SubItems.Add(entry.Categories); item.SubItems.Add(entry.Title); item.SubItems.Add(viewingDayExtra.GetCommentsFor(entry.EntryId).Count.ToString()); item.SubItems.Add(entry.EntryId); item.Tag = entry; entryList.Items.Add(item); } }
public static void RepairComments(DayExtra dayExtra, IBlogDataService dataService) { //SDH: Corruption or poorly imported comments can have no entry id! // Create one if it's missing. This will slowly repair the damage for (int i = 0; i < dayExtra.Comments.Count; i++) { if (dayExtra.Comments[i].EntryId == null) { dayExtra.Comments[i].EntryId = Guid.NewGuid().ToString(); Entry entry = dataService.GetEntry(dayExtra.Comments[i].TargetEntryId); if (entry != null) { dayExtra.Comments[i].TargetTitle = entry.Title; } WriteLine(String.Format("...Repaired Comments in {0}", dayExtra.FileName)); } } }
private void add_Click(object sender, System.EventArgs e) { if (SiteConfig.GetSiteConfig().CommentSpamGuard) { string word = SiteConfig.GetCommentWords()[(int)ViewState["spamCode"]]; if (!word.Equals(securityWord.Text)) { // UNDONE : Should show an error page... // return; } } string entryId = ViewState["entryId"].ToString().ToUpper(); if (rememberMe.Checked) { Response.Cookies.Add(new HttpCookie("name", name.Text)); Response.Cookies.Add(new HttpCookie("email", email.Text)); Response.Cookies.Add(new HttpCookie("homepage", homepage.Text)); } EntryIdCache ecache = new EntryIdCache(); ecache.Ensure(data); DateTime dateFound = new DateTime(); bool found = false; foreach (EntryIdCacheEntry ece in ecache.Entries) { if (ece.EntryId.ToUpper() == entryId) { dateFound = ece.Date; entryId = ece.EntryId; found = true; break; } } if (found) { if (SiteConfig.GetSiteConfig().AllowComments) { DayExtra extra = data.GetDayExtra(dateFound); extra.Load(); Comment c = new Comment(); c.Initialize(); c.Author = name.Text; c.AuthorEmail = email.Text; c.AuthorHomepage = homepage.Text; c.Content = Server.HtmlEncode(comment.Text); c.TargetEntryId = entryId; extra.Comments.Add(c); extra.Save(); data.IncrementExtraChange(); } name.Text = ""; email.Text = ""; homepage.Text = ""; comment.Text = ""; Response.Redirect("default.aspx", false); } }
private void CommentView_PreRender(object sender, System.EventArgs e) { string entryId = (string)ViewState["entryId"]; EntryIdCache ecache = new EntryIdCache(); ecache.Ensure(data); Control root = comments; DateTime found = new DateTime(); foreach (EntryIdCacheEntry ece in ecache.Entries) { if (ece.EntryId.ToUpper() == entryId) { found = ece.Date; entryId = ece.EntryId; break; } } bool obfuscateEmail = SiteConfig.GetSiteConfig().ObfuscateEmail; DayExtra extra = data.GetDayExtra(found); extra.Load(); foreach (DayEntry day in data.Days) { if (day.Date == found) { day.Load(); foreach (Entry entry in day.Entries) { if (entry.EntryId == entryId) { EntryView entryView = (EntryView)LoadControl("EntryView.ascx"); entryView.Data = data; entryView.Entry = entry; entryView.Extra = extra; comments.Controls.Add(entryView); } } } } commentSpamGuard.Visible = SiteConfig.GetSiteConfig().CommentSpamGuard; if (SiteConfig.GetSiteConfig().CommentSpamGuard) { System.Security.Cryptography.RandomNumberGenerator r = System.Security.Cryptography.RandomNumberGenerator.Create(); byte[] randomData = new byte[4]; r.GetBytes(randomData); int code = 0; for (int i = 0; i < randomData.Length; i++) { code += randomData[i]; } code = code % SiteConfig.GetCommentWords().Length; securityWordImage.ImageUrl = BlogXUtils.RelativeToRoot("verifyimagegen.ashx?code=" + code); ViewState["spamCode"] = code; } foreach (Comment c in extra.GetCommentsFor(entryId)) { SingleCommentView view = (SingleCommentView)LoadControl("SingleCommentView.ascx"); view.Comment = c; view.ObfuscateEmail = obfuscateEmail; root.Controls.Add(view); } }
void ViewingDayChangedCallback(IAsyncResult result) { DayExtra extra = ((BlogXBrowsing)result.AsyncState).EndGetDayExtra(result); BeginInvoke(new UICallbackDayExtra(ViewingDayChangedUICallback), new object[] { extra }); }