aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UpdateServiceHelper.cs
blob: 067e4470dc047f94e5555edf44d3904207fcb3ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using Tango.Settings;

namespace Tango.MachineStudio.Common.Update
{
    public static class UpdateServiceHelper
    {
        public static ChannelFactory<IMachineStudioUpdateService> GetUpdateServiceChannel()
        {
            BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
            binding.ReceiveTimeout = TimeSpan.FromSeconds(60);
            binding.SendTimeout = TimeSpan.FromSeconds(60);
            binding.MaxBufferPoolSize = 6553600;
            binding.MaxBufferSize = 6553600;
            binding.MaxReceivedMessageSize = 6553600;
            binding.ReaderQuotas.MaxDepth = 6553600;
            binding.ReaderQuotas.MaxStringContentLength = 6553600;
            binding.ReaderQuotas.MaxArrayLength = 6553600;
            binding.ReaderQuotas.MaxBytesPerRead = 6553600;

            return new ChannelFactory<IMachineStudioUpdateService>(binding, SettingsManager.Default.GetOrCreate<MachineStudioSettings>().UpdateServiceAddress);
        }
    }
}
>token; var res2 = client.PostJson<CheckForUpdatesRequest, CheckForUpdatesResponse>($"{address}/api/MachineStudio/CheckForUpdates", new CheckForUpdatesRequest() { Version = "1.0.0.0" }).ConfigureAwait(false).GetAwaiter().GetResult(); //Check updates are available.. Assert.IsTrue(res2.IsUpdateAvailable); //Now check the dedicated machine studio client. MachineStudioWebClient msClient = new MachineStudioWebClient(address, null); //Should throw an exception without login first (no token specified..) Assert.ThrowsException<AuthenticationException>(() => { var res3 = msClient.CheckForUpdates(new CheckForUpdatesRequest() { Version = "1.0.0.0" }).GetAwaiter().GetResult(); }); //Perform a login. var res4 = msClient.Login(new LoginRequest() { Email = "TestUser@twine-s.com", Password = "ASJH_asdjkl1234", Version = "1.0.0.0" }).Result; //Validate the data source received. using (ObservablesContext db = ObservablesContext.CreateDefault(res4.DataSource)) { var user = db.Users.Single(x => x.Email.ToLower() == "TestUser@twine-s.com"); } //Check updates are not available.. var res5 = msClient.CheckForUpdates(new CheckForUpdatesRequest() { Version = "100.0.0.0" }).Result; Assert.IsFalse(res5.IsUpdateAvailable); } [TestMethod] public void Login_with_new_user() { //LoadConfiguration(); Tango.MachineService.Controllers.MachineStudioController controller = new Tango.MachineService.Controllers.MachineStudioController(); controller.Login(new LoginRequest() { Email = "Mati@twine-s.com", Password = "Futo8985", }); } //private void LoadConfiguration() //{ // ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); // fileMap.ExeConfigFilename = @"web.config"; // Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); // foreach (var item in config.AppSettings.Settings.OfType<KeyValueConfigurationElement>()) // { // ConfigurationManager.AppSettings.Add(item.Key, item.Value); // } //} } }