static async void Run() { IApiService api = new ApiService(new RequestService(), new ApiLogger(), HOST); string passwd = ComputePasswordHash("rose"); UserStatusCode result = await api.RegisterUserAsync("india", "*****@*****.**", passwd); Console.WriteLine("Result Code {0}", result); result = await api.LoginUserAsync("india", passwd); Console.WriteLine("Result Code {0}", result); UserInfo badUserInfo = new UserInfo {Login = "******", Password = "******"}; UserInfo userInfo = new UserInfo{Login = "******", Password = passwd}; DeviceStatusCode dResult = await api.CreateDeviceAsync(badUserInfo, "test123"); Console.WriteLine("Create bad device : {0}", dResult); dResult = await api.CreateDeviceAsync(userInfo, "test123"); Console.WriteLine("Create good device : {0}", dResult); ApiResult<DeviceStatusCode, List<DeviceResponse>> deviceListResult = await api.ListDevicesAsync(userInfo); Console.WriteLine("Display devices : {0}", deviceListResult.Status); deviceListResult.Content.ForEach(x => Console.WriteLine("\t{0}", x.Name)); dResult = await api.RenameDeviceAsync(userInfo, "test123", "test456"); Console.WriteLine("Rename device : {0}", dResult); deviceListResult = await api.ListDevicesAsync(userInfo); Console.WriteLine("Display devices : {0}", deviceListResult.Status); deviceListResult.Content.ForEach(x => Console.WriteLine("\t{0}", x.Name)); DeviceInfo device = new DeviceInfo { Name = "test456" }; var sResult = await api.GetLastSettingsAsync(userInfo, device); Console.WriteLine("Get Settings : {0}", sResult.Status); if (sResult.Content != null) { Console.WriteLine("\tDate : {0}", sResult.Content.Date); Console.WriteLine("\tVersion : {0}", sResult.Content.Version); Console.WriteLine("\tData : {0}", sResult.Content.Settings); } var updateResult = await api.UpdateSettingsAsync(userInfo, device, "test settings v1"); Console.WriteLine("update settings : {0}", updateResult); sResult = await api.GetLastSettingsAsync(userInfo, device); Console.WriteLine("Get Settings : {0}", sResult.Status); if (sResult.Content != null) { Console.WriteLine("\tDate : {0}", sResult.Content.Date); Console.WriteLine("\tVersion : {0}", sResult.Content.Version); Console.WriteLine("\tData : {0}", sResult.Content.Settings); } var slResult = await api.GetSettingsListAsync(userInfo, device); Console.WriteLine("Get list of settings => {0}", slResult.Status); if (slResult.Content != null) { foreach (var settings in slResult.Content) { Console.WriteLine("\tDate : {0}", settings.Date); Console.WriteLine("\tVersion : {0}", settings.Version); Console.WriteLine("\tData : {0}", settings.Settings); } Console.WriteLine(); } Console.WriteLine(); sResult = await api.GetVersionSettingsAsync(userInfo, device, 2); Console.WriteLine("Get Settings for version 2: {0}", sResult.Status); if (sResult.Content != null) { Console.WriteLine("\tDate : {0}", sResult.Content.Date); Console.WriteLine("\tVersion : {0}", sResult.Content.Version); Console.WriteLine("\tData : {0}", sResult.Content.Settings); } //Console.WriteLine("Got result {0}", result); var vResult = await api.GetVersions(userInfo, device); Console.WriteLine("GetVersions : {0}", vResult.Status); if (vResult.Content != null) { foreach (var v in vResult.Content) { Console.WriteLine("\tVersion : {0}\n\tDate : {1}", v.Version, v.Date); } } vResult = await api.GetVersions(userInfo, device, 2); Console.WriteLine("GetVersionsFrom(2) : {0}", vResult.Status); if (vResult.Content != null) { foreach (var v in vResult.Content) { Console.WriteLine("\tVersion : {0}\n\tDate : {1}", v.Version, v.Date); } } var vCreateResult = await api.CreateVersion(userInfo, device); Console.WriteLine("CreateVersion : {0}", vCreateResult.Status); if (vCreateResult.Content != null) { var v = vCreateResult.Content; Console.WriteLine("\tVersion : {0}\n\tDate : {1}", v.Version, v.Date); } else { return; } var iCreateResult = await api.UpdateIndiagram(userInfo, device, new IndiagramRequest { Id = -1, IsCategory = false, IsEnabled = false, ParentId = -1, Position = 1, Text = "Test image", Version = vCreateResult.Content.Version }); Console.WriteLine("Create indiagram : {0}", iCreateResult.Status); if (iCreateResult.Content != null) { IndiagramResponse i = iCreateResult.Content; Console.WriteLine("\tDatabaseId : {0}", i.DatabaseId); Console.WriteLine("\tIsCategory : {0}", i.IsCategory); Console.WriteLine("\tIsEnabled : {0}", i.IsEnabled); Console.WriteLine("\tText : {0}", i.Text); Console.WriteLine("\tPosition : {0}", i.Position); Console.WriteLine("\tHasImage : {0}", i.HasImage); Console.WriteLine("\tHasSound : {0}", i.HasSound); Console.WriteLine("\tImageHash : {0}", i.ImageHash); Console.WriteLine("\tSoundHash : {0}", i.SoundHash); Console.WriteLine("\tImageFile : {0}", i.ImageFile); Console.WriteLine("\tSoundFile : {0}", i.SoundFile); } else { return; } var uploadResult = await api.UploadImage(userInfo, device, iCreateResult.Content.DatabaseId, vCreateResult.Content.Version, "robot.png", ReadImage()); Console.WriteLine("Upload image : {0}", uploadResult); iCreateResult = await api.GetIndiagram(userInfo, device, iCreateResult.Content.DatabaseId); Console.WriteLine("Get indiagram : {0}", iCreateResult.Status); if (iCreateResult.Content != null) { IndiagramResponse i = iCreateResult.Content; Console.WriteLine("\tDatabaseId : {0}", i.DatabaseId); Console.WriteLine("\tIsCategory : {0}", i.IsCategory); Console.WriteLine("\tIsEnabled : {0}", i.IsEnabled); Console.WriteLine("\tText : {0}", i.Text); Console.WriteLine("\tPosition : {0}", i.Position); Console.WriteLine("\tHasImage : {0}", i.HasImage); Console.WriteLine("\tHasSound : {0}", i.HasSound); Console.WriteLine("\tImageHash : {0}", i.ImageHash); Console.WriteLine("\tSoundHash : {0}", i.SoundHash); Console.WriteLine("\tImageFile : {0}", i.ImageFile); Console.WriteLine("\tSoundFile : {0}", i.SoundFile); } else { return; } var downloadResult = await api.GetImage(userInfo, device, iCreateResult.Content.DatabaseId, vCreateResult.Content.Version); Console.WriteLine("Download image : {0}", downloadResult.Status); if (downloadResult.Content != null) { File.WriteAllBytes(string.Format("output-{0}", downloadResult.Content.FileName), downloadResult.Content.Content); Console.WriteLine("Image output write to output-{0}", downloadResult.Content.FileName); } }