private static void NotifyAbouFutureEvent(DateTime scheduleDate) { using (var dataProvider = new DataProvider()) { var notifications = dataProvider.ExtractAndRecountNotifications(scheduleDate); foreach (var data in notifications) { if (data.Event == null) continue; var tenant = CoreContext.TenantManager.GetTenant(data.TenantId); if (tenant == null || tenant.Status != TenantStatus.Active) continue; CoreContext.TenantManager.SetCurrentTenant(tenant); var r = CalendarNotifySource.Instance.GetRecipientsProvider().GetRecipient(data.UserId.ToString()); var startDate = data.GetUtcStartDate().Add(data.TimeZone.GetUtcOffset(DateTime.UtcNow)); var endDate = data.GetUtcEndDate(); endDate = (endDate == DateTime.MinValue ? DateTime.MinValue : endDate.Add(data.TimeZone.GetUtcOffset(DateTime.UtcNow))); _notifyClient.SendNoticeAsync(CalendarNotifySource.EventAlert, null, r, true, new TagValue(new Tag("EventName"), data.Event.Name), new TagValue(new Tag("EventDescription"), data.Event.Description ?? ""), new TagValue(new Tag("EventStartDate"), startDate.ToShortDateString() + " " + startDate.ToShortTimeString()), new TagValue(new Tag("EventEndDate"), (endDate > startDate) ? (endDate.ToShortDateString() + " " + endDate.ToShortTimeString()) : "")); } } }
public override List<IEvent> LoadEvents(Guid userId, DateTime utcStartDate, DateTime utcEndDate) { using (var dataProvider = new DataProvider()) { var events = dataProvider.LoadSharedEvents(userId, CoreContext.TenantManager.GetCurrentTenant().TenantId, utcStartDate, utcEndDate); events.ForEach(e => e.CalendarId = this.Id); var ievents = new List<IEvent>(events.Select(e => (IEvent)e)); return ievents; } }
private static void NotifyAbouFutureEvent(DateTime scheduleDate) { try { using (var dataProvider = new DataProvider()) { foreach (var data in dataProvider.ExtractAndRecountNotifications(scheduleDate)) { if (data.Event == null) { continue; } var tenant = CoreContext.TenantManager.GetTenant(data.TenantId); if (tenant == null || tenant.Status != TenantStatus.Active || TariffState.NotPaid <= CoreContext.PaymentManager.GetTariff(tenant.TenantId).State) { continue; } CoreContext.TenantManager.SetCurrentTenant(tenant); var r = CalendarNotifySource.Instance.GetRecipientsProvider().GetRecipient(data.UserId.ToString()); if (r == null) { continue; } var startDate = data.GetUtcStartDate(); var endDate = data.GetUtcEndDate(); if (!data.Event.AllDayLong) { startDate = startDate.Add(data.TimeZone.BaseUtcOffset); endDate = (endDate == DateTime.MinValue ? DateTime.MinValue : endDate.Add(data.TimeZone.BaseUtcOffset)); } _notifyClient.SendNoticeAsync(CalendarNotifySource.EventAlert, null, r, true, new TagValue("EventName", data.Event.Name), new TagValue("EventDescription", data.Event.Description ?? ""), new TagValue("EventStartDate", startDate.ToShortDateString() + " " + startDate.ToShortTimeString()), new TagValue("EventEndDate", (endDate > startDate) ? (endDate.ToShortDateString() + " " + endDate.ToShortTimeString()) : ""), new TagValue("Priority", 1)); } } } catch (Exception error) { LogManager.GetLogger("ASC.Notify.Calendar").Error(error); } }
public override List<IEvent> LoadEvents(Guid userId, DateTime utcStartDate, DateTime utcEndDate) { if (!String.IsNullOrEmpty(iCalUrl)) { try { var cal = iCalendar.GetFromUrl(iCalUrl,this.Id); return cal.LoadEvents(userId, utcStartDate, utcEndDate); } catch { return new List<IEvent>(); } } else { var provider = new DataProvider(); return provider.LoadEvents(Convert.ToInt32(this.Id), userId, TenantId, utcStartDate, utcEndDate).Cast<IEvent>().ToList(); } }