Ejemplo n.º 1
0
        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;
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            bool bAdd = false;

            using (CalendarDataContext db = CalendarDataContext.GetDataContext()) {
                var currItem = (from c in db.carrot_CalendarEventProfiles
                                where c.CalendarEventProfileID == ItemGuid
                                select c).FirstOrDefault();

                var origItem = new CalendarEvent(currItem);

                if (currItem == null)
                {
                    bAdd     = true;
                    ItemGuid = Guid.NewGuid();
                    currItem = new carrot_CalendarEventProfile();
                    currItem.CalendarEventProfileID = ItemGuid;
                    currItem.SiteID          = SiteID;
                    currItem.IsHoliday       = false;
                    currItem.IsAnnualHoliday = false;
                    currItem.RecursEvery     = 1;
                }

                currItem.CalendarFrequencyID     = new Guid(ddlRecurr.SelectedValue);
                currItem.CalendarEventCategoryID = new Guid(ddlCategory.SelectedValue);

                currItem.EventRepeatPattern = null;

                List <string> days = CalendarHelper.GetCheckedItemStringByValue(rpDays, true, "chkDay");

                if (CalendarFrequencyHelper.GetFrequencyTypeByID(currItem.CalendarFrequencyID) == CalendarFrequencyHelper.FrequencyType.Weekly &&
                    days.Count > 0)
                {
                    int dayMask = (from d in days select int.Parse(d)).Sum();

                    if (dayMask > 0)
                    {
                        currItem.EventRepeatPattern = dayMask;
                    }
                }

                currItem.EventTitle  = txtEventTitle.Text;
                currItem.EventDetail = reContent.Text;
                currItem.RecursEvery = int.Parse(txtRecursEvery.Text);

                currItem.IsPublic          = chkIsPublic.Checked;
                currItem.IsAllDayEvent     = chkIsAllDayEvent.Checked;
                currItem.IsCancelled       = chkIsCancelled.Checked;
                currItem.IsCancelledPublic = chkIsCancelledPublic.Checked;

                currItem.EventStartDate = Convert.ToDateTime(txtEventStartDate.Text);
                currItem.EventStartTime = CalendarHelper.GetTimeSpanFromTextbox(txtEventStartTime);

                currItem.EventEndDate = Convert.ToDateTime(txtEventEndDate.Text);
                currItem.EventEndTime = CalendarHelper.GetTimeSpanFromTextbox(txtEventEndTime);

                if (bAdd)
                {
                    db.carrot_CalendarEventProfiles.InsertOnSubmit(currItem);
                }

                CalendarFrequencyHelper.SaveFrequencies(db, new CalendarEvent(currItem), origItem);

                db.SubmitChanges();
            }

            Response.Redirect(CreateLink(ModuleName, String.Format("id={0}", ItemGuid)));
        }