Exemplo n.º 1
0
        public async Task SendMessage(string msg, InstallationData installationData)
        {
            using (var client = new HttpClient())
            {
                var accessToken = await _tenantService.GetAccessTokenAsync(installationData.oauthId);

                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var messageData = new
                {
                    color          = "gray",
                    message        = msg,
                    message_format = "html"
                };

                var stringContent = new StringContent(JsonConvert.SerializeObject(messageData));
                stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var roomGlanceUpdateUri = new Uri($"{installationData.apiUrl}room/{installationData.roomId}/notification");
                var httpResponseMessage = await client.PostAsync(roomGlanceUpdateUri, stringContent);

                httpResponseMessage.EnsureSuccessStatusCode();
            }
        }
Exemplo n.º 2
0
        public async Task UpdateGlance(InstallationData installationData)
        {
            openCounter++;

            var glanceData = new
            {
                glance = new[]
                {
                    new
                    {
                        key     = "nubot.glance", // see installation descriptor
                        content = BuildGlanceString(openCounter.ToString())
                    }
                }
            };

            using (var client = new HttpClient())
            {
                var accessToken = await _tenantService.GetAccessTokenAsync(installationData.oauthId);

                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var stringContent = new StringContent(JsonConvert.SerializeObject(glanceData));
                stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var roomGlanceUpdateUri = new Uri($"{installationData.apiUrl}addon/ui/room/{installationData.roomId}");
                var httpResponseMessage = await client.PostAsync(roomGlanceUpdateUri, stringContent);

                httpResponseMessage.EnsureSuccessStatusCode();
            }
        }
Exemplo n.º 3
0
        public void can_convert__to_installation()
        {
            var installationData = new InstallationData();

            var installation = installationData.ToInstallation();

            // ReSharper disable once IsExpressionAlwaysTrue
            Assert.That(installation is Installation, Is.Not.Null);
        }
Exemplo n.º 4
0
        public void convert_to_installation__preserves_computer_type()
        {
            const ComputerType computerType = ComputerType.Laptop;

            var installationData = new InstallationData {
                ComputerType = computerType
            };

            var installation = installationData.ToInstallation();

            Assert.That(installation.ComputerType, Is.EqualTo(computerType));
        }
Exemplo n.º 5
0
        public void convert_to_installation__preserves_application_id()
        {
            const int applicationId = 11;

            var installationData = new InstallationData {
                ApplicationId = applicationId
            };

            var installation = installationData.ToInstallation();

            Assert.That(installation.ApplicationId, Is.EqualTo(applicationId));
        }
Exemplo n.º 6
0
        public void convert_to_installation__preserves_user_id()
        {
            const int userId = 7;

            var installationData = new InstallationData {
                UserId = userId
            };

            var installation = installationData.ToInstallation();

            Assert.That(installation.UserId, Is.EqualTo(userId));
        }
Exemplo n.º 7
0
        public void convert_to_installation__preserves_computer_id()
        {
            const int computerId = 3;

            var installationData = new InstallationData {
                ComputerId = computerId
            };

            var installation = installationData.ToInstallation();

            Assert.That(installation.ComputerId, Is.EqualTo(computerId));
        }
Exemplo n.º 8
0
        public async Task CreateAsync(InstallationData installationData)
        {
            var response = await _httpClient.GetAsync(new Uri(installationData.capabilitiesUrl));

            response.EnsureSuccessStatusCode();

            var capabilitiesDocument = JsonConvert.DeserializeObject <CapabilitiesDocument>(await response.Content.ReadAsStringAsync());

            installationData.tokenUrl = capabilitiesDocument.capabilities.oauth2Provider.tokenUrl;
            installationData.apiUrl   = capabilitiesDocument.capabilities.hipchatApiProvider.url;

            await _database.StringSetAsync($"{installationData.oauthId}:installationData", JsonConvert.SerializeObject(installationData));

            await _database.ListLeftPushAsync("installations", installationData.oauthId);
        }
Exemplo n.º 9
0
        public void convert_to_installation__combined_properties_correct()
        {
            const int          computerId    = 1;
            const int          userId        = 2;
            const int          applicationId = 3;
            const ComputerType computerType  = ComputerType.Desktop;

            var installationData =
                new InstallationData {
                ComputerId = computerId, UserId = userId, ApplicationId = applicationId, ComputerType = computerType
            };

            var installation = installationData.ToInstallation();

            Assert.That(installation.ComputerId, Is.EqualTo(computerId));
            Assert.That(installation.UserId, Is.EqualTo(userId));
            Assert.That(installation.ApplicationId, Is.EqualTo(applicationId));
            Assert.That(installation.ComputerType, Is.EqualTo(computerType));
        }
Exemplo n.º 10
0
        public InstalledBuildViewModel(BuildExplorerViewModel root, InstallationData installationData)
        {
            _installationData = installationData;
            _root             = root;
            _processes        = new List <ChromeProcessViewModel>();
            IntPtr hicon = IntPtr.Zero;

            try {
                string iconPath = Path.Combine(_installationData.InstallationPath.FullName, "chrome.exe");
                ushort index    = (ushort)_installationData.IconIndex;
                hicon = Core.Win32.Shell.NativeMethods.ExtractAssociatedIcon(IntPtr.Zero, iconPath, ref index);
                using (Icon icon = Icon.FromHandle(hicon)) {
                    _icon = Imaging.CreateBitmapSourceFromHIcon(
                        icon.Handle,
                        Int32Rect.Empty,
                        BitmapSizeOptions.FromEmptyOptions());
                }
            } catch {
                _icon = null;
            }
        }
Exemplo n.º 11
0
        public void OneTimeSetUp()
        {
            var mappingError = new CsvMappingError {
                ColumnIndex = 44, Value = "Test error"
            };

            _data0 = new InstallationData {
                ComputerId = 03, UserId = 04, ApplicationId = 05, ComputerType = ComputerType.Laptop
            };
            _data1 = new InstallationData {
                ComputerId = 13, UserId = 14, ApplicationId = 15, ComputerType = ComputerType.Desktop
            };
            _data2 = new InstallationData {
                ComputerId = 23, UserId = 24, ApplicationId = 25, ComputerType = ComputerType.Laptop
            };

            var valid0 = new CsvMappingResult <InstallationData> {
                RowIndex = 0, Result = _data0
            };
            var valid1 = new CsvMappingResult <InstallationData> {
                RowIndex = 1, Result = _data1
            };
            var valid2 = new CsvMappingResult <InstallationData> {
                RowIndex = 2, Result = _data2
            };

            // Note Result would likely be null in a real error item, (but possibly not). This wild data allows us to check that IsValid is used during conversion, not (null != Result) which would be wrong.
            var invalid1 = new CsvMappingResult <InstallationData> {
                RowIndex = 1, Error = mappingError, Result = _data1
            };


            _allValid = new List <CsvMappingResult <InstallationData> > {
                valid0, valid1, valid2
            };

            _invalidIndex1 = new List <CsvMappingResult <InstallationData> > {
                valid0, invalid1, valid2
            };
        }
Exemplo n.º 12
0
        public async Task SendCardMessage(string msg, string description, InstallationData installationData)
        {
            using (var client = new HttpClient())
            {
                var accessToken = await _tenantService.GetAccessTokenAsync(installationData.oauthId);

                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var messageData = new
                {
                    color          = "gray",
                    message        = msg,
                    message_format = "text",
                    card           = new
                    {
                        style       = "application",
                        id          = "some_id",
                        url         = "http://laurentkempe.com",
                        title       = "Such awesome. Very API. Wow!",
                        description = description,
                        thumbnail   = new
                        {
                            url = "https://pbs.twimg.com/profile_images/582836487776944129/cslDTKEq.jpg"
                        }
                    }
                };

                var stringContent = new StringContent(JsonConvert.SerializeObject(messageData));
                stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var roomGlanceUpdateUri = new Uri($"{installationData.apiUrl}room/{installationData.roomId}/notification");
                var httpResponseMessage = await client.PostAsync(roomGlanceUpdateUri, stringContent);

                httpResponseMessage.EnsureSuccessStatusCode();
            }
        }
Exemplo n.º 13
0
        public async Task <HttpStatusCode> Install([FromBody] InstallationData installation)
        {
            await _tenantService.CreateAsync(installation);

            return(HttpStatusCode.OK);
        }
Exemplo n.º 14
0
        public void can_create()
        {
            var installationData = new InstallationData();

            Assert.That(installationData, Is.Not.Null);
        }