Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / productivity / SharePoint

Integrating SharePoint and Exchange for Conference Rooms Reservation Solution

4.44/5 (6 votes)
20 Jan 2014CPOL5 min read 44.2K  
EastBanc Technologies successfully created an architecture that provides a scalable and flexible solution built on Microsoft technology stack using all the advantages of an integrated solution.

Introduction

Recently, an enterprise client asked us to create a solution for reserving company conference rooms. The client is a technically savvy company with numerous offices throughout the country and 5-6 conference rooms at each location. The challenge was for employees who were constantly traveling from one office to another to be able to find a free conference room “on the fly”, that had the equipment and space they needed. This article will show you exactly how EastBanc Technologies successfully integrated existing Microsoft solutions to create a time saving solution for reserving conference rooms with confidence and ease from any device or computer.

Background

The customer has an internal portal based on Microsoft SharePoint 2010 with 1500 daily users. The company also utilizes Microsoft Exchange. Microsoft Exchange already has features that allow booking different resources in the company through its Room Mailbox. Every conference room has its own email address that an employee can use for booking it, and others can see on the calendar what date and time the room is reserved for. Outlook 2010 also has a feature called Room Finder. You can read about Exchange Mailbox features in detail here:

http://technet.microsoft.com/en-us/library/bb124952(v=exchg.141).aspx

Click here to learn more about Room Finder:

http://support.microsoft.com/kb/2673231

At first glance, everything seems easy to set up. However, there are some limitations. First, all users must have Outlook. Also, the description of the room is very minimal and doesn’t allow you to specify what the room is equipped with (projector, white board, conference call equipment, etc.).

Due to these limitations, the customer was looking for ways to create a system where every employee can see at a glance what rooms are available and what equipment is included without any extra steps.

SharePoint 

The first step in creating this solution was to create 3 lists:
Departments, Conference Rooms, and Conference Room Reservations.


The Departments list consists of different branches in different cities.

Conference Rooms List contains rooms with their characteristics like:

  • Name
  • Branch
  • Capacity
  • Room equipment: projectors, white board, etc.
  • Email address used for MS Exchange integration.

And finally the list of Conference Room Reservations:

  • Room #
  • Meeting date
  • Meeting start time
  • Meeting end time
  • Name of a person who booked the room.

So now we have the lists. However, someone has to fill them in, so we grouped the users by their roles:

  • Employees can search for rooms (using different parameters), plan and book their meeting rooms.
  • Reservation Manager can reschedule or cancel existing meetings in his/her branch.
  • Administrator creates and edits meeting rooms and the room directory with features like number of seats, projector, whiteboard, etc. In addition, Administrator is able to switch between brunches and to act as Reservation Manager.

UI 

Our customer already had a user interface design applied to the portal, so our designers had little work to do:

1. User’s Home Page:

Image 1

Screenshot 1: User Interface.

2. A separate link takes you to the list of rooms that contains the basic information. Details about the room are displayed by clicking on the room name.

Image 2

Screenshot 2: Conference Rooms Equipment at a Glance.


3. The two-week calendar is available under the link "Search for Meeting Rooms” Each cell displays the date, who booked a room, and for what time.

Image 3

Screenshot 3: Calendar


4. You can click a “plus” sign to book a conference room:

Image 4

Screenshot 4: Conference Room Reservation

Implementation

To make this happen, we had to write a WCF-service, which returns json and also works with SharePoint. This problem is solved with the appropriate web.config and with the presence of SVC in the folder ISAPI. There are many publications about how to properly configure web.config for sending json, for example like this:http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

Then we developed some ASPX-pages, added them to the module, and implemented all the logic of a WCF-service through JavaScript using Knockout framework.


The main challenge occurred in Exchange. Virtually, all of the required functionality is implemented through EWS Managed API (hyperlink to http://msdn.microsoft.com/en-us/library/dd633709(v=exchg.80).aspx)

However, when the new room was created in the Conference Rooms List, we needed mailboxes to be created automatically.

We found out that the mailbox can be created only through powershell, and it is not a problem to invoke the command from C# code.
It is possible to add an event receiver to the Conference Rooms List and invoke the powershell command on a remote server using Runspace and WSManConnectionInfo. However, this approach is not secure, therefore we decided to write one more WCF-service and deploy it to the Exchange server. This service has only one method:

Image 5

As it was mentioned above, the whole work logic is implemented through WCF-service, so it made sense to complement our service with methods for booking rooms from Exchange. We invoked the service method to create our room reservation in Exchange. All the necessary information was placed in Microsoft.Exchange.Data.Appointment, and then the meeting was created in the Exchange calendar through API.

Image 6


We decided to solve the problem of reverse synchronization (when an employee booked a room in his calendar via Outlook) via a timer job. This job collected all the information from Exchange and created the missing reservations and deleted canceled meetings.

Result 

EastBanc Technologies successfully created an architecture that provides a scalable and flexible solution built on Microsoft technology stack using all the advantages of an integrated solution. The system is customizable and is accompanied by standard platform tools.

As a result, today

  • The company management has a unified collaboration tool that increases the employees efficiency extending overall Intranet-portal capabilities and simplifying and optimizing administrative and organizational processes of the Customer.
  • Company’s employees can plan their work and key meetings faster, easier and more efficient than ever before.
  • IT staff has a flexible and scalable solution accompanied by a unified standard and uses "out of the box" functionality to it’s fullest. Therefore, the transition to the new version of SharePoint and Exchange will be smooth and flawless.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)