public static BaseCalendar ConvertCalendar(DDay.iCal.IICalendar calandarObj) { if (calandarObj == null) { return(null); } var result = new BusinessObjects.Calendar(); result.Name = string.IsNullOrEmpty(calandarObj.Name) ? calandarObj.Properties.ContainsKey("X-WR-CALNAME") ? calandarObj.Properties["X-WR-CALNAME"].Value.ToString() : string.Empty : calandarObj.Name; result.Description = calandarObj.Properties.ContainsKey("X-WR-CALDESC") ? calandarObj.Properties["X-WR-CALDESC"].Value.ToString() : string.Empty; var tzids = calandarObj.TimeZones.Select(x => x.TZID).Where(x => !string.IsNullOrEmpty(x)).ToList(); result.TimeZone = tzids.Any() ? TimeZoneConverter.GetTimeZone(tzids.First()) : (calandarObj.Properties.ContainsKey("X-WR-TIMEZONE") ? TimeZoneConverter.GetTimeZone( calandarObj.Properties["X-WR-TIMEZONE"].Value.ToString()) : CoreContext.TenantManager.GetCurrentTenant().TimeZone); return(result); }
public SecurityAdapter(string data) { if (int.TryParse(data, out int id)) { using (var provider = new BusinessObjects.DataProvider()) { eventObj = provider.GetEventById(id); if (eventObj != null) { calendarObj = provider.GetCalendarById(Convert.ToInt32(eventObj.CalendarId)); } } } }
public EventHistoryWrapper Get(EventHistory eventHistory, bool canEdit, bool canNotify, BusinessObjects.Calendar cal, bool fullHistory = true) { var eventHistoryWrapper = new EventHistoryWrapper(); eventHistoryWrapper.CalendarId = eventHistory.CalendarId; eventHistoryWrapper.EventUid = eventHistory.EventUid; eventHistoryWrapper.EventId = eventHistory.EventId; if (fullHistory) { eventHistoryWrapper.Ics = eventHistory.Ics; } else { var mergedCalendar = EventHistoryHelper.GetMerged(EventHistoryHelper.Get(eventHistory.CalendarId, eventHistory.EventId.ToString(), eventHistory.EventId, eventHistory.Ics)); eventHistoryWrapper.MergedIcs = mergedCalendar == null ? string.Empty : DDayICalParser.SerializeCalendar(mergedCalendar); } eventHistoryWrapper.CanEdit = canEdit; eventHistoryWrapper.CanNotify = canNotify; eventHistoryWrapper.CalendarName = cal.Name; eventHistoryWrapper.TimeZoneInfo = TimeZoneWrapperHelper.Get(cal.ViewSettings.Any() && cal.ViewSettings.First().TimeZone != null ? cal.ViewSettings.First().TimeZone : cal.TimeZone); return(eventHistoryWrapper); }
public EventHistoryWrapper(EventHistory eventHistory, bool canEdit, bool canNotify, BusinessObjects.Calendar cal, bool fullHistory = true) { CalendarId = eventHistory.CalendarId; EventUid = eventHistory.EventUid; EventId = eventHistory.EventId; if (fullHistory) { Ics = eventHistory.Ics; } else { var mergedCalendar = eventHistory.GetMerged(); MergedIcs = mergedCalendar == null ? string.Empty : DDayICalParser.SerializeCalendar(mergedCalendar); } CanEdit = canEdit; CanNotify = canNotify; CalendarName = cal.Name; TimeZoneInfo = new TimeZoneWrapper(cal.ViewSettings.Any() && cal.ViewSettings.First().TimeZone != null ? cal.ViewSettings.First().TimeZone : cal.TimeZone); }
public SecurityAdapter(BusinessObjects.Event eventObj, BusinessObjects.Calendar calendarObj) { this.eventObj = eventObj; this.calendarObj = calendarObj; }
protected void Init(ASC.Web.Core.Calendars.SharingOptions.PublicItem publicItem, ref PublicItemWrapper result) { result.ItemId = publicItem.Id.ToString(); //---ItemName if (result.IsGroup) { result.ItemName = UserManager.GetGroupInfo(publicItem.Id).Name; } else { result.ItemName = UserManager.GetUsers(publicItem.Id).DisplayUserName(DisplayUserSettingsHelper); } //---CanEdit result.CanEdit = !publicItem.Id.Equals(_owner); //---SharingOption if (publicItem.Id.Equals(_owner)) { result.SharingOption = AccessOption.OwnerOption; } else { var subject = publicItem.IsGroup ? (ISubject)UserManager.GetGroupInfo(publicItem.Id) : (ISubject)Authentication.GetAccountByID(TenantManager.GetCurrentTenant().TenantId, publicItem.Id); int calId; if (_isCalendar && int.TryParse(_calendarId, out calId)) { var icalendar = new iCalendar(AuthContext, TimeZoneConverter, TenantManager); var obj = new BusinessObjects.Calendar(AuthContext, TimeZoneConverter, icalendar, DataProvider) { Id = _calendarId }; if (PermissionContext.PermissionResolver.Check(subject, obj, null, CalendarAccessRights.FullAccessAction)) { result.SharingOption = AccessOption.FullAccessOption; } else { result.SharingOption = AccessOption.ReadOption; } } else if (!_isCalendar) { var icalendar = new iCalendar(AuthContext, TimeZoneConverter, TenantManager); var obj = new BusinessObjects.Event(AuthContext, TimeZoneConverter, icalendar, DataProvider) { Id = _eventId, CalendarId = _calendarId }; if (PermissionContext.PermissionResolver.Check(subject, obj, null, CalendarAccessRights.FullAccessAction)) { result.SharingOption = AccessOption.FullAccessOption; } else { result.SharingOption = AccessOption.ReadOption; } } else { result.SharingOption = AccessOption.ReadOption; } } }