public async Task<JsonResult> SignUpUser(OAuth2UserIdentity userIdentity)
		{
			ServiceResponse response = default(ServiceResponse);

			using (Session session = ApplicationModel.Current.CreateSession(new SecurityToken(this.HttpContext.Request.Url.Host, this.HttpContext.User.Identity.Name)))
			{
				try
				{
					IDataPortal portal = DependencyInjection.Get<IDataPortal>();
					OAuth2UserIdentity value = portal.SignUpUser(userIdentity);

					// Set the status on HTTP and response level.
					if (value == null) HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
					ResponseStatus status = value == null ? ResponseStatus.NO_DATA : ResponseStatus.OK;

					response = new ServiceDataResponse(RestVersion0100Controller.API_VERSION, status, value);
				}
				catch (Exception ex)
				{
					HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
					response = new ServiceErrorResponse(RestVersion0100Controller.API_VERSION, ResponseStatus.ERROR, new ServiceError(ex));
				}
			}

			return this.Json(response);
		}
		public async Task<JsonResult> Get(string resource, Guid identifier)
		{
			ServiceResponse response = default(ServiceResponse);

			using (Session session = ApplicationModel.Current.CreateSession(new SecurityToken(this.HttpContext.Request.Url.Host, this.HttpContext.User.Identity.Name)))
			{
				try
				{
					IRestPortal<DataTransferObject> portal = DependencyInjection.Get<IRestPortal<DataTransferObject>>(InjectionParameter.Create("resource", resource));
					DataTransferObject value = portal.Get(identifier);

					if (default(DataTransferObject) == value) HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;

					ResponseStatus status = default(DataTransferObject) != value ? ResponseStatus.OK : ResponseStatus.NO_DATA;
					response = new ServiceDataResponse(RestVersion0100Controller.API_VERSION, status, value);
				}
				catch (Exception ex)
				{
					response = new ServiceErrorResponse(RestVersion0100Controller.API_VERSION, ResponseStatus.ERROR, new ServiceError(ex));
				}
			}

			return this.Json(response, JsonRequestBehavior.AllowGet);
		}
		public async Task<JsonResult> GetUserProfile()
		{
			ServiceResponse response = default(ServiceResponse);

			using (Session session = ApplicationModel.Current.CreateSession(new SecurityToken(this.HttpContext.Request.Url.Host, this.HttpContext.User.Identity.Name)))
			{
				try
				{
					string value = "HELLO WORLD 2.0";

					// Set the status on HTTP and response level.
					if (value == null) HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
					ResponseStatus status = value == null ? ResponseStatus.NO_DATA : ResponseStatus.OK;

					response = new ServiceDataResponse(RestVersion0100Controller.API_VERSION, status, value);
				}
				catch (Exception ex)
				{
					response = new ServiceErrorResponse(RestVersion0100Controller.API_VERSION, ResponseStatus.ERROR, new ServiceError(ex));
				}
			}

			return this.Json(response, JsonRequestBehavior.AllowGet);
		}
		public async Task<JsonResult> GetSet(string resource)
		{
			ServiceResponse response = default(ServiceResponse);

			using (Session session = ApplicationModel.Current.CreateSession(new SecurityToken(this.HttpContext.Request.Url.Host, this.HttpContext.User.Identity.Name)))
			{
				try
				{
					IDictionary<string, string> parameters = this.GetParameters();

					IRestPortal<DataTransferObject> portal = DependencyInjection.Get<IRestPortal<DataTransferObject>>(InjectionParameter.Create("resource", resource));
					IEnumerable<DataTransferObject> set = portal.Get(parameters);

					ResponseStatus status = ResponseStatus.OK;
					response = new ServiceDataResponse(RestVersion0100Controller.API_VERSION, status, set);
				}
				catch (Exception ex)
				{
					response = new ServiceErrorResponse(RestVersion0100Controller.API_VERSION, ResponseStatus.ERROR, new ServiceError(ex));
				}
			}

			return this.Json(response, JsonRequestBehavior.AllowGet);
		}
		public JsonResult CalculateBrutoNetto(dynamic parameters)
		{
			ServiceResponse response = default(ServiceResponse);

			using (Session session = ApplicationModel.Current.CreateSession(new SecurityToken(this.HttpContext.Request.Url.Host, this.HttpContext.User.Identity.Name)))
			{
				try
				{
					HttpRequestAgent connector = new HttpRequestAgent();
					string value = connector.Post("https://brutnet.attentia.be/GetBrutoNettoBerekening?onlyValidate=true", parameters);
					//string value = "{ \"Bruto\": \"2500.0\", \"Netto\": \"1250.00\" }";

					if (string.IsNullOrEmpty(value)) HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
					ResponseStatus status = string.IsNullOrEmpty(value) ? ResponseStatus.NO_DATA : ResponseStatus.OK;

					response = new ServiceDataResponse(RestVersion0100Controller.API_VERSION, status, value);
				}
				catch (Exception ex)
				{
					HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
					response = new ServiceErrorResponse(RestVersion0100Controller.API_VERSION, ResponseStatus.ERROR, new ServiceError(ex));
				}
			}

			return this.Json(response);
		}