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); }
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); }
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; } } }