/// <summary> /// Downloads selected device, model, version or template from Gurux www-server. /// </summary> public Guid Download(object target) { if (target is GXDeviceManufacturer) { foreach (GXDeviceModel it in (target as GXDeviceManufacturer).Models) { Download(it); } (target as GXDeviceManufacturer).Status = DownloadStates.None; } else if (target is GXDeviceModel) { foreach (GXDeviceVersion it in (target as GXDeviceModel).Versions) { Download(it); } (target as GXDeviceModel).Status = DownloadStates.None; } else if (target is GXDeviceVersion) { foreach (GXPublishedDeviceProfile it in (target as GXDeviceVersion).Templates) { Download(it); } (target as GXDeviceVersion).Status = DownloadStates.None; } else if (target is GXPublishedDeviceProfile) { GXDeviceProfileVersionCollection versions = (target as GXPublishedDeviceProfile).Versions; (target as GXPublishedDeviceProfile).DeviceGuid = Download(versions[versions.Count - 1]); (target as GXPublishedDeviceProfile).Status = DownloadStates.None; } else if (target is GXDeviceProfileVersion) { JsonServiceClient Client = new JsonServiceClient(Gurux.DeviceSuite.Properties.Settings.Default.UpdateServer); GXDownloadRequest download = new GXDownloadRequest(); download.Template = target as GXDeviceProfileVersion; GXDownloadResponse ret = Client.Get(download); GXPublishedDeviceProfile type = UpdatePublishedDeviceType(download.Template, ret.Data); (target as GXDeviceProfileVersion).Status = DownloadStates.Installed; //If restart is needed. if (type == null) { return Guid.Empty; } return type.Guid; } else { throw new Exception("Invalid target."); } return Guid.Empty; }
void Download(object sender, GXAsyncWork work, object[] parameters) { //TODO: GXDeviceProfile dp = parameters[0] as GXDeviceProfile; GXJsonClient parser = new GXJsonClient(Arguments.DownloadServer, Arguments.UserName, Arguments.Password); GXDownloadRequest req = new GXDownloadRequest(dp); GXDownloadResponse res = parser.Post(req); }