private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            var ctx = PublicBoardCtx.Get();

            foreach (var p in persons)
            {
                bool   prevExists;
                Person prev = DaoUtils.PersonSingleton(p, out prevExists);
                if (!prevExists)
                {
                    try
                    {
                        ctx.AddToPerson(prev);
                    }
                    catch (Exception)
                    {
                        //persons in modified are ignored
                    }
                }
            }

            ctx.SaveChanges();

            if (changesExist)
            {
                _sharedClient.clienRt.SendUserAccPlusMinus();
            }

            Close();
        }
        private void SaveParticipants(Topic t = null)
        {
            if (t == null)
            {
                t = EditedTopic;
            }
            if (t == null || EditedDiscussion == null)
            {
                return;
            }

            foreach (Topic top in EditedDiscussion.Topic)
            {
                top.Person.Clear();

                foreach (var p in tmpPersons)
                {
                    if (p.Name == "Name")
                    {
                        continue;
                    }

                    bool   prevExists;
                    Person prev = DaoUtils.PersonSingleton(p, out prevExists);

                    if (!top.Person.Contains(prev))
                    {
                        top.Person.Add(prev);
                    }
                }
            }

            PublicBoardCtx.Get().SaveChanges();
        }