maandag 6 augustus 2012

SharePoint 2013: remote event receivers

Remote event receivers is another one of the very cool new things we can expect in the upcoming version of SharePoint. Remote event receivers are very similar to the regular event receivers we know from earlier versions of SharePoint: they are triggered when a certain event happens, we can specify which code has to run for which event and we can choose between synchronous and asynchronous events.

With remote event handlers this will all be the same. The only difference is that the code that will run when the event occurs will be served by a web service. This means that if we register a remote event receiver we will also tell SharePoint which web service needs to run.

How it works

  1. The user does an action on SharePoint (e.g. edits a list item).
  2. SharePoint talks to ACS  (Access Control Service) and requests a signed token contain information about the current user's context.
  3. SharePoint then talks to the registered web service where we can do whatever we want. We could for example update a backend system as a result of the fired event.
  4. The backend system sends succes or failure back to the web service.
  5. The web service can now also talk to the ACS to request its own signed token to do a call back to SharePoint. So using this token we can do remote actions from within the web service as a result of our earlier operation in the backend system.
If you want to know which events are supported, open up Visual Studio, create a new SharePoint hosted app and add a remote event receiver. In the next screen, as today in Visual Studio 2010, you will see the supported events.

The template code basically has two methods:
  1. ProcessEvent: which allows to do the remote call but also provides code to get a context token to do a callback to SharePoint
  2. ProcessOneWayEvent: used to do a one way call to the web service without a callback to SharePoint
Registering the remote event receiver
If you look in your app you will see that a new elements file has been added:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListTemplateId="3100">
      <Receiver>
        <Name>RemoteEventReceiver1ItemAdding</Name>
        <Type>ItemAdding</Type>
        <SequenceNumber>10000</SequenceNumber>
        <Url>~remoteAppUrl/RemoteEventReceiver1.svc</Url>
      </Receiver>
  </Receivers>
</Elements>

Using this CAML, we can specify which events we want to support and via the 'Url' tag we can tell SharePoint which web service call needs to be made.

App events
You can also make use of events at the app level. Click on the app project and checkout the properties on the bottom right hand side of the screen. You have settings for 'Handle app installed/uninstalled/upgraded'. When you set these to through, new entries will be added to the app manifest to support these events.

Coding
If you check the generated code, the most important is the default paramater for both methods:
RemoteEventProperties properties

As with regular event handlers, this RemoteEventProperties will give you access to all kinds of details about the incoming event.

97 opmerkingen:

  1. Hi ... william.. thanks for sharing information.This has to be one of my favorite posts! And on top of thats its also very helpful topic for newbies. Thanks a lot for informative information onsharepoint.

    BeantwoordenVerwijderen
  2. Just a Small Question...Are Remote Event Handlers supported in a SharePoint Hosted Apps.

    BeantwoordenVerwijderen
  3. Deze reactie is verwijderd door de auteur.

    BeantwoordenVerwijderen
  4. I am trying to create Apps , when i am deploying it shows the fallowing error ,please check that and solve my error.

    App failed to install, cleaning up...
    2> Successfully uninstalled the app for SharePoint.
    2> App installation encountered the following errors:
    2>
    2> @"Error 1
    2> CorrelationId: d2e66e18-2823-42fc-9acd-f28bf3001354
    2> ErrorDetail: The remote event reciever callout URL is invalid.
    2> ErrorType: App
    2> ErrorTypeName: App Related
    2> ExceptionMessage: System.IO.InvalidDataException: Failed to create an absolute Url from the string '~remoteAppUrl/AppEventReceiver.svc'. The string may contain invalid tokens.
    2> at Microsoft.SharePoint.Administration.SPAppInstance.CreateUriFromString(String combinedUrl)
    2> at Microsoft.SharePoint.Administration.SPAppInstance.ResolveUrl(Uri url)
    2> at Microsoft.SharePoint.Lifecycle.SPAppLifecycleEventCalloutTask.CallRemoteEventReceiver(SPAppInstance instance)
    2> at Microsoft.SharePoint.Lifecycle.SPAppLifecycleEventCalloutTask.Deploy()
    2> at Microsoft.SharePoint.Administration.SPAppTask.DeployOperation()
    2> at Microsoft.SharePoint.Lifecycle.MonitoredTaskExecution.DoTask()
    2> Source: Common
    2> SourceName: Common App Deployment
    2>Error occurred in deployment step 'Install app for SharePoint': Failed to install app for SharePoint. Please see the output window for details.
    ========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
    ========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========

    give me the solution or give example to create Remote event receiver in SharePoint Hosted Apps.

    BeantwoordenVerwijderen
  5. Nice post. Here is one more post explaining Sharepoint 2013 Evendling basics

    http://sureshpydi.blogspot.in/2013/04/sharepoint-2013-handling-event-receivers.html

    BeantwoordenVerwijderen
  6. Here is one more post Explaining Sharepoint 2013 remote Event handlers

    http://sureshpydi.blogspot.in/2013/04/create-remote-event-receivers-in-share.html

    BeantwoordenVerwijderen
  7. This information really worth saying, i think you are master of the content and thank you so much sharing that valuable information and get new skills after refer that post.
    PEGA Training in Chennai

    BeantwoordenVerwijderen
  8. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

    cognos tm1 training

    QA Training

    BeantwoordenVerwijderen
  9. Hello,

    I just want to say that all the information you have given here is awesome...great and nice blog thanks sharing..Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...

    Amazon Web Services (AWS) is a collection of remote computing services, also called web services, that make up a cloud computing platform offered by Amazon.com. AWS is located in 11 geographical “regions”: US East, where the majority of AWS servers are based.

    Each Region is wholly contained within a single country and all of its data and services stay within the designated Region. Each Region has multiple “Availability Zones”, which are distinct data centers providing AWS services. Availability Zones are isolated from each other to prevent outages from spreading between Zones.

    BeantwoordenVerwijderen
  10. Amazon has a simple web services interface that you can use to store and retrieve any amount of data, at any time, from anywhere on the web. Amazon Web Services (AWS) is a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow.For more information visit.aws online training

    BeantwoordenVerwijderen
  11. Thank you for allowing me to read it, welcome to the next in a recent article. And thanks for sharing the nice article, keep posting or updating news article.
    Java training in Chennai | Java training in USA |

    Java training in Indira nagar | Java training in Rajaji nagar

    BeantwoordenVerwijderen
  12. This is beyond doubt a blog significant to follow. You’ve dig up a great deal to say about this topic, and so much awareness. I believe that you recognize how to construct people pay attention to what you have to pronounce, particularly with a concern that’s so vital. I am pleased to suggest this blog.


    Data Science Training in Chennai | Data Science course in anna nagar

    Data Science course in chennai | Data science course in Bangalore

    Data Science course in marathahalli | Data Science course in btm layout

    BeantwoordenVerwijderen
  13. This is most informative and also this post most user friendly and super navigation to all posts... Thank you so much for giving this information to me.. 

    best rpa training in chennai | rpa online training |
    rpa training in chennai |
    rpa training in bangalore
    rpa training in pune
    rpa training in marathahalli
    rpa training in btm

    BeantwoordenVerwijderen
  14. Good blog..time just passed away by reading the blog.you have put good efforts.thank you.
    testing tools training

    testing tools training classes

    BeantwoordenVerwijderen
  15. Attend The Python Training in Bangalore From ExcelR. Practical Python Training in Bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Python Training in Bangalore.

    BeantwoordenVerwijderen
  16. QuickBooks Payroll Support Phone Number the list optimally, in QB and QB desktop, then see the description ahead. Here, you receive the determination of numerous variety of information what you’ve close at hand for assisting the setup process with comfort.

    BeantwoordenVerwijderen
  17. QuickBooks has almost changed it is of accounting. Nowadays accounting has exploded to become everyone’s cup of tea and that’s only become possible because because of the birth of QuickBooks accounting software. We have the best and the most convenient answer to enhance your productivity by solving every issue you face with the software. Give us a call at
    Support For QuickBooks to avail the greatest customer service services designed for you.

    BeantwoordenVerwijderen
  18. The Quickbooks Payroll Support Number Desktop version offers a hand filled with services. We must perform some installation on our desktop to have it working then. It boils down with three types of services basic, enhanced and assisted. Basic payroll is most affordable amongst most of the three service types. Enhanced is a tad little more expensive then basic in addition to the most high-priced a person is assisted.

    BeantwoordenVerwijderen
  19. We've got experienced people to offer the figure. We're going to also provide you with the figure of your respective budget which you can be in the near future from now. This is only possible with QuickBooks Support Phone Number

    BeantwoordenVerwijderen
  20. What’re basic reasons for corruption of QuickBooks Tech Support Phone Number Company Data file?Before attempting to improve it, the second logical step you ought to perform will be to investigate the complexities behind such corruption.

    BeantwoordenVerwijderen
  21. If you need any help for QuickBooks errors from customer support to get the means to fix these errors and problems, you can easily contact with Quickbooks Support Number and obtain instant help with the guidance of your technical experts.

    BeantwoordenVerwijderen
  22. Welcome aboard, to the support site par excellence where your entire worries related to the functioning of QuickBooks Enterprise will be addressed by our world-class team of QuickBooks Enterprise support Number when you glance at the blink of a watch.

    BeantwoordenVerwijderen
  23. Attack of this virus on hard disk drive data can infect the file.In absence of inappropriate UPS, an immediate power drop can trash entire hard drive.To handle data corruption problem to the best manner is supposed to be make Support for QuickBooks 2019 back up and do this multiple times at various physical locations.

    BeantwoordenVerwijderen
  24. These errors might be resolvable at QuickBooks Customer Support Number, by our supremely talented, dedicated and well-informed tech support team team.

    BeantwoordenVerwijderen
  25. Payroll management is actually an essential part these days. Every organization has its own employees. Employers want to manage their pay. The yearly medical benefit is vital. The employer needs to allocate. But, accomplishing this manually will require enough time. Aim for Quickbooks Support Phone Number.

    BeantwoordenVerwijderen
  26. QuickBooks offers a quantity of features to trace your startup business. Day by day it is getting well liked among the businessmen and entrepreneurs. However with the increasing popularity, QuickBooks is meeting a lot of technical glitches. And here we show up with our smartest solutions. Check out the problem list and when you face any one of them just call QuickBooks Support Phone Number for the assistance.

    BeantwoordenVerwijderen
  27. We've got experienced people to offer the figure. We're going to also provide you with the figure of your respective budget which you can be in the near future from now. This is only possible with QuickBooks Customer Support Phone Number

    BeantwoordenVerwijderen
  28. So now you are becoming well tuned in to benefits of QuickBooks online payroll in your company accounting but because this premium software contains advanced functions that may help you along with your accounting task to complete, so you may face some technical errors when using the QuickBooks payroll solution. If that's so, Quickbooks Support provides 24/7 help to our customer.

    BeantwoordenVerwijderen
  29. Our specialist can surely do wonders as well as do it each and every day when a person comes to us with their QuickBooks problems. Our QuickBooks Enterprise Support Phone Number team, especially, tackle every bugs and error of QuickBooks.

    BeantwoordenVerwijderen
  30. QucikBooks Enterprise Enterprise Technical Support almost eliminated the typical accounting process. Along with a wide range of tools and automations, it provides a wide range of industry verticals with specialized reporting formats and tools.

    BeantwoordenVerwijderen
  31. QuickBooks 2019 will be the better account management product till now. The recent improvement that is built in this system regarding current user requirements and the solutions to overcome the limitation of previous QuickBooks versions. We've been here to improve your understanding with regards to the payroll updates happens in QuickBooks Enterprise, desktop, pro, premier 2019 versions. Solve your queries related to QuickBooks Online Payroll whether Enhanced or Full Service. Fix all of the issues for QuickBooks Desktop Payroll Basic, Standard, & Payroll Assisted. Check out the aforementioned number to get hold of our ProAdvisor to possess support for QuickBooks Payroll Technical Support Number, Intuit Online & Full Service Payroll.

    BeantwoordenVerwijderen
  32. QuickBooks Enterprise Support contact number is assisted by an organization this is certainly totally dependable. It is a favorite proven fact that QuickBooks Enterprise Support Phone Number has had about plenty of improvement in the area of accounting. In the long run quantity of users and selection of companies

    BeantwoordenVerwijderen
  33. QuickBooks is the biggest selling desktop and online software across the globe. The program has transformed and helped small & medium sized companies in many ways and managed their business successfully. The smart accounting software is richly featured with productive functionalities that save time and accuracy of the work. As it is accounting software, from time to time you've probably a query and can seek assistance. This is why why QuickBooks has opened Intuit QuickBooks Support Phone Number. For telephone assistance just call or email to aid team. You can fetch quick resolutions for all your issues you face along with your QuickBooks.

    BeantwoordenVerwijderen
  34. We've been here to improve your understanding with regards to the payroll updates happens in QuickBooks Enterprise, desktop, pro, premier 2019 versions. Solve your queries related to QuickBooks Payroll Support Phone Number whether Enhanced or Full Service. Fix all of the issues for QuickBooks Desktop Payroll Basic, Standard, & Payroll Assisted.

    BeantwoordenVerwijderen
  35. The guide might have helped you understand QuickBooks file corruption and methods to resolve it accordingly. If you would like gain more knowledge on file corruption or any other accounting issues, then we welcome you at our professional support center. It is simple to reach our staff via QuickBooks Error Code 6000-301 & get required suggestion after all time. The group sitting aside understands its responsibility as genuine & offers reasonable assistance with your demand.

    BeantwoordenVerwijderen
  36. However, should you believe which you urgently have to hire our ProAdvisor to complete the job for your needs, it is possible to dial QuickBooks assisted payroll support telephone number . This might be our QuickBooks Payroll Tech Support Number available 24/7 for many users.

    BeantwoordenVerwijderen
  37. So so now you have become well tuned directly into advantages of QuickBooks Payroll Support Phone Number in your company accounting but because this premium software contains advanced functions that may help you along with your accounting task to complete, so you may face some technical errors while using the QuickBooks payroll solution.

    BeantwoordenVerwijderen
  38. Our research team at QuickBook Support Phone Number is dependable for most other reasons as well. We now have customer care executives which are exceptionally supportive and pay complete awareness of the demand of technical assistance made by QuickBooks users.

    BeantwoordenVerwijderen
  39. So if you are simply facing any type of errors or issues each day with your QuickBooks Support Phone Number accounting software then don’t worry about it. Prime axle always gives you the best & most amazing team to just resolve or fix your errors or issues at any time.

    BeantwoordenVerwijderen
  40. Unneeded to state, QuickBooks has given its utmost support to entrepreneurs in decreasing the purchase price otherwise we’ve seen earlier, however, an accountant wont to keep very different accounting record files. Using the assistance of QuickBooks Tech Support Number, users will maintain records like examining, recording and reviewing the complicated accounting procedures.

    BeantwoordenVerwijderen
  41. To help keep running this accounting software without the hindrance, we are only at QuickBooks Support Phone Number team Channel to tackle QuickBooks issues in technical way. Our company is just one single call away at to help you get put up and keep QuickBooks running without the trouble.

    BeantwoordenVerwijderen
  42. Certain QuickBooks Support pop-up in some instances if you're installing the most recent version or while accessing your QuickBooks account online through an internet browser. Such pop-up errors can be quickly resolved by reporting the error into the QuickBooks error support team.

    BeantwoordenVerwijderen
  43. Thus, if the HP Printer Support Phone Number user has to know the exact issue then they can run a diagnostic ensure that you clean up the disk files. These troubleshooting methods can eradicate the issue in which the system crashes and freezes itself.

    BeantwoordenVerwijderen
  44. To get hold of the services the consumer can dial HP Inkjet Printer Support Phone Number the beneath the stated number. Resolve many common issues using HP Support Assistant’s troubleshooters and automated fixes. As an example, Audio Check can diagnose which help fix issues if you having difficulty hearing sound from your computer.

    BeantwoordenVerwijderen
  45. Whether or perhaps not the matter relates to the tax table update, service server, payroll processing timing, Intuit server struggling to respond, or QuickBooks Payroll Support Number update issues; we assure anyone to deliver precise technical assist with you on time.

    BeantwoordenVerwijderen
  46. Your Technical support team is simply only one tap away, dial our QuickBooks Technical Support Phone Number and experience our best hassle-free tech support team.

    BeantwoordenVerwijderen
  47. Our QuickBooks Tech Support team for QuickBooks provides you incredible assistance by means of amazing solutions. The caliber of our services is justified because of this following reasons.

    BeantwoordenVerwijderen
  48. Such as for instance simply fixing your damaged QuickBooks Support company file with the use of QuickBooks file doctor tool. And easily fix QuickBooks installation errors or issues with the employment of wonderful QuickBooks install diagnostic tool.

    BeantwoordenVerwijderen
  49. Our research team at QuickBooks Support contact number QuickBooks is dependable for most other reasons as well. We have customer care executives which are exceptionally supportive and pay complete awareness of the demand of technical assistance made by QuickBooks users. Our research team is always prepared beforehand because of the most appropriate solutions which are of great help much less time consuming. Their pre-preparedness helps them extend their hundred percent support to any or all the entrepreneurs along with individual users of QuickBooks Payroll Support
    . As tech support executives for QuickBooks, we assure our twenty-four hours a day availability at our technical contact number.

    BeantwoordenVerwijderen
  50. You’ll manage to contact us any time for the moment QuickBooks Support Number have a tendency to are accessible for you 24*7. Our talented team of professionals is invariably in a position to work with you whatever needs doing.

    BeantwoordenVerwijderen
  51. The QuickBooks Support Phone Number is present 24/7 to provide much-needed integration related support and also to promptly make use of QuickBooks Premier with other Microsoft Office software programs.

    BeantwoordenVerwijderen
  52. We provide QuickBooks Enterprise Support Phone Number solutions to users worldwide. We render reliable service and guaranteed satisfaction to our users. Our customer service provides the following support option to our users. Our QuickBooks Enterprise support toll-free number to get unlimited technical support. The well-trained, highly capable and experienced technical support experts can resolve your issues and give you the best solutions.

    BeantwoordenVerwijderen
  53. Hey, this is an astounding post. It’s easy to understand and grab generous information when the topic has sufficient content. To be very honest the entire post is amazing and tempting. Thank you for sharing such a powerful post. Enjoy your life stress-free and even manage the time and your tedious fiscal tasks with QuickBooks. In case, you face any problem, contact QuickBooks Support Phone Number +1-844-200-2627 for instant and perfect help

    BeantwoordenVerwijderen
  54. Thumbs for the blog. Thank you for writing this blog. Your blog has solved all of my issues. It is difficult to find bloggers who still have such a great quality of content. If you are facing trouble in managing your employees pay, try using QuickBooks Payroll feature. It supports unlimited payrolls at an affordable price rate and also has 24hrs direct bank deposit. If you face difficulty in downloading or installing the payroll software, call us on our tollfree QuickBooks Payroll Support Phone Number +1-844-2353-3996.https://tinyurl.com/y2g8kxov

    BeantwoordenVerwijderen
  55. Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. I wanted to thank you for this websites! Thanks for sharing. Great websites!
    data analytics courses online

    BeantwoordenVerwijderen
  56. Hey! What a thought-provoking post. In case you are looking for the best payroll software then go for QuickBooks Payroll. Through this software, you can easily manage your payroll and taxes. To know more about the installation of this software, feel free to reach our experts via QuickBooks Payroll Support Phone Number 1-833-401-0204. Read more: https://www.mildaccounting.com/quickbooks-payroll-support-phone-number/ or visit us: https://tinyurl.com/sp3gnc3

    BeantwoordenVerwijderen
  57. Error technically means an estimate distinction between the calculated value of a good as well as its true value. The numeric value, here, 9999 may be the value to identity the error. If you would like to learn How To Resolve Quickbooks Error 9999, you can continue reading this blog.

    BeantwoordenVerwijderen
  58. excellent one..nice,creative..Thanks for the Giving the Good content to making valuable more. Appreciating all of your efforts to giving such an informative Blogs.

    BEST ANGULAR JS TRAINING IN CHENNAI WITH PLACEMENT

    https://www.acte.in/angular-js-training-in-chennai
    https://www.acte.in/angular-js-training-in-annanagar
    https://www.acte.in/angular-js-training-in-omr
    https://www.acte.in/angular-js-training-in-porur
    https://www.acte.in/angular-js-training-in-tambaram
    https://www.acte.in/angular-js-training-in-velachery


    BeantwoordenVerwijderen
  59. Get in touch with our highly skillful QB experts by contacting our team members at QuickBooks Tech Support Number 1-833-325-0220.

    BeantwoordenVerwijderen
  60. Nice Blog!
    if you hang up with any issues in QuickBooks Get live support 24*7 from QuickBooks expert on tool-free Number.
    Dial QuickBooks for mac Support Phone Number 1-844-908-0801

    BeantwoordenVerwijderen
  61. Very nice blog and articles. I am really very happy to visit your blog. Now I am found which I actually want. I check your blog everyday and try to learn something from your blog. Thank you and waiting for your new post.
    Salesforce Training in Chennai

    Salesforce Online Training in Chennai

    Salesforce Training in Bangalore

    Salesforce Training in Hyderabad

    Salesforce training in ameerpet

    Salesforce Training in Pune

    Salesforce Online Training

    Salesforce Training

    BeantwoordenVerwijderen
  62. Very nice blog and articles. I am really very happy to visit your blog. Now I am found which I actually want. I check your blog everyday and try to learn something from your blog. Thank you and waiting for your new post.
    IELTS Coaching in chennai

    German Classes in Chennai

    GRE Coaching Classes in Chennai

    TOEFL Coaching in Chennai

    spoken english classes in chennai | Communication training

    BeantwoordenVerwijderen
  63. Nice write up! you may check out the SEO Tools Group Buy live webinar, where they discuss about the new trends in digital marketing and suggest the best tools to practice it.

    BeantwoordenVerwijderen
  64. Very nice blogs!!! i have to learning for lot of information for this sites…Sharing for wonderful information.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing
    Web design Training in Chennai

    Web design Training in Velachery

    Web design Training in Tambaram

    Web design Training in Porur

    Web design Training in Omr

    Web design Training in Annanagar

    BeantwoordenVerwijderen
  65. Good Post! it was so good to read and useful to improve my knowledge as an updated one, keep blogging. After seeing your article I want to say that also a well-written article with some very good information which is very useful for the readers....thanks for sharing it and do share more posts like this.

    SQL Training in Gurgaon
    Advanced Excel /VBA training in Gurgaon
    Tableau Training in Gurgaon

    BeantwoordenVerwijderen
  66. This is most informative and also this post most user friendly and super navigation to all posts.Group Buy SEO Tools

    BeantwoordenVerwijderen
  67. Good Post! it was so good to read and useful to improve my knowledge as an updated one,cheapest wholesale cloth market in India

    BeantwoordenVerwijderen
  68. Great blog post!! Juan Francisco Estrada vs Roman “Chocolatito� Gonzalez Live
    estrada vs chocolatito 2 live stream free

    BeantwoordenVerwijderen
  69. This is most informative and also this post most user friendly

    BeantwoordenVerwijderen
  70. StockTrims cloud-based programming Kiwi Hose and Hydraulics know precisely what they require and can have the correct part prepared - at last saving their clients a great deal of time, apprehension and cash.Inventory Management

    BeantwoordenVerwijderen
  71. I respect your work, regards for all the interesting blog posts.

    BeantwoordenVerwijderen
  72. Great post. regards for all the interesting blog posts.

    BeantwoordenVerwijderen
  73. Hello,
    Your blog has a lot of valuable information regarding Oracle Exadata. Thanks for your time on putting these all together.. Really helpful blog..I just wanted to share information about
    power bi training

    BeantwoordenVerwijderen
  74. This blog is very informative and knowledgble.keep sharing such typw of blog.

    Python classes in Pune

    BeantwoordenVerwijderen
  75. I am really respect your work, regarding all the interesting and fruitful content stuffs here.
    Regards - sattamatka

    BeantwoordenVerwijderen
  76. Great, post is so informative and helpfull to everyone , keep posting and checkout my blog java course in pune

    BeantwoordenVerwijderen