Example #1
0
 public MeetingInviteWriter(MeetingRequest meetingRequest, UserContext userContext, bool isEmbeddedItem) : base(meetingRequest, userContext)
 {
     this.meetingRequest = meetingRequest;
     if (!isEmbeddedItem && !meetingRequest.IsDelegated())
     {
         this.isOrganizer = base.ProcessMeetingMessage(meetingRequest, Utilities.IsItemInDefaultFolder(meetingRequest, DefaultFolderType.Inbox));
         if (this.isOrganizer)
         {
             this.AttendeeResponseWell = new CalendarItemAttendeeResponseRecipientWell(userContext, base.CalendarItemBase);
         }
     }
     this.meetingMessageType = meetingRequest.MeetingRequestType;
     if (this.meetingMessageType != MeetingMessageType.Outdated)
     {
         if (this.isOrganizer)
         {
             this.meetingMessageType = MeetingMessageType.InformationalUpdate;
         }
         else if (this.meetingMessageType == MeetingMessageType.InformationalUpdate && base.CalendarItemBase != null && base.CalendarItemBase.ResponseType == ResponseType.NotResponded)
         {
             this.meetingMessageType = MeetingMessageType.FullUpdate;
         }
     }
     this.meetingRequestRecipientWell = new MeetingRequestRecipientWell(userContext, meetingRequest);
 }
Example #2
0
        // Token: 0x06002FE2 RID: 12258 RVA: 0x00117798 File Offset: 0x00115998
        public static string GetDisplayAttendees(MeetingRequest meetingRequest, RecipientWellType type)
        {
            if (meetingRequest == null)
            {
                throw new ArgumentNullException("meetingRequest");
            }
            object obj    = null;
            string result = string.Empty;

            if (type == RecipientWellType.To)
            {
                obj = meetingRequest.TryGetProperty(CalendarItemBaseSchema.DisplayAttendeesTo);
            }
            else if (type == RecipientWellType.Cc)
            {
                obj = meetingRequest.TryGetProperty(CalendarItemBaseSchema.DisplayAttendeesCc);
            }
            string text = obj as string;

            if (text != null)
            {
                result = text;
            }
            return(result);
        }
Example #3
0
        public void rejectMR(Meeting meeting, User user, string id)
        {
            MeetingRequest mr = _context.MeetingRequests.SingleOrDefault(x => x.ID.ToString() == id);

            _context.MeetingRequests.Remove(mr);
            _context.SaveChanges();
        }
        public async Task <IActionResult> GetAssistances([FromBody] MeetingRequest request)
        {
            string email = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
            User   user  = await _userHelper.GetUserAsync(email);

            if (user == null)
            {
                return(NotFound("Error001"));
            }
            Meeting meeting = await _context.Meetings
                              .Include(m => m.Assistances)
                              .FirstOrDefaultAsync(m => m.Date == request.Date && m.Church.Id == user.Church.Id);

            if (meeting == null)
            {
                return(NotFound());
            }
            List <Assistance> assistance = await _context.Assistances
                                           .Include(m => m.User)
                                           .Where(m => m.Meeting.Id == meeting.Id).ToListAsync();

            if (assistance == null)
            {
                return(NotFound());
            }

            return(Ok(assistance));
        }
Example #5
0
        public bool FetchMeetingRequestbyUniqueId(string uniqueId, out MeetingRequest mr)
        {
            bool result = false;

            mr = null;

            try
            {
                SearchFilter.SearchFilterCollection searchFilter = new SearchFilter.SearchFilterCollection();
                searchFilter.Add(new SearchFilter.ContainsSubstring(MeetingRequestSchema.Subject, uniqueId));
                ItemView view = new ItemView(500);
                //view.PropertySet = new PropertySet(BasePropertySet.IdOnly, MeetingRequestSchema.Subject, MeetingRequestSchema.Start);
                FindItemsResults <Item> findResults = _service.FindItems(WellKnownFolderName.Inbox, searchFilter, view);

                if (findResults.Items.Count > 0)
                {
                    mr = findResults.Items[0] as MeetingRequest;
                    //mr.Load();
                    result = true;
                }
            }
            catch (Exception ex)
            {
                string msg = String.Format("FetchMeetingRequestbyUniqueId\n{0}\n{1}", ex.Message, ex.StackTrace);
                System.Diagnostics.EventLog.WriteEntry("ExchangeWebServices", msg, System.Diagnostics.EventLogEntryType.Error);
            }


            return(result);
        }
        // Token: 0x06002DC1 RID: 11713 RVA: 0x00103500 File Offset: 0x00101700
        private MeetingRequest GetMeetingRequest(params PropertyDefinition[] prefetchProperties)
        {
            MeetingRequest result = null;

            try
            {
                result = base.GetRequestItem <MeetingRequest>(prefetchProperties);
            }
            catch (ObjectNotFoundException innerException)
            {
                if (!base.IsParameterSet("idci"))
                {
                    throw;
                }
                OwaStoreObjectId itemId = (OwaStoreObjectId)base.GetParameter("idci");
                int num;
                int num2;
                using (CalendarItemBase readOnlyRequestItem = base.GetReadOnlyRequestItem <CalendarItemBase>(itemId, new PropertyDefinition[0]))
                {
                    num  = (int)base.GetParameter("sn");
                    num2 = (int)readOnlyRequestItem[CalendarItemBaseSchema.AppointmentSequenceNumber];
                }
                if (num < num2)
                {
                    throw new OwaEventHandlerException("Meeting request must be out of date", LocalizedStrings.GetNonEncoded(2031473992), innerException);
                }
                throw;
            }
            return(result);
        }
Example #7
0
        // Token: 0x06000957 RID: 2391 RVA: 0x0003EB14 File Offset: 0x0003CD14
        public void UpdateOldFields(MeetingRequest mtgReq)
        {
            ExDateTime?oldStartTime = null;
            ExDateTime?oldEndTime   = null;

            CalendarInfo.GetOldFields(mtgReq, out oldStartTime, out oldEndTime);
            this.UpdateOldFields(oldStartTime, oldEndTime);
        }
 public static void CheckAssertsForMeetingRequest(MeetingRequest expected, MeetingRequest actual)
 {
     Assert.AreEqual(expected.ID, actual.ID);
     Assert.AreEqual(expected.Content, actual.Content);
     Assert.AreEqual(expected.Status, actual.Status);
     CheckAssertsForUser(expected.User, actual.User);
     CheckAssertsForMeeting(expected.Meeting, actual.Meeting);
 }
Example #9
0
        public void createMeetingRequest(MeetingRequest meetingRequest)
        {
            _context.Entry(meetingRequest.User).State    = System.Data.Entity.EntityState.Unchanged;
            _context.Entry(meetingRequest.Meeting).State = System.Data.Entity.EntityState.Unchanged;
            _context.Entry(meetingRequest).State         = System.Data.Entity.EntityState.Added;

            var result = _context.SaveChanges();
        }
Example #10
0
        public IHttpActionResult InsertMeeting(MeetingRequest meetingRequest)
        {
            if (meetingRequest == null)
            {
                return(BadRequest("Meeting not found"));
            }

            if (meetingRequest.MeetingActions == null || !meetingRequest.MeetingActions.Any())
            {
                return(BadRequest("Meeting actions not found"));
            }

            var loggedInUser = HttpContext.Current.User as SecurityPrincipal;

            logger.Info($"Meeting created by {loggedInUser.ForeName}");

            List <MeetingActionRequest> tempActions = meetingRequest.MeetingActions.ToList();

            // Repetitive actions for fortnight or weekly
            // Weekly = Every 7 days / Fortnight = Every 14 days / Monthly = Once a month
            var frequentActions = meetingRequest.MeetingActions.Where(a => a.Frequency != ACTION_FREQUENCY.None).ToArray();

            if (frequentActions.Any())
            {
                frequentActions.ForEach(a =>
                {
                    var dates = CreateFutureDates(a.CompletionDate, (int)a.Frequency, a.Repetitive).ToList();
                    for (int i = 1; i < dates.Count; i++) // skip the first date
                    {
                        var action            = Clone(a);
                        action.CompletionDate = dates[i];
                        tempActions.Add(action);
                    }
                });
            }

            var actions = tempActions.Select(a =>
            {
                return(ToEntity(a));
            }).ToArray();

            actions.ForEach(a =>
            {
                a.CreatedById = loggedInUser.Id;
            });

            Meeting meeting = ToEntity(meetingRequest);

            meeting.MeetingActions = actions;
            meeting.CreatedById    = loggedInUser.Id;

            meeting.ReferenceId = Guid.NewGuid();
            meeting.OwnerId     = loggedInUser.Id;
            var result = _meetingService.Insert(meeting);

            return(Ok(result));
        }
Example #11
0
 public Meeting CreateMeeting(MeetingRequest meetingRequest)
 {
     RepositoryModels.Meeting persistedMeeting = meetingRepository.CreateMeeting(meetingRequest.Name);
     return(new Meeting
     {
         Name = persistedMeeting.Name,
         MeetingId = persistedMeeting.MeetingId
     });
 }
        // Token: 0x06002DBC RID: 11708 RVA: 0x00103198 File Offset: 0x00101398
        private void UpdateItem(Item item)
        {
            if (base.IsParameterSet("Subj"))
            {
                item[ItemSchema.Subject] = (string)base.GetParameter("Subj");
            }
            if (base.IsParameterSet("RemS"))
            {
                bool flag = (bool)base.GetParameter("RemS");
                item[ItemSchema.ReminderIsSet] = flag;
                if (flag && base.IsParameterSet("RemT"))
                {
                    int num = (int)base.GetParameter("RemT");
                    if (num < 0)
                    {
                        throw new OwaInvalidRequestException("Reminder minutes before start cannot be a negative value");
                    }
                    item[ItemSchema.ReminderMinutesBeforeStart] = num;
                }
            }
            CalendarItemBase calendarItemBase = item as CalendarItemBase;
            MeetingRequest   meetingRequest   = item as MeetingRequest;

            if (base.IsParameterSet("Prvt") && (meetingRequest != null || (calendarItemBase != null && (calendarItemBase.CalendarItemType == CalendarItemType.Single || calendarItemBase.CalendarItemType == CalendarItemType.RecurringMaster))))
            {
                bool flag2 = (bool)base.GetParameter("Prvt");
                if (flag2)
                {
                    item[ItemSchema.Sensitivity] = Sensitivity.Private;
                }
                else
                {
                    object obj = item.TryGetProperty(ItemSchema.Sensitivity);
                    if (obj is Sensitivity && (Sensitivity)obj == Sensitivity.Private)
                    {
                        item[ItemSchema.Sensitivity] = Sensitivity.Normal;
                    }
                }
            }
            if (base.IsParameterSet("Fbs"))
            {
                object parameter = base.GetParameter("Fbs");
                if (parameter != null)
                {
                    item[CalendarItemBaseSchema.FreeBusyStatus] = (BusyType)parameter;
                }
            }
            if (base.IsParameterSet("Rsp"))
            {
                item[CalendarItemBaseSchema.ResponseType] = (ResponseType)base.GetParameter("Rsp");
            }
            if (meetingRequest != null)
            {
                ((MessageItem)item).IsRead = true;
            }
        }
Example #13
0
        private Item BindToItemWithItemClass(StoreObjectId id, string itemClass, PropertyDefinition[] properties)
        {
            Item result;

            if (ObjectClass.IsReport(itemClass))
            {
                result = ReportMessage.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsMessage(itemClass, false))
            {
                result = MessageItem.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsPost(itemClass))
            {
                result = PostItem.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsCalendarItem(itemClass))
            {
                result = CalendarItem.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsMeetingRequest(itemClass))
            {
                result = MeetingRequest.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsMeetingResponse(itemClass))
            {
                result = MeetingResponse.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsMeetingCancellation(itemClass))
            {
                result = MeetingCancellation.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsContact(itemClass))
            {
                result = Contact.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsTask(itemClass))
            {
                Task task = Task.Bind(this.mailboxSession, id, true, properties);
                task.SuppressRecurrenceAdjustment = true;
                result = task;
            }
            else if (ObjectClass.IsDistributionList(itemClass))
            {
                result = DistributionList.Bind(this.mailboxSession, id, properties);
            }
            else if (ObjectClass.IsGenericMessage(itemClass))
            {
                result = MessageItem.Bind(this.mailboxSession, id, properties);
            }
            else
            {
                result = Item.Bind(this.mailboxSession, id, properties);
            }
            return(result);
        }
Example #14
0
 private Meeting ToEntity(MeetingRequest meetingRequest)
 {
     return(new Meeting()
     {
         Id = meetingRequest.Id,
         ReferenceId = meetingRequest.ReferenceId,
         Title = meetingRequest.Title,
         MeetingDate = meetingRequest.MeetingDate,
         OwnerId = meetingRequest.OwnerId
     });
 }
 public static MeetingRequest CreateMeetingRequestCopy(MeetingRequest original)
 {
     return(new MeetingRequest
     {
         ID = original.ID,
         Content = original.Content,
         Status = original.Status,
         Meeting = CreateMeetingCopy(original.Meeting),
         User = CreateUserCopy(original.User)
     });
 }
Example #16
0
        public static void ThrowIfMeetingResponseInvalid(MeetingMessage meetingMessage)
        {
            MeetingUtilities.ThrowIfWebParts();
            MeetingRequest meetingRequest = meetingMessage as MeetingRequest;

            if (meetingRequest != null && meetingRequest.IsMailboxOwnerTheSender())
            {
                throw new OwaOperationNotSupportedException(LocalizedStrings.GetNonEncoded(679811893));
            }
            MeetingUtilities.ThrowIfInArchiveMailbox(meetingMessage);
        }
        private static bool IsMRBSPatternDifferent(MeetingRequest before, MeetingRequest after)
        {
            bool different = false;

            different |= before.RepeatTypeId != after.RepeatTypeId;
            different |= before.RepeatWeeklyCode != after.RepeatWeeklyCode;
            different |= before.RepeatMonthlyCode != after.RepeatMonthlyCode;
            different |= before.RepeatDayOfMonth != after.RepeatDayOfMonth;
            different |= before.RepeatEnd != after.RepeatEnd;

            return(different);
        }
        public async Task <IActionResult> CreateMeeting(int id, MeetingRequest request)
        {
            try
            {
                Optional <int> meetingId;

                if (request.DateTime != new DateTime().ToUniversalTime())
                {
                    meetingId = await _meetingService.CreateMeeting(request.DateTime.ToUniversalTime(), id);
                }
                else
                {
                    meetingId = await _meetingService.CreateMeeting(id);
                }


                if (meetingId.IsEmpty)
                {
                    return(StatusCode(500));
                }

                int meeting = meetingId.Value;

                int rowsAffected = await _meetingService.AddAllTasks(meeting, request.Tasks);

                if (rowsAffected < 0)
                {
                    return(StatusCode(500));
                }

                rowsAffected = await _meetingService.InviteAllUsers(meeting, request.InvitedUsers);

                if (rowsAffected < 0)
                {
                    return(StatusCode(500));
                }

                return(Ok(new MeetingIdResponse {
                    MeetingId = meeting
                }));
            }
            catch (UnauthorizedAccessException)
            {
                return(Forbid());
            }
            catch (InvalidOperationException e)
            {
                return(BadRequest(new ErrorResponse {
                    Message = e.Message
                }));
            }
        }
Example #19
0
 public static void NonEditResponse(ResponseType responseType, MeetingRequest meetingRequest, bool sendResponse)
 {
     if (meetingRequest == null)
     {
         throw new ArgumentNullException("meetingRequest");
     }
     MeetingUtilities.ThrowIfMeetingResponseInvalid(meetingRequest);
     using (CalendarItemBase calendarItemBase = MeetingUtilities.UpdateCalendarItem(meetingRequest))
     {
         MeetingUtilities.NonEditResponseInternal(responseType, calendarItemBase, sendResponse);
         MeetingUtilities.DeleteMeetingRequestAfterResponse(meetingRequest);
     }
 }
Example #20
0
        public void acceptMR(Meeting meeting, User user, string id)
        {
            MeetingRequest mr = _context.MeetingRequests.SingleOrDefault(x => x.ID.ToString() == id);

            mr.Status = true;
            Event e = new Event {
                Title = meeting.Title, Start = meeting.Start, End = meeting.End, Location = meeting.Location, Priority = meeting.Priority, User = user, MR = mr, flag = true
            };

            _context.Entry(e.User).State = System.Data.Entity.EntityState.Unchanged;
            _context.Entry(e).State      = System.Data.Entity.EntityState.Added;
            _context.SaveChanges();
            _context.SaveChanges();
        }
Example #21
0
 private void OnPromotedMessageHandler(StoreDriverEventSource source, StoreDriverDeliveryEventArgs args)
 {
     if (StoreDriverConfig.Instance.IsAutoAcceptForGroupAndSelfForwardedEventEnabled)
     {
         StoreDriverDeliveryEventArgsImpl storeDriverDeliveryEventArgsImpl = (StoreDriverDeliveryEventArgsImpl)args;
         if ((ObjectClass.IsMeetingRequest(storeDriverDeliveryEventArgsImpl.MessageClass) || ObjectClass.IsMeetingResponse(storeDriverDeliveryEventArgsImpl.MessageClass)) && !this.IsEHAMigrationMeetingMessage(storeDriverDeliveryEventArgsImpl.MailItem))
         {
             MailboxSession mailboxSession = storeDriverDeliveryEventArgsImpl.MailboxSession;
             if (mailboxSession == null || storeDriverDeliveryEventArgsImpl.ReplayItem == null)
             {
                 MeetingMessageProcessingAgent.tracer.TraceError((long)this.GetHashCode(), "MeetingMessageProcessingAgent::OnPromotedMessageHandler() MailboxSession or StoreDriverDeliveryEventArgsImpl.ReplayItem is null");
                 return;
             }
             if (ObjectClass.IsMeetingRequest(storeDriverDeliveryEventArgsImpl.MessageClass) && !mailboxSession.IsGroupMailbox())
             {
                 MeetingRequest meetingRequest = null;
                 try
                 {
                     meetingRequest = (Item.ConvertFrom(storeDriverDeliveryEventArgsImpl.ReplayItem, mailboxSession) as MeetingRequest);
                     if (meetingRequest != null && MeetingMessageProcessing.IsSentToSelf(meetingRequest, mailboxSession))
                     {
                         MeetingMessageProcessingAgent.tracer.TraceDebug <string, IExchangePrincipal>((long)this.GetHashCode(), "Attempting to deliver self forwarded message {0} to mailbox {1} to Deleted Items", meetingRequest.InternetMessageId, mailboxSession.MailboxOwner);
                         this.DeliverToDeletedItems(mailboxSession, meetingRequest, storeDriverDeliveryEventArgsImpl);
                     }
                 }
                 finally
                 {
                     if (meetingRequest != null)
                     {
                         Item.SafeDisposeConvertedItem(storeDriverDeliveryEventArgsImpl.ReplayItem, meetingRequest);
                     }
                 }
             }
             if (ObjectClass.IsMeetingResponse(storeDriverDeliveryEventArgsImpl.MessageClass) && mailboxSession.IsGroupMailbox())
             {
                 MeetingResponse meetingResponse = Item.ConvertFrom(storeDriverDeliveryEventArgsImpl.ReplayItem, mailboxSession) as MeetingResponse;
                 if (meetingResponse != null && meetingResponse.IsSilent)
                 {
                     ADRecipient adrecipient = null;
                     if (meetingResponse.From.TryGetADRecipient(mailboxSession.GetADRecipientSession(true, ConsistencyMode.IgnoreInvalid), out adrecipient) && adrecipient != null && adrecipient.RecipientDisplayType != RecipientDisplayType.ConferenceRoomMailbox && adrecipient.RecipientDisplayType != RecipientDisplayType.SyncedConferenceRoomMailbox && adrecipient.RecipientDisplayType != RecipientDisplayType.EquipmentMailbox && adrecipient.RecipientDisplayType != RecipientDisplayType.SyncedEquipmentMailbox && !meetingResponse.IsCounterProposal)
                     {
                         MeetingMessageProcessingAgent.tracer.TraceDebug <string, IExchangePrincipal>((long)this.GetHashCode(), "Attempting to deliver empty response {0} to mailbox {1} to Deleted Items", meetingResponse.InternetMessageId, mailboxSession.MailboxOwner);
                         this.DeliverToDeletedItems(mailboxSession, meetingResponse, storeDriverDeliveryEventArgsImpl);
                     }
                 }
             }
         }
     }
 }
Example #22
0
        public static MeetingResponse EditResponse(ResponseType responseType, MeetingRequest meetingRequest)
        {
            if (meetingRequest == null)
            {
                throw new ArgumentNullException("meetingRequest");
            }
            MeetingUtilities.ThrowIfMeetingResponseInvalid(meetingRequest);
            MeetingResponse result;

            using (CalendarItemBase calendarItemBase = MeetingUtilities.UpdateCalendarItem(meetingRequest))
            {
                result = MeetingUtilities.EditResponseInternal(responseType, calendarItemBase);
            }
            return(result);
        }
Example #23
0
        public void createMeeting(MeetingModel meetingModel)
        {
            var meeting = new Meeting {
                Title = meetingModel.Title, Start = meetingModel.Start, End = meetingModel.End, Location = meetingModel.Location, Priority = meetingModel.Priority, creator = meetingModel.creator
            };
            var result = _repository.CreateMeeting(meeting);

            foreach (var participant in meetingModel.participants)
            {
                var notification = new MeetingRequest {
                    Meeting = result, Content = "Do you want to accept request for " + meetingModel.Title, Status = false, User = participant
                };
                _repositoryMR.createMeetingRequest(notification);
            }
        }
Example #24
0
        public IActionResult Create(MeetingRequest meetingRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            Meeting meeting = meetingOrganizer.CreateMeeting(meetingRequest);

            if (meeting == null)
            {
                return(StatusCode(500));
            }

            return(RedirectToAction("Details", new { meetingId = meeting.MeetingId }));
        }
Example #25
0
 protected Item BindItem(Item item, ExchangeService service, PropertySet propertySet)
 {
     if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.Appointment))
     {
         return(Appointment.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.Task))
     {
         return(Task.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.Contact))
     {
         return(Contact.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.ContactGroup))
     {
         return(ContactGroup.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.PostItem))
     {
         return(PostItem.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.MeetingCancellation))
     {
         return(MeetingCancellation.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.MeetingRequest))
     {
         return(MeetingRequest.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.MeetingResponse))
     {
         return(MeetingResponse.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.MeetingMessage))
     {
         return(MeetingMessage.Bind(service, item.Id, propertySet));
     }
     else if (item.GetType() == typeof(Microsoft.Exchange.WebServices.Data.EmailMessage))
     {
         return(EmailMessage.Bind(service, item.Id, propertySet));
     }
     else
     {
         throw new Exception("Unknown Exchange Item type: " + item.GetType().FullName);
     }
 }
Example #26
0
        public ReservationWindow(MeetingRequest request, int mrbs_id)
        {
            InitializeComponent();
            LogManager.LogMessage(String.Format("Initializing reservation window for {0}", mrbs_id));
            ViewModel = new ReservationViewModel(request, mrbs_id);
            ViewModel.SelectedDate = request.Start.Date;
            ViewModel.SetMeetingTimes(request.Start, request.End);

            if (ViewModel.Rooms.Any(r => r.id == request.RoomId))
            {
                ViewModel.SelectedRoom = ViewModel.Rooms.Single(r => r.id == request.RoomId);
            }

            DataContext   = ViewModel;
            ReservationId = mrbs_id;
            LogManager.LogMessage("Complete");
        }
 public MeetingInviteWriter(MeetingRequest meetingRequest, UserContext userContext, string toolbarId, bool isPreviewForm, bool isInDeletedItems, bool isEmbeddedItem, bool isInJunkEmailFolder, bool isSuspectedPhishingItem, bool isLinkEnabled) : base(meetingRequest, userContext, isPreviewForm, isInDeletedItems, isEmbeddedItem, isInJunkEmailFolder, isSuspectedPhishingItem, isLinkEnabled)
 {
     this.meetingRequest = meetingRequest;
     this.isDelegated    = meetingRequest.IsDelegated();
     if (toolbarId == null)
     {
         toolbarId = "mpToolbar";
     }
     if (!Utilities.IsPublic(meetingRequest) && !this.IsDraft && !isEmbeddedItem)
     {
         this.isOrganizer = base.ProcessMeetingMessage(meetingRequest, Utilities.IsItemInDefaultFolder(meetingRequest, DefaultFolderType.Inbox));
         if (this.isOrganizer)
         {
             this.AttendeeResponseWell = new CalendarItemAttendeeResponseRecipientWell(this.CalendarItemBase);
         }
     }
     this.meetingMessageType = meetingRequest.MeetingRequestType;
     if (!this.IsDraft)
     {
         if (this.meetingMessageType == MeetingMessageType.Outdated)
         {
             this.infobarResponseString = new Strings.IDs?(1771878760);
             this.meetingMessageType    = MeetingMessageType.Outdated;
         }
         else if (this.isOrganizer)
         {
             this.infobarResponseString = new Strings.IDs?(247559721);
             this.meetingMessageType    = MeetingMessageType.InformationalUpdate;
         }
         else if (this.meetingMessageType == MeetingMessageType.InformationalUpdate)
         {
             if (this.CalendarItemBase != null && this.CalendarItemBase.ResponseType != ResponseType.NotResponded)
             {
                 this.infobarResponseString = new Strings.IDs?(689325109);
             }
             else
             {
                 this.meetingMessageType = MeetingMessageType.FullUpdate;
             }
         }
     }
     InfobarMessageBuilder.AddFlag(this.FormInfobar, meetingRequest, userContext);
     this.meetingRequestRecipientWell = new MeetingRequestRecipientWell(meetingRequest);
     this.toolbar             = new EditMeetingInviteToolbar(toolbarId, meetingRequest.IsResponseRequested, Utilities.IsInArchiveMailbox(meetingRequest), this.meetingMessageType);
     this.toolbar.ToolbarType = ToolbarType.Preview;
 }
        private static bool IsOutlookPatternDifferent(MeetingRequest mrbs, RecurrencePattern pattern)
        {
            bool different = false;

            switch (mrbs.RepeatTypeId)
            {
            case 1:
                different |= pattern.RecurrenceType != OlRecurrenceType.olRecursDaily;
                break;

            case 2:
                char[] rev = mrbs.RepeatWeeklyCode.ToCharArray();

                different |= pattern.RecurrenceType != OlRecurrenceType.olRecursWeekly;
                different |= pattern.Interval != mrbs.RepeatNumberOfWeeks;
                different |= pattern.DayOfWeekMask != (OlDaysOfWeek)Convert.ToInt32(new string(mrbs.RepeatWeeklyCode.ToCharArray().Reverse().ToArray()), 2);
                break;

            case 3:
                if (mrbs.RepeatMonthlyByWeekday)
                {
                    different |= pattern.RecurrenceType != OlRecurrenceType.olRecursMonthNth;
                    different |= pattern.DayOfWeekMask != (OlDaysOfWeek)((int)Math.Pow(2, mrbs.RepeatWeekdayOfMonth));
                    different |= pattern.Instance != mrbs.RepeatWeekdaysOfMonth;
                }
                else
                {
                    different |= pattern.RecurrenceType != OlRecurrenceType.olRecursMonthly;
                    different |= pattern.DayOfMonth != mrbs.RepeatDayOfMonth;
                }
                break;

            case 4:
                different |= pattern.RecurrenceType != OlRecurrenceType.olRecursYearly;
                break;
            }

            different |= pattern.Duration != (mrbs.End - mrbs.Start).Minutes;
            different |= pattern.EndTime != (mrbs.RepeatEnd.Date + mrbs.End.TimeOfDay);
            different |= pattern.PatternStartDate != mrbs.Start;
            different |= pattern.PatternEndDate != (mrbs.RepeatEnd + mrbs.End.TimeOfDay);
            different |= pattern.StartTime != mrbs.Start;

            return(different);
        }
        // Token: 0x06000920 RID: 2336 RVA: 0x0003D85C File Offset: 0x0003BA5C
        private static CalendarNotificationType AnalyzeEvent(MapiEvent mapiEvent, MeetingMessage meeting)
        {
            CalendarNotificationType result = CalendarNotificationType.Uninteresting;

            if (meeting is MeetingRequest)
            {
                MeetingRequest     meetingRequest     = (MeetingRequest)meeting;
                MeetingMessageType meetingRequestType = meetingRequest.MeetingRequestType;
                if (meetingRequestType <= MeetingMessageType.FullUpdate)
                {
                    if (meetingRequestType != MeetingMessageType.NewMeetingRequest)
                    {
                        if (meetingRequestType != MeetingMessageType.FullUpdate)
                        {
                            return(result);
                        }
                        goto IL_4A;
                    }
                }
                else
                {
                    if (meetingRequestType == MeetingMessageType.InformationalUpdate || meetingRequestType == MeetingMessageType.SilentUpdate)
                    {
                        goto IL_4A;
                    }
                    if (meetingRequestType != MeetingMessageType.PrincipalWantsCopy)
                    {
                        return(result);
                    }
                }
                return(CalendarNotificationType.NewUpdate);

IL_4A:
                if (CalendarChangeProcessor.InterestingFlagsExists(meetingRequest.ChangeHighlight, MapiExtendedEventFlags.NoReminderPropertyModified))
                {
                    result = CalendarNotificationType.ChangedUpdate;
                }
            }
            else if (meeting is MeetingCancellation)
            {
                result = CalendarNotificationType.DeletedUpdate;
            }
            return(result);
        }
Example #30
0
 // Token: 0x0600079B RID: 1947 RVA: 0x00036360 File Offset: 0x00034560
 private void ProcessMeetingRequest(MailboxSession itemStore, MeetingRequest mtgMessage, ref CalendarItemBase originalCalItem, string internetMessageId, int defaultReminderInMinutes)
 {
     try
     {
         if (mtgMessage.TryUpdateCalendarItem(ref originalCalItem, false))
         {
             MeetingMessageType meetingRequestType = mtgMessage.MeetingRequestType;
             if (originalCalItem != null)
             {
                 if (originalCalItem.Id == null && MeetingMessageType.NewMeetingRequest == meetingRequestType)
                 {
                     int num = (int)Utils.SafeGetProperty(mtgMessage, ItemSchema.ReminderMinutesBeforeStart, defaultReminderInMinutes);
                     if (num == 1525252321)
                     {
                         num = defaultReminderInMinutes;
                         originalCalItem[ItemSchema.ReminderMinutesBeforeStart] = num;
                     }
                     if (num < 0 || num > 2629800)
                     {
                         originalCalItem[ItemSchema.ReminderMinutesBeforeStart] = defaultReminderInMinutes;
                     }
                     if (!originalCalItem.Reminder.IsSet)
                     {
                         originalCalItem.Reminder.MinutesBeforeStart = defaultReminderInMinutes;
                         originalCalItem.Reminder.IsSet = true;
                     }
                 }
                 originalCalItem.Validate();
                 ConflictResolutionResult conflictResolutionResult = originalCalItem.Save(SaveMode.ResolveConflicts);
                 originalCalItem.Load();
                 if (conflictResolutionResult.SaveStatus == SaveResult.IrresolvableConflict)
                 {
                     throw new SaveConflictException(ServerStrings.ExSaveFailedBecauseOfConflicts(originalCalItem.Id), conflictResolutionResult);
                 }
             }
         }
         CalendarAssistantPerformanceCounters.MeetingRequests.Increment();
         CalendarProcessing.TracerPfd.TracePfd <int, object, string>((long)mtgMessage.GetHashCode(), "PFD IWC {0} {1}:completed Processing Meeting Request for {2}", 24727, TraceContext.Get(), internetMessageId);
     }
     catch (ObjectNotFoundException innerException)
     {
         throw new TransientException(Strings.descTransientErrorInRequest, innerException);
     }
 }