dataservice.debug.js

来自「AJAX Client For ADONET Data Services」· JavaScript 代码 · 共 798 行 · 第 1/3 页

JS
798
字号
    }
    function Sys$Data$DataService$loadProperty(item, property, succeededCallback, failedCallback, userContext, webRequest) {
        /// <summary locid="M:J#Sys.Data.DataService.loadProperty" />
        /// <param name="item" type="Object"></param>
        /// <param name="property" type="String"></param>
        /// <param name="succeededCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="failedCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="userContext" mayBeNull="true" optional="true"></param>
        /// <param name="webRequest" type="Sys.Net.WebRequest" mayBeNull="true" optional="true"></param>
        var e = Function._validateParams(arguments, [
            {name: "item", type: Object},
            {name: "property", type: String},
            {name: "succeededCallback", type: Function, mayBeNull: true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
            {name: "userContext", mayBeNull: true, optional: true},
            {name: "webRequest", type: Sys.Net.WebRequest, mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        
        var succeededHelper = function(result, context, operation) {
            item[operation] = result;
            if (!succeededCallback) {
                succeededCallback = this._defaultSucceededCallback;
            }
            if (succeededCallback) {
                succeededCallback(item, context, operation);
            }
        };
        
        var uri;
        if (item[property] && item[property].__metadata && item[property].__metadata.uri) {
            uri = item[property].__metadata.uri;
        }
        else if (item.__metadata && item.__metadata.uri) {
            uri = item.__metadata.uri + '/' + property;
        }
        else {
            throw Error.create(Sys.Data.Res.dataServiceLoadPropertyUriNotPresent);
        }
        
        var wRequest = this._prepWebRequest(null, uri, "GET", succeededHelper, failedCallback, userContext, property, webRequest);
        wRequest.invoke();
    }
    function Sys$Data$DataService$insert(item, resourceSetUri, succeededCallback, failedCallback, userContext, webRequest) {
        /// <summary locid="M:J#succeededHelper" />
        /// <param name="item" type="Object"></param>
        /// <param name="resourceSetUri" type="String" mayBeNull="true"></param>
        /// <param name="succeededCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="failedCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="userContext" mayBeNull="true" optional="true"></param>
        /// <param name="webRequest" type="Sys.Net.WebRequest" mayBeNull="true" optional="true"></param>
        var e = Function._validateParams(arguments, [
            {name: "item", type: Object},
            {name: "resourceSetUri", type: String, mayBeNull: true},
            {name: "succeededCallback", type: Function, mayBeNull: true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
            {name: "userContext", mayBeNull: true, optional: true},
            {name: "webRequest", type: Sys.Net.WebRequest, mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        
        var wRequest = this._prepWebRequest(null, resourceSetUri, "POST", succeededCallback, failedCallback, userContext, "insert", webRequest);
        
        wRequest.set_body(Sys.Serialization.JavaScriptSerializer.serialize(item));                
        wRequest.get_headers()["Content-Type"] = "application/json";
        wRequest.invoke();
    }
    function Sys$Data$DataService$update(item, resourceUri, succeededCallback, failedCallback, userContext, webRequest) {
        /// <summary locid="M:J#succeededHelper" />
        /// <param name="item" type="Object"></param>
        /// <param name="resourceUri" type="String" mayBeNull="true"></param>
        /// <param name="succeededCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="failedCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="userContext" mayBeNull="true" optional="true"></param>
        /// <param name="webRequest" type="Sys.Net.WebRequest" mayBeNull="true" optional="true"></param>
        var e = Function._validateParams(arguments, [
            {name: "item", type: Object},
            {name: "resourceUri", type: String, mayBeNull: true},
            {name: "succeededCallback", type: Function, mayBeNull: true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
            {name: "userContext", mayBeNull: true, optional: true},
            {name: "webRequest", type: Sys.Net.WebRequest, mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        
        var wRequest = this._prepWebRequest(item, resourceUri, "PUT", succeededCallback, failedCallback, userContext, "update", webRequest);
        wRequest.get_headers()["Content-Type"] = "application/json";
        wRequest.invoke();
    }
    function Sys$Data$DataService$remove(item, resourceUri, succeededCallback, failedCallback, userContext, webRequest) {
        /// <summary locid="M:J#succeededHelper" />
        /// <param name="item" type="Object" mayBeNull="true"></param>
        /// <param name="resourceUri" type="String" mayBeNull="true" optional="true"></param>
        /// <param name="succeededCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="failedCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="userContext" mayBeNull="true" optional="true"></param>
        /// <param name="webRequest" type="Sys.Net.WebRequest" mayBeNull="true" optional="true"></param>
        var e = Function._validateParams(arguments, [
            {name: "item", type: Object, mayBeNull: true},
            {name: "resourceUri", type: String, mayBeNull: true, optional: true},
            {name: "succeededCallback", type: Function, mayBeNull: true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
            {name: "userContext", mayBeNull: true, optional: true},
            {name: "webRequest", type: Sys.Net.WebRequest, mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        
        if (!((item && item.__metadata && item.__metadata.uri) || resourceUri)) {
            throw Error.create(Sys.Data.Res.dataServiceRemoveUriNotPresent);
        }
        
        var wRequest = this._prepWebRequest(item, resourceUri, "DELETE",
            this._cbReplaceResult(succeededCallback, null) ,
            failedCallback, userContext, "remove", webRequest);
        
        delete wRequest.get_headers()["Content-Type"];
        wRequest.set_body(null);
        
        wRequest.invoke();
    }
    function Sys$Data$DataService$invoke(operationUri, httpVerb, parameters, succeededCallback, failedCallback, userContext, webRequest) {
        /// <summary locid="M:J#succeededHelper" />
        /// <param name="operationUri" type="String"></param>
        /// <param name="httpVerb" type="String" maybeNull="true" optional="true"></param>
        /// <param name="parameters" type="Object" maybeNull="true" optional="true"></param>
        /// <param name="succeededCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="failedCallback" type="Function" mayBeNull="true" optional="true"></param>
        /// <param name="userContext" mayBeNull="true" optional="true"></param>
        /// <param name="webRequest" type="Sys.Net.WebRequest" mayBeNull="true" optional="true"></param>
        var e = Function._validateParams(arguments, [
            {name: "operationUri", type: String},
            {name: "httpVerb", type: String, optional: true},
            {name: "parameters", type: Object, optional: true},
            {name: "succeededCallback", type: Function, mayBeNull: true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
            {name: "userContext", mayBeNull: true, optional: true},
            {name: "webRequest", type: Sys.Net.WebRequest, mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        
        var qb = new Sys.Data.QueryBuilder(operationUri);
        for (key in parameters) {
            qb.get_queryParams()[encodeURIComponent(key)] = encodeURIComponent(parameters[key]);
        }
        
        var wRequest = this._prepWebRequest(null, qb.toString(), httpVerb, succeededCallback, failedCallback, userContext, operationUri, webRequest);
        if (httpVerb == "POST") {
            wRequest.get_headers()["X-Service-Post"] = "true";
        }
        wRequest.invoke();        
    }
    function Sys$Data$DataService$createActionSequence() {
        /// <summary locid="M:J#succeededHelper" />
        /// <returns type="Sys.Data.ActionSequence"></returns>
        if (arguments.length !== 0) throw Error.parameterCount();
        return new Sys.Data.ActionSequence(this);
    }
    function Sys$Data$DataService$_prepWebRequest(item, relUri, verb, onSuccess, onFailure, context, operation, wRequest) {
    
        if (!relUri) {
            relUri = "";
        }
        if (!wRequest) {
            wRequest = new Sys.Net.WebRequest();
        }
    
        wRequest.set_url(Sys.Data.DataService._concatUris(this._serviceUri, relUri));
        wRequest.set_httpVerb(verb);
        wRequest.set_timeout(this.get_timeout());
        
        var headers = wRequest.get_headers();
        headers["Accept"] = "application/json";
        
        if (item) {
            wRequest.set_body(Sys.Serialization.JavaScriptSerializer.serialize(item));                
            headers["Content-Type"] = "application/json";
            if (item.__metadata && item.__metadata.uri)
                wRequest.set_url(item.__metadata.uri);
        }
        
        if (!onSuccess) {
            onSuccess = this._defaultSucceededCallback;    
        }
        if (!onFailure) {
            onFailure = this._defaultFailedCallback;
        }
        if (!context) {
            context = this._defaultUserContext;
        }
        
        wRequest.add_completed(function(executor, eventArgs) {
            Sys.Data.DataService._callbackHelper(executor, eventArgs, onSuccess, onFailure, context, operation);
        });
        
        return wRequest;
    
    }
    function Sys$Data$DataService$_cbReplaceResult(cb, retVal) {
        if (!cb) {
            cb = this._defaultSucceededCallback;
        }
        return (cb)
            ? function(result, context, operation) { cb(retVal, context, operation); }
            : null;
    }
Sys.Data.DataService.prototype = {
    
    get_serviceUri: Sys$Data$DataService$get_serviceUri,
    get_timeout: Sys$Data$DataService$get_timeout,
    set_timeout: Sys$Data$DataService$set_timeout,
    get_defaultUserContext: Sys$Data$DataService$get_defaultUserContext,
    set_defaultUserContext: Sys$Data$DataService$set_defaultUserContext,
    get_defaultSucceededCallback: Sys$Data$DataService$get_defaultSucceededCallback,
    set_defaultSucceededCallback: Sys$Data$DataService$set_defaultSucceededCallback,
    get_defaultFailedCallback: Sys$Data$DataService$get_defaultFailedCallback,
    set_defaultFailedCallback: Sys$Data$DataService$set_defaultFailedCallback,
    
    query: Sys$Data$DataService$query,
    loadProperty: Sys$Data$DataService$loadProperty,
    insert: Sys$Data$DataService$insert,
    update: Sys$Data$DataService$update,
    remove: Sys$Data$DataService$remove,
    invoke: Sys$Data$DataService$invoke,
    createActionSequence: Sys$Data$DataService$createActionSequence,
    
    _prepWebRequest: Sys$Data$DataService$_prepWebRequest,
    _cbReplaceResult: Sys$Data$DataService$_cbReplaceResult
}

Sys.Data.DataService._concatUris = function Sys$Data$DataService$_concatUris(serviceUri, resourceUri) {
    if (serviceUri.endsWith('/')) {
        serviceUri = serviceUri.substr(0, serviceUri.length - 1);
    }
        
    if (resourceUri.startsWith('/')) {
        resourceUri = resourceUri.substr(1);
    }
    
    return serviceUri + '/' + resourceUri;
};
Sys.Data.DataService._callbackHelper = function Sys$Data$DataService$_callbackHelper(executor, eventArgs, onSuccess, onFailure, userContext, operation) {
    if (executor.get_responseAvailable()) {
        var statusCode = executor.get_statusCode();
        if (statusCode == 1223) {
            statusCode = 204;
        }
        var result = null;
       
        try {
            var contentType = executor.getResponseHeader("Content-Type");
            if (contentType.startsWith("application/json")) {
                result = executor.get_object();
            }
            else if (contentType.startsWith("text/xml")) {
                result = executor.get_xml();
            }
            else {
                result = executor.get_responseData();
            }
        } catch (ex) {
        }
        var error = executor.getResponseHeader("jsonerror");
        var errorObj = (error === "true");
        if (errorObj) {
            if (result) {
                result = new Sys.Data.DataServiceError(false, result.Message, result.StackTrace, result.ExceptionType);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?