Exemplo n.º 1
0
        public static BaseEvent ConvertEvent(Ical.Net.CalendarComponents.CalendarEvent eventObj)
        {
            if (eventObj == null)
            {
                return(null);
            }

            var result = new BusinessObjects.Event();

            result.Name = eventObj.Summary;

            result.Description = eventObj.Description;

            result.AllDayLong = eventObj.IsAllDay;

            result.Uid = eventObj.Uid;

            result.UtcStartDate = ToUtc(eventObj.Start);

            result.UtcEndDate = ToUtc(eventObj.End);

            result.UtcUpdateDate = ToUtc(eventObj.Created);

            var recurrenceRuleStr = string.Empty;

            if (eventObj.RecurrenceRules != null && eventObj.RecurrenceRules.Any())
            {
                var recurrenceRules = eventObj.RecurrenceRules.ToList();

                recurrenceRuleStr = SerializeRecurrencePattern(recurrenceRules.First());
            }

            result.RecurrenceRule = RecurrenceRule.Parse(recurrenceRuleStr);

            if (eventObj.ExceptionDates != null && eventObj.ExceptionDates.Any())
            {
                result.RecurrenceRule.ExDates = new List <RecurrenceRule.ExDate>();

                var exceptionDates = eventObj.ExceptionDates.ToList();

                foreach (var periodList in exceptionDates.First())
                {
                    var start = ToUtc(periodList.StartTime);

                    result.RecurrenceRule.ExDates.Add(new RecurrenceRule.ExDate
                    {
                        Date       = start,
                        isDateTime = start != start.Date
                    });
                }
            }

            result.Status = ConvertEventStatus(eventObj.Status);

            return(result);
        }
Exemplo n.º 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 static BaseEvent ConvertEvent(DDay.iCal.IEvent eventObj)
        {
            if (eventObj == null)
            {
                return(null);
            }

            var result = new BusinessObjects.Event();

            result.Name = eventObj.Summary;

            result.Description = eventObj.Description;

            result.AllDayLong = eventObj.IsAllDay;

            result.Uid = eventObj.UID;

            result.UtcStartDate = eventObj.Start.UTC;

            result.UtcEndDate = eventObj.End.UTC;

            result.RecurrenceRule = RecurrenceRule.Parse(eventObj.RecurrenceRules.Any()
                                                         ? SerializeRecurrencePattern(eventObj.RecurrenceRules.First())
                                                         : string.Empty);
            if (eventObj.ExceptionDates.Any())
            {
                result.RecurrenceRule.ExDates = new List <RecurrenceRule.ExDate>();
                foreach (var periodList in eventObj.ExceptionDates.First())
                {
                    result.RecurrenceRule.ExDates.Add(new RecurrenceRule.ExDate
                    {
                        Date       = periodList.StartTime.UTC,
                        isDateTime = periodList.StartTime.UTC != periodList.StartTime.UTC.Date
                    });
                }
            }

            result.Status = (EventStatus)eventObj.Status;

            return(result);
        }
Exemplo n.º 4
0
 public SecurityAdapter(BusinessObjects.Event eventObj, BusinessObjects.Calendar calendarObj)
 {
     this.eventObj    = eventObj;
     this.calendarObj = calendarObj;
 }
Exemplo n.º 5
0
        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;
                }
            }
        }