public abstract Task LoadModule(Module module, ModuleParam[] moduleParams, bool autoUpdate);
public abstract Task LoadModule(Module module, ModuleParam[] moduleParams);
/// <summary> /// Loads the module. /// </summary> /// <param name="module">Module to be loaded.</param> /// <param name="moduleParams">Module parameters.</param> public override void LoadModule (Module module, ModuleParam[] moduleParams) { UIApplication.SharedApplication.InvokeOnMainThread (delegate { try { if(module != null) { string location = this.GetModuleLocation(module, true); string directoryName = Path.Combine (this.GetFileSystemService().GetDirectoryRoot().FullName, location); /* TO BE REMOVED - 5.0.6 [AMOB-30] string path = Path.Combine (String.Format(DOCUMENTS_URI,IPhoneServiceLocator.CurrentDelegate.GetListeningPort()), location, DEFAULT_HOME_PAGE); */ string path = Path.Combine (DOCUMENTS_URI, location, DEFAULT_HOME_PAGE); if(Directory.Exists(directoryName)) { // pass parameters to the request URL if(moduleParams != null) { StringBuilder builder = new StringBuilder(); int numParams = 0; foreach(ModuleParam p in moduleParams) { if(p.Name!=null && p.Name.Length>0 && p.Value!=null && p.Value.Length>0) { if(numParams==0) { builder.Append("?"); } else { builder.Append("&"); } builder.Append(p.Name+"="+p.Value); numParams++; } } path = path + builder.ToString(); } SystemLogger.Log(SystemLogger.Module.PLATFORM, "Loading module at path: " + path); NSUrl nsUrl = new NSUrl(Uri.EscapeUriString(path)); NSUrlRequest request = new NSUrlRequest (nsUrl, NSUrlRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, 3600.0); IPhoneServiceLocator.CurrentDelegate.LoadRequest(request); } else { this.GetNotificationService().StartNotifyAlert(this.GetLocalizedMessage(DEFAULT_ALERT_MESSAGE_TITLE), this.GetLocalizedMessage(DEFAULT_ALERT_MESSAGE_LOAD_MODULE_ERROR), "OK"); } } else { this.GetNotificationService().StartNotifyAlert(this.GetLocalizedMessage(DEFAULT_ALERT_MESSAGE_TITLE), this.GetLocalizedMessage(DEFAULT_ALERT_MESSAGE_LOAD_MODULE_ERROR), "OK"); } } catch (Exception ex) { SystemLogger.Log(SystemLogger.Module.PLATFORM, "Exception when loading module: " + ex.Message); } }); }
public abstract void LoadModule(Module module, ModuleParam[] moduleParams);
/// <summary> /// Loads the module (try to update it first if 'autUpdate' argument is set to true). Update is "silent", no event listener is called. /// </summary> /// <param name="module">Module to be loaded.</param> /// <param name="moduleParams">Module parameters.</param> /// <param name="autoUpdate">True to first update the module, prior to be loaded. False is the default value.</param> public override void LoadModule (Module module, ModuleParam[] moduleParams, bool autoUpdate) { if(autoUpdate) { // show activity indicator this.GetNotificationService().StartNotifyActivity(); this.GetNotificationService().StartNotifyLoading(this.GetLocalizedMessage(DEFAULT_LOADING_MESSAGE_UPDATE_MODULE)); if(module != null) { bool success = this.UpdateOrInstallModule(module); if(success) { SystemLogger.Log(SystemLogger.Module.PLATFORM, "[LoadModule#autoUpdate] The module [ " + module.Id + "] was successfully updated"); } else { SystemLogger.Log(SystemLogger.Module.PLATFORM, "[LoadModule#autoUpdate] The module [ " + module.Id + "] was NOT successfully updated"); } } // hide activity indicator this.GetNotificationService().StopNotifyActivity(); this.GetNotificationService().StopNotifyLoading(); } // Load the just updated (or not) module. this.LoadModule(module, moduleParams); }