Example #1
0
        async private void Write2Button_Click(object sender, RoutedEventArgs e)
        {
            MessageBoxResult writeMessage = System.Windows.MessageBox.Show("Are you sure you want to overwrite this group?", "Group Editing", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            if (writeMessage == MessageBoxResult.Yes)
            {
                ComboItem temp      = (ComboItem)GroupCombo.SelectedItem;
                dynamic   groupData = GroupCreation(temp.nameStore);

                HttpClient    client  = new HttpClient();
                string        address = AddressBuild.GroupUriSpecify(temp.idStore);
                StringContent content = new StringContent(JsonParser.Serialize(groupData));
                Task <HttpResponseMessage> postData = client.PutAsync(address, content);
                HttpResponseMessage        response = await postData;

                string responseString = await response.Content.ReadAsStringAsync();

                if (responseString.Contains("success"))                   //Extremely ugly hack. Use JsonParser after refactoring.
                //Edit group in latestData
                {
                    JsonParser.Modify(Storage.latestData, new string[] { "groups", temp.idStore, "lights" }, groupData.lights);
                    JsonParser.Modify(Storage.groupData, new string[] { "lights" }, groupData.lights);
                }
            }
        }
Example #2
0
        async private void Save2Button_Click(object sender, RoutedEventArgs e)         //Should be synchronous after refactoring
        {
            int count = 0;

            foreach (dynamic group in Storage.latestData.groups)
            {
                count++;
            }
            if (count >= 16)
            {
                MessageBox.Show("Group table is full. Only 16 groups can be stored at a time.", "Too Many Groups", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            groupName = "";
            GroupNameWindow nameWindow = new GroupNameWindow();

            nameWindow.Owner = this;
            nameWindow.ShowDialog();

            if (groupName != "")
            {
                foreach (dynamic group in Storage.latestData.groups)
                {
                    if (group.Value.name == groupName)
                    {
                        MessageBox.Show("Group name already in use.", "Name Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }
                }

                dynamic newGroup = GroupCreation(groupName);

                HttpClient    client  = new HttpClient();
                string        address = AddressBuild.GroupsRoot();
                StringContent content = new StringContent(JsonParser.Serialize(newGroup));
                Task <HttpResponseMessage> postData = client.PostAsync(address, content);
                HttpResponseMessage        response = await postData;

                string responseString = await response.Content.ReadAsStringAsync();

                if (responseString.Contains("success"))                   //Extremely ugly hack. Use JsonParser after refactoring.
                {
                    responseString = responseString.Remove(0, responseString.IndexOf("groups/") + 7);
                    responseString = responseString.Remove(responseString.IndexOf("\""), responseString.Length - responseString.IndexOf("\""));

                    //Add group to latestData
                    JsonParser.Create(Storage.latestData, new string[] { "groups", responseString }, newGroup);

                    //Append list of groups
                    this.GroupCombo.Items.Add(new ComboItem(groupName, responseString));
                    this.GroupCombo.SelectedIndex = this.GroupCombo.Items.Count - 1;
                }
            }
        }
Example #3
0
        async private void Name2Button_Click(object sender, RoutedEventArgs e)
        {
            ComboItem temp = (ComboItem)GroupCombo.SelectedItem;

            groupName = "";
            GroupNameWindow nameWindow = new GroupNameWindow();

            nameWindow.Owner = this;
            nameWindow.ShowDialog();

            if (groupName != "")
            {
                foreach (dynamic group in Storage.latestData.groups)
                {
                    if (group.Value.name == groupName)
                    {
                        if (temp.nameStore != groupName)
                        {
                            MessageBox.Show("Group name already in use.", "Name Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        return;
                    }
                }

                dynamic groupData = new ExpandoObject();
                groupData.name = groupName;

                HttpClient    client  = new HttpClient();
                string        address = AddressBuild.GroupUriSpecify(temp.idStore);
                StringContent content = new StringContent(JsonParser.Serialize(groupData));
                Task <HttpResponseMessage> postData = client.PutAsync(address, content);
                HttpResponseMessage        response = await postData;

                string responseString = await response.Content.ReadAsStringAsync();

                if (responseString.Contains("success"))                   //Extremely ugly hack. Use JsonParser after refactoring.
                //Edit group in latestData
                {
                    JsonParser.Modify(Storage.latestData, new string[] { "groups", temp.idStore, "name" }, groupName);

                    //Edit list entry
                    int tempIndex = this.GroupCombo.SelectedIndex;
                    this.GroupCombo.Items[tempIndex] = new ComboItem(groupName, temp.idStore);
                    this.GroupCombo.SelectedIndex    = tempIndex;
                }
            }
        }
Example #4
0
        async private void Delete2Button_Click(object sender, RoutedEventArgs e)
        {
            MessageBoxResult deleteMessage = System.Windows.MessageBox.Show("Are you sure you want to delete this group?", "Group Deletion", MessageBoxButton.YesNo, MessageBoxImage.Warning);
            ComboItem        temp          = (ComboItem)GroupCombo.SelectedItem;

            if (deleteMessage == MessageBoxResult.Yes)
            {
                HttpClient client  = new HttpClient();
                string     address = AddressBuild.GroupUriSpecify(temp.idStore);
                Task <HttpResponseMessage> postData = client.DeleteAsync(address);
                HttpResponseMessage        response = await postData;

                string responseString = await response.Content.ReadAsStringAsync();

                if (responseString.Contains("success"))                   //Extremely ugly hack. Use JsonParser after refactoring.
                {
                    JsonParser.Delete(Storage.latestData, new string[] { "groups", temp.idStore });
                    int tempIndex = this.GroupCombo.SelectedIndex;
                    this.GroupCombo.SelectedIndex = 0;
                    this.GroupCombo.Items.RemoveAt(tempIndex);
                }
            }
        }