//----------------------------------------------------------------------- // Copyright (C) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------- // MicrosoftAjaxApplicationServices.js // Microsoft AJAX Framework Support for ASP.NET Application Services. /// Type._registerScript("MicrosoftAjaxApplicationServices.debug.js", ["MicrosoftAjaxWebServices.debug.js"]); Type.registerNamespace('Sys.Services'); Sys.Services._ProfileService = function Sys$Services$_ProfileService() { /// if (arguments.length !== 0) throw Error.parameterCount(); Sys.Services._ProfileService.initializeBase(this); this.properties = {}; } Sys.Services._ProfileService.DefaultWebServicePath = ''; function Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultLoadCompletedCallback; } function Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLoadCompletedCallback = value; } function Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultSaveCompletedCallback; } function Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._defaultSaveCompletedCallback = value; } function Sys$Services$_ProfileService$get_path() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._path || ''; } function Sys$Services$_ProfileService$load(propertyNames, loadCompletedCallback, failedCallback, userContext) { /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String}, {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; var parameters; var methodName; if (!propertyNames) { methodName = "GetAllPropertiesForCurrentUser"; parameters = { authenticatedUserOnly: false }; } else { methodName = "GetPropertiesForCurrentUser"; parameters = { properties: this._clonePropertyNames(propertyNames), authenticatedUserOnly: false }; } this._invoke(this._get_path(), methodName, false, parameters, Function.createDelegate(this, this._onLoadComplete), Function.createDelegate(this, this._onLoadFailed), [loadCompletedCallback, failedCallback, userContext]); } function Sys$Services$_ProfileService$save(propertyNames, saveCompletedCallback, failedCallback, userContext) { /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String}, {name: "saveCompletedCallback", type: Function, mayBeNull: true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; var flattenedProperties = this._flattenProperties(propertyNames, this.properties); this._invoke(this._get_path(), "SetPropertiesForCurrentUser", false, { values: flattenedProperties.value, authenticatedUserOnly: false }, Function.createDelegate(this, this._onSaveComplete), Function.createDelegate(this, this._onSaveFailed), [saveCompletedCallback, failedCallback, userContext, flattenedProperties.count]); } function Sys$Services$_ProfileService$_clonePropertyNames(arr) { var nodups = []; var seen = {}; for (var i=0; i < arr.length; i++) { var prop = arr[i]; if(!seen[prop]) { Array.add(nodups, prop); seen[prop]=true; }; } return nodups; } function Sys$Services$_ProfileService$_flattenProperties(propertyNames, properties, groupName) { var flattenedProperties = {}; var val; var key; var count = 0; if (propertyNames && propertyNames.length === 0) { return { value: flattenedProperties, count: 0 }; } for (var property in properties) { val = properties[property]; key = groupName ? groupName + "." + property : property; if(Sys.Services.ProfileGroup.isInstanceOfType(val)) { var obj = this._flattenProperties(propertyNames, val, key); var groupProperties = obj.value; count += obj.count; for(var subKey in groupProperties) { var subVal = groupProperties[subKey]; flattenedProperties[subKey] = subVal; } } else { if(!propertyNames || Array.indexOf(propertyNames, key) !== -1) { flattenedProperties[key] = val; count++; } } } return { value: flattenedProperties, count: count }; } function Sys$Services$_ProfileService$_get_path() { var path = this.get_path(); if (!path.length) { path = Sys.Services._ProfileService.DefaultWebServicePath; } if (!path || !path.length) { throw Error.invalidOperation(Sys.Res.servicePathNotSet); } return path; } function Sys$Services$_ProfileService$_onLoadComplete(result, context, methodName) { if (typeof(result) !== "object") { throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Object")); } var unflattened = this._unflattenProperties(result); for (var name in unflattened) { this.properties[name] = unflattened[name]; } var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback(); if (callback) { var userContext = context[2] || this.get_defaultUserContext(); callback(result.length, userContext, "Sys.Services.ProfileService.load"); } } function Sys$Services$_ProfileService$_onLoadFailed(err, context, methodName) { var callback = context[1] || this.get_defaultFailedCallback(); if (callback) { var userContext = context[2] || this.get_defaultUserContext(); callback(err, userContext, "Sys.Services.ProfileService.load"); } else { Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName); } } function Sys$Services$_ProfileService$_onSaveComplete(result, context, methodName) { var count = context[3]; if (result !== null) { if (result instanceof Array) { count -= result.length; } else if (typeof(result) === 'number') { count = result; } else { throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array")); } } var callback = context[0] || this.get_defaultSaveCompletedCallback() || this.get_defaultSucceededCallback(); if (callback) { var userContext = context[2] || this.get_defaultUserContext(); callback(count, userContext, "Sys.Services.ProfileService.save"); } } function Sys$Services$_ProfileService$_onSaveFailed(err, context, methodName) { var callback = context[1] || this.get_defaultFailedCallback(); if (callback) { var userContext = context[2] || this.get_defaultUserContext(); callback(err, userContext, "Sys.Services.ProfileService.save"); } else { Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName); } } function Sys$Services$_ProfileService$_unflattenProperties(properties) { var unflattenedProperties = {}; var dotIndex; var val; var count = 0; for (var key in properties) { count++; val = properties[key]; dotIndex = key.indexOf('.'); if (dotIndex !== -1) { var groupName = key.substr(0, dotIndex); key = key.substr(dotIndex+1); var group = unflattenedProperties[groupName]; if (!group || !Sys.Services.ProfileGroup.isInstanceOfType(group)) { group = new Sys.Services.ProfileGroup(); unflattenedProperties[groupName] = group; } group[key] = val; } else { unflattenedProperties[key] = val; } } properties.length = count; return unflattenedProperties; } Sys.Services._ProfileService.prototype = { _defaultLoadCompletedCallback: null, _defaultSaveCompletedCallback: null, _path: '', _timeout: 0, get_defaultLoadCompletedCallback: Sys$Services$_ProfileService$get_defaultLoadCompletedCallback, set_defaultLoadCompletedCallback: Sys$Services$_ProfileService$set_defaultLoadCompletedCallback, get_defaultSaveCompletedCallback: Sys$Services$_ProfileService$get_defaultSaveCompletedCallback, set_defaultSaveCompletedCallback: Sys$Services$_ProfileService$set_defaultSaveCompletedCallback, get_path: Sys$Services$_ProfileService$get_path, load: Sys$Services$_ProfileService$load, save: Sys$Services$_ProfileService$save, _clonePropertyNames: Sys$Services$_ProfileService$_clonePropertyNames, _flattenProperties: Sys$Services$_ProfileService$_flattenProperties, _get_path: Sys$Services$_ProfileService$_get_path, _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete, _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed, _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete, _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed, _unflattenProperties: Sys$Services$_ProfileService$_unflattenProperties } Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService', Sys.Net.WebServiceProxy); Sys.Services.ProfileService = new Sys.Services._ProfileService(); Sys.Services.ProfileGroup = function Sys$Services$ProfileGroup(properties) { /// /// var e = Function._validateParams(arguments, [ {name: "properties", mayBeNull: true, optional: true} ]); if (e) throw e; if (properties) { for (var property in properties) { this[property] = properties[property]; } } } Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup'); Sys.Services._AuthenticationService = function Sys$Services$_AuthenticationService() { /// if (arguments.length !== 0) throw Error.parameterCount(); Sys.Services._AuthenticationService.initializeBase(this); } Sys.Services._AuthenticationService.DefaultWebServicePath = ''; function Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultLoginCompletedCallback; } function Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLoginCompletedCallback = value; } function Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultLogoutCompletedCallback; } function Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLogoutCompletedCallback = value; } function Sys$Services$_AuthenticationService$get_isLoggedIn() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._authenticated; } function Sys$Services$_AuthenticationService$get_path() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._path || ''; } function Sys$Services$_AuthenticationService$login(username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext) { /// /// /// /// /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "username", type: String}, {name: "password", type: String, mayBeNull: true}, {name: "isPersistent", type: Boolean, mayBeNull: true, optional: true}, {name: "customInfo", type: String, mayBeNull: true, optional: true}, {name: "redirectUrl", type: String, mayBeNull: true, optional: true}, {name: "loginCompletedCallback", type: Function, mayBeNull: true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; this._invoke(this._get_path(), "Login", false, { userName: username, password: password, createPersistentCookie: isPersistent }, Function.createDelegate(this, this._onLoginComplete), Function.createDelegate(this, this._onLoginFailed), [username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext]); } function Sys$Services$_AuthenticationService$logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext) { /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "redirectUrl", type: String, mayBeNull: true, optional: true}, {name: "logoutCompletedCallback", type: Function, mayBeNull: true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; this._invoke(this._get_path(), "Logout", false, {}, Function.createDelegate(this, this._onLogoutComplete), Function.createDelegate(this, this._onLogoutFailed), [redirectUrl, logoutCompletedCallback, failedCallback, userContext]); } function Sys$Services$_AuthenticationService$_get_path() { var path = this.get_path(); if(!path.length) { path = Sys.Services._AuthenticationService.DefaultWebServicePath; } if(!path || !path.length) { throw Error.invalidOperation(Sys.Res.servicePathNotSet); } return path; } function Sys$Services$_AuthenticationService$_onLoginComplete(result, context, methodName) { if(typeof(result) !== "boolean") { throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Boolean")); } var redirectUrl = context[4]; var userContext = context[7] || this.get_defaultUserContext(); var callback = context[5] || this.get_defaultLoginCompletedCallback() || this.get_defaultSucceededCallback(); if(result) { this._authenticated = true; if (callback) { callback(true, userContext, "Sys.Services.AuthenticationService.login"); } if (typeof(redirectUrl) !== "undefined" && redirectUrl !== null) { window.location.href = redirectUrl; } } else if (callback) { callback(false, userContext, "Sys.Services.AuthenticationService.login"); } } function Sys$Services$_AuthenticationService$_onLoginFailed(err, context, methodName) { var callback = context[6] || this.get_defaultFailedCallback(); if (callback) { var userContext = context[7] || this.get_defaultUserContext(); callback(err, userContext, "Sys.Services.AuthenticationService.login"); } else { Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName); } } function Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, methodName) { if(result !== null) { throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "null")); } var redirectUrl = context[0]; var userContext = context[3] || this.get_defaultUserContext(); var callback = context[1] || this.get_defaultLogoutCompletedCallback() || this.get_defaultSucceededCallback(); this._authenticated = false; if (callback) { callback(null, userContext, "Sys.Services.AuthenticationService.logout"); } if(!redirectUrl) { window.location.reload(); } else { window.location.href = redirectUrl; } } function Sys$Services$_AuthenticationService$_onLogoutFailed(err, context, methodName) { var callback = context[2] || this.get_defaultFailedCallback(); if (callback) { callback(err, context[3], "Sys.Services.AuthenticationService.logout"); } else { Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName); } } function Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) { this._authenticated = authenticated; } Sys.Services._AuthenticationService.prototype = { _defaultLoginCompletedCallback: null, _defaultLogoutCompletedCallback: null, _path: '', _timeout: 0, _authenticated: false, get_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback, set_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback, get_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback, set_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback, get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn, get_path: Sys$Services$_AuthenticationService$get_path, login: Sys$Services$_AuthenticationService$login, logout: Sys$Services$_AuthenticationService$logout, _get_path: Sys$Services$_AuthenticationService$_get_path, _onLoginComplete: Sys$Services$_AuthenticationService$_onLoginComplete, _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed, _onLogoutComplete: Sys$Services$_AuthenticationService$_onLogoutComplete, _onLogoutFailed: Sys$Services$_AuthenticationService$_onLogoutFailed, _setAuthenticated: Sys$Services$_AuthenticationService$_setAuthenticated } Sys.Services._AuthenticationService.registerClass('Sys.Services._AuthenticationService', Sys.Net.WebServiceProxy); Sys.Services.AuthenticationService = new Sys.Services._AuthenticationService(); Sys.Services._RoleService = function Sys$Services$_RoleService() { /// if (arguments.length !== 0) throw Error.parameterCount(); Sys.Services._RoleService.initializeBase(this); this._roles = []; } Sys.Services._RoleService.DefaultWebServicePath = ''; function Sys$Services$_RoleService$get_defaultLoadCompletedCallback() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultLoadCompletedCallback; } function Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLoadCompletedCallback = value; } function Sys$Services$_RoleService$get_path() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._path || ''; } function Sys$Services$_RoleService$get_roles() { /// if (arguments.length !== 0) throw Error.parameterCount(); return Array.clone(this._roles); } function Sys$Services$_RoleService$isUserInRole(role) { /// /// /// var e = Function._validateParams(arguments, [ {name: "role", type: String} ]); if (e) throw e; var v = this._get_rolesIndex()[role.trim().toLowerCase()]; return !!v; } function Sys$Services$_RoleService$load(loadCompletedCallback, failedCallback, userContext) { /// /// /// /// var e = Function._validateParams(arguments, [ {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; Sys.Net.WebServiceProxy.invoke( this._get_path(), "GetRolesForCurrentUser", false, {} , Function.createDelegate(this, this._onLoadComplete), Function.createDelegate(this, this._onLoadFailed), [loadCompletedCallback, failedCallback, userContext], this.get_timeout()); } function Sys$Services$_RoleService$_get_path() { var path = this.get_path(); if(!path || !path.length) { path = Sys.Services._RoleService.DefaultWebServicePath; } if(!path || !path.length) { throw Error.invalidOperation(Sys.Res.servicePathNotSet); } return path; } function Sys$Services$_RoleService$_get_rolesIndex() { if (!this._rolesIndex) { var index = {}; for(var i=0; i < this._roles.length; i++) { index[this._roles[i].toLowerCase()] = true; } this._rolesIndex = index; } return this._rolesIndex; } function Sys$Services$_RoleService$_onLoadComplete(result, context, methodName) { if(result && !(result instanceof Array)) { throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array")); } this._roles = result; this._rolesIndex = null; var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback(); if (callback) { var userContext = context[2] || this.get_defaultUserContext(); var clonedResult = Array.clone(result); callback(clonedResult, userContext, "Sys.Services.RoleService.load"); } } function Sys$Services$_RoleService$_onLoadFailed(err, context, methodName) { var callback = context[1] || this.get_defaultFailedCallback(); if (callback) { var userContext = context[2] || this.get_defaultUserContext(); callback(err, userContext, "Sys.Services.RoleService.load"); } else { Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName); } } Sys.Services._RoleService.prototype = { _defaultLoadCompletedCallback: null, _rolesIndex: null, _timeout: 0, _path: '', get_defaultLoadCompletedCallback: Sys$Services$_RoleService$get_defaultLoadCompletedCallback, set_defaultLoadCompletedCallback: Sys$Services$_RoleService$set_defaultLoadCompletedCallback, get_path: Sys$Services$_RoleService$get_path, get_roles: Sys$Services$_RoleService$get_roles, isUserInRole: Sys$Services$_RoleService$isUserInRole, load: Sys$Services$_RoleService$load, _get_path: Sys$Services$_RoleService$_get_path, _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex, _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete, _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed } Sys.Services._RoleService.registerClass('Sys.Services._RoleService', Sys.Net.WebServiceProxy); Sys.Services.RoleService = new Sys.Services._RoleService();