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);
        }
Exemple #2
0
 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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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;
                }
            }
        }