private void BulkUpdate(IEnumerable <ObjectDescriptor> updates) { var spliter = new EntityDescriptorSpliter { MaxCount = _WebView.GetMaxAcceptableArguments() - 1 }; var packer = new ObjectChildrenDescriptionPacker(); foreach (var entityDescriptor in spliter.SplitParameters(updates)) { var arguments = GetUpdateParameters(entityDescriptor, packer); BulkObjectsUpdater.ExecuteFunctionNoResult(_WebView, null, arguments); } }
private IJavascriptObject[] GetUpdateParameters(Parameters updates, ObjectChildrenDescriptionPacker packer) { var sizes = packer.Pack(updates.ObjectDescriptors); var res = new IJavascriptObject[updates.Count + 1]; res[0] = _WebView.Factory.CreateString(sizes); var count = 1; foreach (var father in updates.ObjectDescriptors) { res[count++] = father.Father.JsValue; foreach (var attribute in father.AttributeValues) { res[count++] = attribute.JsValue; } } return(res); }