protected void SetCalendar() { SiteData site = SiteData.CurrentSite; DateTime dtStart = Calendar1.CalendarDate.AddDays(1 - Calendar1.CalendarDate.Day).Date; DateTime dtEnd = dtStart.AddMonths(1).Date; dtStart = site.ConvertSiteTimeToUTC(dtStart); dtEnd = site.ConvertSiteTimeToUTC(dtEnd); using (CalendarDataContext db = CalendarDataContext.GetDataContext()) { List <vw_carrot_CalendarEvent> lst = (from c in db.vw_carrot_CalendarEvents where c.EventDate >= dtStart && c.EventDate < dtEnd && c.SiteID == SiteID orderby c.EventDate, c.EventStartTime select c).ToList(); lst.ForEach(x => x.EventDate = site.ConvertUTCToSiteTime(x.EventDate)); List <DateTime> dates = (from dd in lst select dd.EventDate.Date).Distinct().ToList(); Calendar1.HilightDateList = dates; CalendarHelper.BindDataBoundControl(dgEvents, lst); } }
protected void SetCalendar() { SiteData site = SiteData.CurrentSite; DateTime dtStart = Calendar1.CalendarDate.AddDays(1 - Calendar1.CalendarDate.Day).Date; DateTime dtEnd = dtStart.AddMonths(1).Date; dtStart = site.ConvertSiteTimeToUTC(dtStart); dtEnd = site.ConvertSiteTimeToUTC(dtEnd); List <vw_carrot_CalendarEvent> lst = null; using (CalendarDataContext db = CalendarDataContext.GetDataContext()) { lst = (from c in db.vw_carrot_CalendarEvents where c.EventDate >= dtStart && c.EventDate < dtEnd && c.SiteID == SiteID && c.IsPublic == true && (!c.IsCancelledEvent || c.IsCancelledPublic) && (!c.IsCancelledSeries || c.IsCancelledPublic) orderby c.EventDate ascending, c.EventStartTime ascending, c.IsCancelledEvent ascending select c).ToList(); } lst.ForEach(x => x.EventDate = site.ConvertUTCToSiteTime(x.EventDate)); List <DateTime> dates = (from dd in lst select dd.EventDate.Date).Distinct().ToList(); List <Guid> cats = (from dd in lst select dd.CalendarEventCategoryID).Distinct().ToList(); Calendar1.HilightDateList = dates; CalendarHelper.BindRepeater(rpEvent, lst); if (lst.Count > 0) { phNone.Visible = false; } else { phNone.Visible = true; } SetDDLSelections(); CalendarHelper.BindRepeater(rpCat, CalendarHelper.GetCalendarCategories(SiteID).Where(x => cats.Contains(x.CalendarEventCategoryID))); }
protected void SetCalendar() { SiteData site = SiteData.CurrentSite; DateTime dtStart = DateTime.Now.AddDays(DaysInPast).Date; DateTime dtEnd = DateTime.Now.AddDays(DaysInFuture).Date; dtStart = site.ConvertSiteTimeToUTC(dtStart); dtEnd = site.ConvertSiteTimeToUTC(dtEnd); using (CalendarDataContext db = CalendarDataContext.GetDataContext()) { var lst = (from c in db.vw_carrot_CalendarEvents where c.EventDate >= dtStart && c.EventDate <= dtEnd && c.SiteID == SiteID && c.IsPublic == true && (!c.IsCancelledEvent || c.IsCancelledPublic) && (!c.IsCancelledSeries || c.IsCancelledPublic) orderby c.EventDate, c.EventStartTime select c).Take(TakeTop).ToList(); lst.ForEach(x => x.EventDate = site.ConvertUTCToSiteTime(x.EventDate)); CalendarHelper.BindRepeater(rpDates, lst); } if (!string.IsNullOrEmpty(this.CalendarURL)) { lnkHyper.NavigateUrl = this.CalendarURL; phLink.Visible = true; } else { phLink.Visible = false; } }
private void ImportStuff() { SiteData.CurrentSite = null; SiteData site = SiteData.CurrentSite; litMessage.Text = "<p>No Items Selected For Import</p>"; string sMsg = ""; if (chkSite.Checked || chkPages.Checked || chkPosts.Checked) { List <string> tags = site.GetTagList().Select(x => x.TagSlug.ToLowerInvariant()).ToList(); List <string> cats = site.GetCategoryList().Select(x => x.CategorySlug.ToLowerInvariant()).ToList(); wpSite.Tags.RemoveAll(x => tags.Contains(x.InfoKey.ToLowerInvariant())); wpSite.Categories.RemoveAll(x => cats.Contains(x.InfoKey.ToLowerInvariant())); sMsg += "<p>Imported Tags and Categories</p>"; List <ContentTag> lstTag = (from l in wpSite.Tags.Distinct() select new ContentTag { ContentTagID = Guid.NewGuid(), IsPublic = true, SiteID = site.SiteID, TagSlug = l.InfoKey, TagText = l.InfoLabel }).Distinct().ToList(); List <ContentCategory> lstCat = (from l in wpSite.Categories.Distinct() select new ContentCategory { ContentCategoryID = Guid.NewGuid(), IsPublic = true, SiteID = site.SiteID, CategorySlug = l.InfoKey, CategoryText = l.InfoLabel }).Distinct().ToList(); foreach (var v in lstTag) { v.Save(); } foreach (var v in lstCat) { v.Save(); } } SetMsg(sMsg); if (chkSite.Checked) { sMsg += "<p>Updated Site Name</p>"; site.SiteName = wpSite.SiteTitle; site.SiteTagline = wpSite.SiteDescription; site.Save(); } SetMsg(sMsg); if (!chkMapAuthor.Checked) { wpSite.Authors = new List <WordPressUser>(); } //itterate author collection and find if in the system foreach (WordPressUser wpu in wpSite.Authors) { wpu.ImportUserID = Guid.Empty; MembershipUser usr = null; //attempt to find the user in the userbase usr = SecurityData.GetUserListByEmail(wpu.Email).FirstOrDefault(); if (usr != null) { wpu.ImportUserID = new Guid(usr.ProviderUserKey.ToString()); } else { usr = SecurityData.GetUserListByName(wpu.Login).FirstOrDefault(); if (usr != null) { wpu.ImportUserID = new Guid(usr.ProviderUserKey.ToString()); } } if (chkAuthors.Checked) { if (wpu.ImportUserID == Guid.Empty) { usr = Membership.CreateUser(wpu.Login, ProfileManager.GenerateSimplePassword(), wpu.Email); Roles.AddUserToRole(wpu.Login, SecurityData.CMSGroup_Users); wpu.ImportUserID = new Guid(usr.ProviderUserKey.ToString()); } if (wpu.ImportUserID != Guid.Empty) { ExtendedUserData ud = new ExtendedUserData(wpu.ImportUserID); if (ud != null) { if (!String.IsNullOrEmpty(wpu.FirstName) || !String.IsNullOrEmpty(wpu.LastName)) { ud.FirstName = wpu.FirstName; ud.LastName = wpu.LastName; ud.Save(); } } else { throw new Exception(String.Format("Could not find new user: {0} ({1})", wpu.Login, wpu.Email)); } } } } wpSite.Comments.ForEach(r => r.ImportRootID = Guid.Empty); using (ISiteNavHelper navHelper = SiteNavFactory.GetSiteNavHelper()) { if (chkPages.Checked) { sMsg += "<p>Imported Pages</p>"; int iOrder = 0; SiteNav navHome = navHelper.FindHome(site.SiteID, false); if (navHome != null) { iOrder = 2; } foreach (var wpp in (from c in wpSite.Content where c.PostType == WordPressPost.WPPostType.Page orderby c.PostOrder, c.PostTitle select c).ToList()) { GrabAttachments(wpp); RepairBody(wpp); ContentPage cp = ContentImportExportUtils.CreateWPContentPage(wpSite, wpp, site); cp.SiteID = site.SiteID; cp.ContentType = ContentPageType.PageType.ContentEntry; cp.EditDate = SiteData.CurrentSite.Now; cp.NavOrder = iOrder; cp.TemplateFile = ddlTemplatePage.SelectedValue; WordPressPost parent = (from c in wpSite.Content where c.PostType == WordPressPost.WPPostType.Page && c.PostID == wpp.ParentPostID select c).FirstOrDefault(); SiteNav navParent = null; SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLowerInvariant()); if (parent != null) { navParent = navHelper.GetLatestVersion(site.SiteID, false, parent.ImportFileName.ToLowerInvariant()); } //if URL exists already, make this become a new version in the current series if (navData != null) { cp.Root_ContentID = navData.Root_ContentID; if (navData.NavOrder == 0) { cp.NavOrder = 0; } } if (navParent != null) { cp.Parent_ContentID = navParent.Root_ContentID; } else { if (parent != null) { cp.Parent_ContentID = parent.ImportRootID; } } //preserve homepage if (navHome != null && navHome.FileName.ToLowerInvariant() == cp.FileName.ToLowerInvariant()) { cp.NavOrder = 0; } cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200); cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5); //if URL exists already, make this become a new version in the current series if (navData != null) { cp.Root_ContentID = navData.Root_ContentID; cp.RetireDate = navData.RetireDate; cp.GoLiveDate = navData.GoLiveDate; } cp.SavePageEdit(); wpSite.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID); iOrder++; } } if (chkPosts.Checked) { sMsg += "<p>Imported Posts</p>"; foreach (var wpp in (from c in wpSite.Content where c.PostType == WordPressPost.WPPostType.BlogPost orderby c.PostOrder select c).ToList()) { GrabAttachments(wpp); RepairBody(wpp); ContentPage cp = ContentImportExportUtils.CreateWPContentPage(wpSite, wpp, site); cp.SiteID = site.SiteID; cp.Parent_ContentID = null; cp.ContentType = ContentPageType.PageType.BlogEntry; cp.EditDate = SiteData.CurrentSite.Now; cp.NavOrder = SiteData.BlogSortOrderNumber; cp.TemplateFile = ddlTemplatePost.SelectedValue; SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLowerInvariant()); cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200); cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5); //if URL exists already, make this become a new version in the current series if (navData != null) { cp.Root_ContentID = navData.Root_ContentID; cp.RetireDate = navData.RetireDate; cp.GoLiveDate = navData.GoLiveDate; } cp.SavePageEdit(); wpSite.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID); } using (ContentPageHelper cph = new ContentPageHelper()) { //cph.BulkBlogFileNameUpdateFromDate(site.SiteID); cph.ResolveDuplicateBlogURLs(site.SiteID); cph.FixBlogNavOrder(site.SiteID); } } } SetMsg(sMsg); wpSite.Comments.RemoveAll(r => r.ImportRootID == Guid.Empty); if (wpSite.Comments.Any()) { sMsg += "<p>Imported Comments</p>"; } foreach (WordPressComment wpc in wpSite.Comments) { int iCommentCount = -1; iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP, wpc.CommentContent); if (iCommentCount < 1) { iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP); } if (iCommentCount < 1) { PostComment pc = new PostComment(); pc.ContentCommentID = Guid.NewGuid(); pc.Root_ContentID = wpc.ImportRootID; pc.CreateDate = site.ConvertUTCToSiteTime(wpc.CommentDateUTC); pc.IsApproved = false; pc.IsSpam = false; pc.CommenterIP = wpc.AuthorIP; pc.CommenterName = wpc.Author; pc.CommenterEmail = wpc.AuthorEmail; pc.PostCommentText = wpc.CommentContent; pc.CommenterURL = wpc.AuthorURL; if (wpc.Approved == "1") { pc.IsApproved = true; } if (wpc.Approved.ToLowerInvariant() == "trash") { pc.IsSpam = true; } if (wpc.Type.ToLowerInvariant() == "trackback" || wpc.Type.ToLowerInvariant() == "pingback") { pc.CommenterEmail = wpc.Type; } pc.Save(); } } SetMsg(sMsg); BindData(); }
public void ImportStuff() { this.HasLoaded = false; this.Site = ContentImportExportUtils.GetSerializedWPExport(this.ImportID); SiteData.CurrentSite = null; SiteData site = SiteData.CurrentSite; this.Message = String.Empty; string sMsg = String.Empty; if (this.ImportSite || this.ImportPages || this.ImportPosts) { List <string> tags = site.GetTagList().Select(x => x.TagSlug.ToLower()).ToList(); List <string> cats = site.GetCategoryList().Select(x => x.CategorySlug.ToLower()).ToList(); this.Site.Tags.RemoveAll(x => tags.Contains(x.InfoKey.ToLower())); this.Site.Categories.RemoveAll(x => cats.Contains(x.InfoKey.ToLower())); sMsg += "<li>Imported Tags and Categories</li>"; List <ContentTag> lstTag = (from l in this.Site.Tags.Distinct() select new ContentTag { ContentTagID = Guid.NewGuid(), IsPublic = true, SiteID = site.SiteID, TagSlug = l.InfoKey, TagText = l.InfoLabel }).Distinct().ToList(); List <ContentCategory> lstCat = (from l in this.Site.Categories.Distinct() select new ContentCategory { ContentCategoryID = Guid.NewGuid(), IsPublic = true, SiteID = site.SiteID, CategorySlug = l.InfoKey, CategoryText = l.InfoLabel }).Distinct().ToList(); foreach (var v in lstTag) { v.Save(); } foreach (var v in lstCat) { v.Save(); } } SetMsg(sMsg); if (this.ImportSite) { sMsg += "<li>Updated Site Name</li>"; site.SiteName = this.Site.SiteTitle; site.SiteTagline = this.Site.SiteDescription; site.Save(); } SetMsg(sMsg); if (!this.MapUsers) { this.Site.Authors = new List <WordPressUser>(); } //iterate author collection and find if in the system foreach (WordPressUser wpu in this.Site.Authors) { SecurityData sd = new SecurityData(); ExtendedUserData usr = null; wpu.ImportUserID = Guid.Empty; //attempt to find the user in the userbase usr = ExtendedUserData.FindByEmail(wpu.Email); if (usr != null) { wpu.ImportUserID = usr.UserId; } else { usr = ExtendedUserData.FindByUsername(wpu.Login); if (usr != null) { wpu.ImportUserID = usr.UserId; } } if (this.CreateUsers) { if (wpu.ImportUserID == Guid.Empty) { ApplicationUser user = new ApplicationUser { UserName = wpu.Login, Email = wpu.Email }; var result = sd.CreateApplicationUser(user, out usr); if (result.Succeeded) { usr = ExtendedUserData.FindByUsername(wpu.Login); } else { throw new Exception(String.Format("Could not create user: {0} ({1}) \r\n{3}", wpu.Login, wpu.Email, String.Join("\r\n", result.Errors))); } wpu.ImportUserID = usr.UserId; } if (wpu.ImportUserID != Guid.Empty) { ExtendedUserData ud = new ExtendedUserData(wpu.ImportUserID); if (!String.IsNullOrEmpty(wpu.FirstName) || !String.IsNullOrEmpty(wpu.LastName)) { ud.FirstName = wpu.FirstName; ud.LastName = wpu.LastName; ud.Save(); } } } } this.Site.Comments.ForEach(r => r.ImportRootID = Guid.Empty); using (ISiteNavHelper navHelper = SiteNavFactory.GetSiteNavHelper()) { if (this.ImportPages) { sMsg += "<li>Imported Pages</li>"; int iOrder = 0; SiteNav navHome = navHelper.FindHome(site.SiteID, false); if (navHome != null) { iOrder = 2; } foreach (var wpp in (from c in this.Site.Content where c.PostType == WordPressPost.WPPostType.Page orderby c.PostOrder, c.PostTitle select c).ToList()) { GrabAttachments(wpp); RepairBody(wpp); ContentPage cp = ContentImportExportUtils.CreateWPContentPage(this.Site, wpp, site); cp.SiteID = site.SiteID; cp.ContentType = ContentPageType.PageType.ContentEntry; cp.EditDate = SiteData.CurrentSite.Now; cp.NavOrder = iOrder; cp.TemplateFile = this.PageTemplate; WordPressPost parent = (from c in this.Site.Content where c.PostType == WordPressPost.WPPostType.Page && c.PostID == wpp.ParentPostID select c).FirstOrDefault(); SiteNav navParent = null; SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLower()); if (parent != null) { navParent = navHelper.GetLatestVersion(site.SiteID, false, parent.ImportFileName.ToLower()); } //if URL exists already, make this become a new version in the current series if (navData != null) { cp.Root_ContentID = navData.Root_ContentID; if (navData.NavOrder == 0) { cp.NavOrder = 0; } } if (navParent != null) { cp.Parent_ContentID = navParent.Root_ContentID; } else { if (parent != null) { cp.Parent_ContentID = parent.ImportRootID; } } //preserve homepage if (navHome != null && navHome.FileName.ToLower() == cp.FileName.ToLower()) { cp.NavOrder = 0; } cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200); cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5); //if URL exists already, make this become a new version in the current series if (navData != null) { cp.Root_ContentID = navData.Root_ContentID; cp.RetireDate = navData.RetireDate; cp.GoLiveDate = navData.GoLiveDate; } cp.SavePageEdit(); this.Site.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID); iOrder++; } } if (this.ImportPosts) { sMsg += "<li>Imported Posts</li>"; foreach (var wpp in (from c in this.Site.Content where c.PostType == WordPressPost.WPPostType.BlogPost orderby c.PostOrder select c).ToList()) { GrabAttachments(wpp); RepairBody(wpp); ContentPage cp = ContentImportExportUtils.CreateWPContentPage(this.Site, wpp, site); cp.SiteID = site.SiteID; cp.Parent_ContentID = null; cp.ContentType = ContentPageType.PageType.BlogEntry; cp.EditDate = SiteData.CurrentSite.Now; cp.NavOrder = SiteData.BlogSortOrderNumber; cp.TemplateFile = this.PostTemplate; SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLower()); cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200); cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5); //if URL exists already, make this become a new version in the current series if (navData != null) { cp.Root_ContentID = navData.Root_ContentID; cp.RetireDate = navData.RetireDate; cp.GoLiveDate = navData.GoLiveDate; } cp.SavePageEdit(); this.Site.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID); } using (ContentPageHelper cph = new ContentPageHelper()) { //cph.BulkBlogFileNameUpdateFromDate(site.SiteID); cph.ResolveDuplicateBlogURLs(site.SiteID); cph.FixBlogNavOrder(site.SiteID); } } } SetMsg(sMsg); this.Site.Comments.RemoveAll(r => r.ImportRootID == Guid.Empty); if (this.Site.Comments.Any()) { sMsg += "<li>Imported Comments</li>"; } foreach (WordPressComment wpc in this.Site.Comments) { int iCommentCount = -1; iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP, wpc.CommentContent); if (iCommentCount < 1) { iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP); } if (iCommentCount < 1) { PostComment pc = new PostComment(); pc.ContentCommentID = Guid.NewGuid(); pc.Root_ContentID = wpc.ImportRootID; pc.CreateDate = site.ConvertUTCToSiteTime(wpc.CommentDateUTC); pc.IsApproved = false; pc.IsSpam = false; pc.CommenterIP = wpc.AuthorIP; pc.CommenterName = wpc.Author; pc.CommenterEmail = wpc.AuthorEmail; pc.PostCommentText = wpc.CommentContent; pc.CommenterURL = wpc.AuthorURL; if (wpc.Approved == "1") { pc.IsApproved = true; } if (wpc.Approved.ToLower() == "trash") { pc.IsSpam = true; } if (wpc.Type.ToLower() == "trackback" || wpc.Type.ToLower() == "pingback") { pc.CommenterEmail = wpc.Type; } pc.Save(); } } SetMsg(sMsg); }
public static void SaveFrequencies(CalendarDataContext ctx, CalendarEvent newItem, CalendarEvent oldItem) { SiteData site = SiteData.CurrentSite; DateTime todayDate = DateTime.UtcNow.Date; DateTime newStartDateTime = GetStartDateTimeFromItem(newItem); DateTime newEndDateTime = GetEndDateTimeFromItem(newItem); List <DateTime> eventDates = GetSequenceDates(todayDate, false, newItem); if (newItem.EventStartDate.Date <= todayDate.AddYears(-1) || newItem.EventStartDate.Date >= todayDate.AddMonths(6)) { eventDates = eventDates.Union(GetSequenceDates(todayDate, true, newItem)).Distinct().ToList(); } List <DateTime> eventUTCDates = (from d in eventDates select site.ConvertSiteTimeToUTC(d)).ToList(); if (oldItem.SiteID == Guid.Empty && oldItem.CalendarFrequencyID == Guid.Empty) { InsertEventsFromList(ctx, newItem, eventDates); } else { DateTime oldStartDateTime = GetStartDateTimeFromItem(oldItem); int iDays = GetDateDiffDays(newStartDateTime, oldStartDateTime); TimeSpan newTS = new TimeSpan(); if (newItem.EventStartTime.HasValue) { newTS = newItem.EventStartTime.Value; } TimeSpan oldTS = new TimeSpan(); if (oldItem.EventStartTime.HasValue) { oldTS = oldItem.EventStartTime.Value; } int iMin = GetDateDiffMinutes(newTS, oldTS); DateTime dateMax = (from d in eventUTCDates orderby d.Date descending where d.Date >= DateTime.UtcNow.Date select d).FirstOrDefault(); if (dateMax == DateTime.MinValue) { dateMax = DateTime.UtcNow.Date; } dateMax = site.ConvertSiteTimeToUTC(dateMax).Date; DateTime dStart = site.ConvertSiteTimeToUTC(newStartDateTime).Date; DateTime dEnd = site.ConvertSiteTimeToUTC(newEndDateTime).Date; int iFuture = (from d in eventUTCDates where d.Date >= DateTime.UtcNow.Date select d).Count(); int iMaxRange = (from c in ctx.carrot_CalendarEvents where c.CalendarEventProfileID == newItem.CalendarEventProfileID && c.EventDate.Date >= dateMax.Date select c.CalendarEventID).Count(); if (oldItem.Frequency != newItem.Frequency || oldItem.RecursEvery != newItem.RecursEvery || iMin != 0 || iDays != 0 || (iMaxRange != iFuture && iFuture > 0) || oldItem.EventEndDate.Date != newItem.EventEndDate.Date || oldItem.EventStartDate.Date != newItem.EventStartDate.Date) { var lstEvents = (from c in ctx.carrot_CalendarEvents orderby c.EventDate where c.CalendarEventProfileID == newItem.CalendarEventProfileID select c).ToList(); if (iDays != 0) { lstEvents.ForEach(x => x.EventDate = site.ConvertUTCToSiteTime(x.EventDate).Date); if (newItem.Frequency == FrequencyType.Daily || newItem.Frequency == FrequencyType.Once) { lstEvents.ForEach(x => x.EventDate = x.EventDate.Date.AddDays(iDays)); } if (newItem.Frequency == FrequencyType.Weekly) { int iDayShift = iDays; if (newItem.EventRepeatPattern != null) { iDayShift = 7 * GetDateDiffWeeks(newItem.EventStartDate, oldItem.EventStartDate); } lstEvents.ForEach(x => x.EventDate = x.EventDate.Date.AddDays(iDayShift)); } if (newItem.Frequency == FrequencyType.Monthly || newItem.Frequency == FrequencyType.Yearly) { int iMonths = GetDateDiffMonths(newItem.EventStartDate, oldItem.EventStartDate); lstEvents.ForEach(x => x.EventDate = x.EventDate.AddMonths(iMonths).Date); } if (newItem.Frequency == oldItem.Frequency && (newItem.Frequency == FrequencyType.Monthly || newItem.Frequency == FrequencyType.Yearly)) { lstEvents.ForEach(x => x.EventDate = CorrectMonthlyYearlyDate(x.EventDate, newItem.EventStartDate.Day).Date); } lstEvents.ForEach(x => x.EventDate = site.ConvertSiteTimeToUTC(x.EventDate)); } var lstDel = (from l in lstEvents orderby l.EventDate where l.EventDate.Date <dStart || l.EventDate.Date> dEnd || !eventUTCDates.Contains(l.EventDate) select l).ToList(); lstDel.RemoveAll(l => eventUTCDates.Contains(l.EventDate)); ctx.carrot_CalendarEvents.DeleteAllOnSubmit(lstDel); var lstExist = (from l in lstEvents select site.ConvertUTCToSiteTime(l.EventDate).Date).Distinct().ToList(); var lstAdd = (from d in eventDates where !lstExist.Contains(d.Date) select d).ToList(); InsertEventsFromList(ctx, newItem, lstAdd); } } }