public ServiceAddWindow(BimbotDocument document)
        {
            InitializeComponent();
            DataContext           = this;
            CurrentBimbotDocument = document;

            // Get services
            if (AvailableServices == null)
            {
                AvailableServices = new ObservableCollection <Service>();
                GetAvailableServices();
            }
            ReUseAuthorizedProviders(document);

            this.Title = "Add service to project '" + CurrentBimbotDocument.Name + "'";

            // Fill the combobox of triggers
            newTrigger.Items.Clear();
            foreach (string key in textToTrigger.Keys)
            {
                newTrigger.Items.Add(key);
            }

            // Fill the combobox of configurations
            IFCExportConfigurationsMapCustom configurationsMap = new IFCExportConfigurationsMapCustom();

            foreach (var config in configurationsMap.Values)
            {
                newConfiguration.Items.Add(config);
            }
        }
        public void ReUseAuthorizedProviders(BimbotDocument document)
        {
            if (document.RegisteredProviders == null)
            {
                return;
            }

            foreach (Service service in AvailableServices)
            {
                if (document.RegisteredProviders.ContainsKey(service.Provider.Name))
                {
                    service.ReAssignProvider(document.RegisteredProviders);
                }
            }
        }
Ejemplo n.º 3
0
        public void RegisterForDocument(BimbotDocument document)
        {
            byte[] data = Encoding.ASCII.GetBytes("{\n" +
                                                  "\"type\": \"pull\",\n" +
                                                  "\"client_name\": \"Revit file " + document.Name + "\",\n" +
                                                  "\"client_url\": \"-no url-\",\n" +
                                                  "\"client_description\": \"A project file opened in Revit\",\n" +
                                                  "\"client_icon\": \"https://www.itannex.com/wp-content/uploads/2016/12/revit-icon-128px-hd.png \",\n" +
                                                  "\"redirect_url\": \"\"\n" +
                                                  "}");

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(RegisterUrl);

            request.Method        = "POST";
            request.ContentType   = "application/json";
            request.ContentLength = data.Length;
            try
            {
                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(data, 0, data.Length);
                }

                WebResponse response = request.GetResponse() as HttpWebResponse;
                Debug.Assert(response != null);
                using (Stream responseStream = response.GetResponseStream())
                {
                    StreamReader          reader  = new StreamReader(responseStream, Encoding.UTF8);
                    string                str     = reader.ReadToEnd();
                    OAuthRegisterResponse regData = JsonConvert.DeserializeObject <OAuthRegisterResponse>(str);

                    ClientId     = regData.client_id;
                    ClientSecret = regData.client_secret;

                    document.RegisteredProviders.Add(Name, this);
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }
        }