How to get the correct Sensitivity value when change the meeting from private to not private - exchangewebservices

I use EWS managed API “Appointment.Bind” to get the appointment of a meeting room by an Application Impersonation account.
When a meeting's "private" checkbox was unchecked, the property "Sensitivity" of the appointment was 0(normal).
When a meeting's "private" checkbox was checked, the property "Sensitivity" of the appointment was 2(private).
When an existing meeting's "private" checkbox was changed from unchecked to checked, the property "Sensitivity" of the appointment changed from 0 to 2.
But When an existing meeting's "private" checkbox was changed from checked to unchecked, the property "Sensitivity" of the appointment was still 2(0 should be correct).
So how can the Sensitivity value be correct when an existing meeting's "private" checkbox was changed from checked to unchecked.

When the change where made was a Meeting update request sent ? if no meeting updates are sent (which depends on the client) then the attendees and Meeting room mailboxes won't update because these objects aren't linked directly in the Exchange store. Therefore an Attendee/Meeting Room will only ever update based on an update request (not on change of the organizer appointment).

Related

How to prevent the user from modifying the values input ​on page

How can I prevent a user from making a modification to the value being entered into an element, say input ,
For example, if I have an input for the invoice number, I do not want the user to modify it through the web developer tools available in Internet browsers such as Chrome, Firefox and others through the (Inspect) feature.
I tried to hide the element but I don't want to hide it, I just want to show it and not modify it.
I used hidden, as well as for readers only, but the user can cancel the read-only feature
for example :
enter image description here
It is possible to use hidden but it will cause a problem for my tables I don't want to duplicate items, as I will have to create an item for the product price that is visible and another item with the same data but hidden
You can't control what information the user sends to the server.
You need to perform authentication and authorization on the server.
If the server sends a request which, for example, says "Mark invoice 12345 as paid" then you need to check that the logged in user is a user who has permission to order that that particular invoice be marked as paid.

How can I show the logged-in user in Power Apps Portal what their form submissions are?

The setup
I have a Power Apps Portal with the following pages:
Prequalification page. This has an entity form embedded inside it. The entity form is linked to the custom entity SupplierPrequal. When the user fills in and submits that form, they are redirected to the next page.
Submission List page. This has a List embedded inside it. The list should show each of the logged-in user's form submissions.
Submission Edit page. This has an entity form embedded inside it. The entity form is linked to the same custom entity SupplierPrequal and lets them attach files to a previous submission.
The problem I am facing
On the Submission List page, it shows submissions of users other than the logged in user. Here is a screenshot. You can see that the metadata for fields like [Created By] does not identify the user who submitted the form.
I was able to autopopulate the field [00_lkp_UserSubmittingForm] with the logged in username. Unfortunately this is not a unique identifier, and is also editable by the user.
I see these potential solutions, and would appreciate your advice
Change the metadata so that instead of recording the field [Created By] as "SYSTEM", it will record the logged-in user's unique identifier. Then change the view's filtering conditions, so [Created By] equals the current user.
Change the metadata so that a new field such as [00_lkp_UserSubmittingForm] will be autopopulated with the logged-in user's unique identifier. Then change the view's filtering conditions, so that new field equals the current user.
I suspect that both these approaches will require a lookup of the [External Identity] entity's field [Username]. They will probably involve configuring the entity form's tabs "Entity Reference" and "Entity Form Metadata" in Portal Management.
What I've researched
This link describes a similar problem, although the solution is for a CRM Portal, not a Power Apps Portal.
This link addresses the issue for a Canvas App, not a Portal App
This link apparently got it working, although I am still trying to understand what I need to configure.
If I understand your problem statement you wish to filter out Entity List, in your case Submission List page based on your logged in user.
As you might now, every user in Portals is a Contact record in CRM.
If I see your createdby, modifiedby and owner fields, I believe you have some background logic which runs under System (user) and does the required.
You have 2 way to solve your issue:
Either change your background logic to run under the context of running user. This will createdby, modifiedby and owner as running user and not System.
or you create a lookup field 00_lkp_UserSubmittingForm I say lookup and not plain text field. This lookup field will have relationship with contact. So you can autofill this field (lookup) with contact as user. In this way you get unique value in your 00_lkp_UserSubmittingForm field. Because it has unique guid for each user (in turn a contact)
Now with above any method what you get is current user (unique).
Then you can follow any of the below article to solve your issue.
List item
In Entity List itself, there is one option to add Filter Condition. Please check below:
Article Ref
Or follow this article

Track checkbox checked with email or other info

I'm working with a client who has an order form, and needs to track that each customer selected "I agree to terms and conditions" checkbox at checkout. They'll need to be able to go back and check this data.
The checkout is via a ClickFunnels order form. I added the checkbox via HTML, no problem there. The customers needs to be able to track that each client clicks the agree button, and it needs to be associated with the email or phone number.
Was thinking I may be able to do this with the User ID of the Google Tag Manager? I could assign the input from user email to the User ID in Tag Manager?
Any help would be appreciated.

EWS create appointment without getting a streaming notification

I'm working on synchronization from our application to Exchange and back. I've set up a streamingnotification to the calendar of a room/resource defined in Exchange.
When I create an appointment in the calendar of the room I get a notification in my application, which is great. However, I also want to change this appointment from our application and send these changes to the calendar of the room in Exchange. That is no problem, but then I also receive a notification from Exchange. Basically Exchange is telling me that item 'x' has changed, when I'm the one who changed it, so I already know and don't want to process this change.
Is there a way to determine where the change originated from, or tell EWS to not send a streamingnotification when I edit an item?
Whenever you change an Item in EWS with UpdateItem the lasted ChangeKey is returned in the Response https://msdn.microsoft.com/en-us/library/office/dn605828(v=exchg.150).aspx . This property allows you to track when changes occur on the Item or to validate if no changes has occurred since the last modification.
The PidTagLastModifierEntryId property https://msdn.microsoft.com/en-us/library/gg672131(v=exchg.80).aspx will tell you who last modified an appointment.

EWS appointment reminders

I'm getting appointment items of an account by ews as CalendarItemType object... this got an item as AppointmentState.
i looked msdn and it has only (noattendees,is meeting,recieved,cancelled,forwaded values)
but how to get reminder values(snooze,dismissed e.g) and if snoozed got snooze time
and the current status of appoinment(cancelled,deleted e.g.)
My guess is that when the user chooses to "snooze" an appointment, the property ReminderMinutesBeforeStart is changed accordingly by Outlook (note that I am referring to the EWS Managed API).