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));
}
}
}