private static bool UpdateH2HRecord(ref House2HouseRecordData rec)
        {
            if (rec.ItemId < 0)
            {
                return(AddH2HRecord(ref rec));
            }
            try {
                using (var db = new House2HouseRecordDataContext()) {
                    int itemId = rec.ItemId;
                    var rec2   = db.House2HouseRecordItems.Single(s => s.ItemId == itemId);

                    rec2.Date                 = rec.Date;
                    rec2.HouseAptNumber       = rec.HouseAptNumber;
                    rec2.NamePlacementRemarks = rec.NamePlacementRemarks;
                    rec2.StreetItemId         = rec.StreetItemId;
                    rec2.Symbol               = rec.Symbol;
                    rec2.TerritoryItemId      = rec.TerritoryItemId;

                    db.SubmitChanges();

                    return(true);
                }
            } catch (InvalidOperationException) {
                return(AddH2HRecord(ref rec)); //rv not found, lets create it`
            }
        }
 public static bool AddOrRemoveHouse2HouseRecord(ref House2HouseRecordData rec)
 {
     try {
         if (rec.ItemId < 0) return AddH2HRecord(ref rec);
         return UpdateH2HRecord(ref rec);
     } catch (H2HRecordAlreadyExistsException) {
         return UpdateH2HRecord(ref rec);
     }
 }
 public static House2HouseRecordData GetHouse2HouseRecord(int itemId)
 {
     using (var db = new House2HouseRecordDataContext()) {
         try {
             var r = db.House2HouseRecordItems.Single(s => s.ItemId == itemId);
             return(House2HouseRecordData.Copy(r));
         } catch {
             return(new House2HouseRecordData());
         }
     }
 }
 internal static House2HouseRecordDataItem Copy(House2HouseRecordData item)
 {
     return new House2HouseRecordDataItem() {
         Date = item.Date,
         Symbol = item.Symbol,
         HouseAptNumber = item.HouseAptNumber,
         NamePlacementRemarks = item.NamePlacementRemarks,
         StreetItemId = item.StreetItemId,
         TerritoryItemId = item.TerritoryItemId
     };
 }
 public static bool AddOrRemoveHouse2HouseRecord(ref House2HouseRecordData rec)
 {
     try {
         if (rec.ItemId < 0)
         {
             return(AddH2HRecord(ref rec));
         }
         return(UpdateH2HRecord(ref rec));
     } catch (H2HRecordAlreadyExistsException) {
         return(UpdateH2HRecord(ref rec));
     }
 }
 internal static House2HouseRecordDataItem Copy(House2HouseRecordData item)
 {
     return(new House2HouseRecordDataItem()
     {
         Date = item.Date,
         Symbol = item.Symbol,
         HouseAptNumber = item.HouseAptNumber,
         NamePlacementRemarks = item.NamePlacementRemarks,
         StreetItemId = item.StreetItemId,
         TerritoryItemId = item.TerritoryItemId
     });
 }
 private static bool AddH2HRecord(ref House2HouseRecordData rec)
 {
     using (var db = new House2HouseRecordDataContext()) {
         var r = House2HouseRecordData.Copy(rec);
         var qry = from x in db.House2HouseRecordItems
                   //unique items
                   where x.HouseAptNumber.Equals(r.HouseAptNumber) &&
                         x.StreetItemId.Equals(r.StreetItemId) &&
                         x.TerritoryItemId.Equals(r.TerritoryItemId)
                   select x;
         if (qry.Any())
             throw new H2HRecordAlreadyExistsException();
         db.House2HouseRecordItems.InsertOnSubmit(r);
         db.SubmitChanges();
         rec.ItemId = r.ItemId;
         return rec.ItemId >= 0;
     }
 }
 private static bool AddH2HRecord(ref House2HouseRecordData rec)
 {
     using (var db = new House2HouseRecordDataContext()) {
         var r   = House2HouseRecordData.Copy(rec);
         var qry = from x in db.House2HouseRecordItems
                   //unique items
                   where x.HouseAptNumber.Equals(r.HouseAptNumber) &&
                   x.StreetItemId.Equals(r.StreetItemId) &&
                   x.TerritoryItemId.Equals(r.TerritoryItemId)
                   select x;
         if (qry.Any())
         {
             throw new H2HRecordAlreadyExistsException();
         }
         db.House2HouseRecordItems.InsertOnSubmit(r);
         db.SubmitChanges();
         rec.ItemId = r.ItemId;
         return(rec.ItemId >= 0);
     }
 }
        private static bool UpdateH2HRecord(ref House2HouseRecordData rec)
        {
            if (rec.ItemId < 0) return AddH2HRecord(ref rec);
            try {
                using (var db = new House2HouseRecordDataContext()) {
                    int itemId = rec.ItemId;
                    var rec2 = db.House2HouseRecordItems.Single(s => s.ItemId == itemId);

                    rec2.Date = rec.Date;
                    rec2.HouseAptNumber = rec.HouseAptNumber;
                    rec2.NamePlacementRemarks = rec.NamePlacementRemarks;
                    rec2.StreetItemId = rec.StreetItemId;
                    rec2.Symbol = rec.Symbol;
                    rec2.TerritoryItemId = rec.TerritoryItemId;

                    db.SubmitChanges();

                    return true;
                }
            } catch (InvalidOperationException) {
                return AddH2HRecord(ref rec); //rv not found, lets create it`
            }
        }