Пример #1
0
        public void SavePayers()
        {
            var toBeDeleted = new List <DataModel.Contact>();

            foreach (var payer in initialPayerList)
            {
                var match = PayerList.FirstOrDefault(p => p.Id == payer.Id);
                if (match == null)
                {
                    toBeDeleted.Add(payer);
                }
            }

            using (var conn = DBHandler.Connection())
            {
                conn.Open();
                using (var t = conn.BeginTransaction())
                {
                    toBeDeleted.ForEach(p => DataModel.Client.RemoveDefaultPayer(p.Id, conn, t));
                    toBeDeleted.ForEach(p => p.Delete(conn, t));
                    foreach (var payer in PayerList)
                    {
                        // Do not save empty names.
                        if (string.IsNullOrWhiteSpace(payer.Name))
                        {
                            if (payer.Id != null)
                            {
                                // Also remove those existing with empty names.
                                DataModel.Client.RemoveDefaultPayer(payer.Id, conn, t);
                                payer.Delete(conn, t);
                            }
                        }
                        else
                        {
                            payer.Payer = true;
                            payer.Save(conn, t);
                        }
                    }
                    t.Commit();
                }
            }

            Refresh();
        }
Пример #2
0
 public void RemovePayerFromList(DataModel.Contact payer)
 {
     PayerList.Remove(payer);
 }