csImb.csImb.ProcessImbVariableGroup C# (CSharp) Method

ProcessImbVariableGroup() private method

private ProcessImbVariableGroup ( string aVarName, string value ) : void
aVarName string
value string
return void
        private void ProcessImbVariableGroup(string aVarName, string value) {
            var groupName = aVarName.Split('.')[0];

            var group = groups.FirstOrDefault(k => Equals(k.Name, groupName)); // Equals made static.

            if (string.IsNullOrEmpty(value)) {
                if (CanDeleteGroup(group)) {
                    Groups.Remove(group);
                    Execute.OnUIThread(() => {
                        
                        AppState.TriggerNotification(group.Name + " has been deleted", pathData: MenuHelpers.GroupIcon);
                    });
                    // First call OnClientRemoved before you remove the client. Otherwise you will generate an exception.
                }
            }
            else {
                if (group != null) {
                    group.FromString(value); // Update group info
                }
                else {
                    // Create group
                    var st = new csGroup {Name = groupName};
                    st.FromString(value);
                    Groups.Add(st);
                    var s = string.Format("Created group '{0}'{1}",
                        groupName, (st.OwnerClient != null ? 
                        string.Format(" owned by client '{0}'", (st.OwnerClient.Name ?? "-")) : string.Empty));
                    Execute.OnUIThread(() => AppState.TriggerNotification(s, pathData: MenuHelpers.GroupIcon));
                }
            }
        }