コード例 #1
0
 public static void CheckDatabase()
 {
     using (var db = new House2HouseRecordDataContext()) {
         if (db.DatabaseExists() == false)
             db.CreateDatabase();
     }
 }
コード例 #2
0
 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();
         }
     }
 }
コード例 #3
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;
     }
 }
コード例 #4
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`
            }
        }
コード例 #5
0
        public static House2HouseRecordData[] GetHouse2HouseRecords(SortOrder so, int maxReturnCount = 25)
        {
            var records = new List<House2HouseRecordData>();
            using (var db = new House2HouseRecordDataContext()) {
                try {
                    if (maxReturnCount == -1) maxReturnCount = db.House2HouseRecordItems.Count();
                    IEnumerable<House2HouseRecordDataItem> demRecs = null;
                    IQueryable<House2HouseRecordDataItem> q;
                    if (so == SortOrder.DateNewestToOldest || so == SortOrder.DateOldestToNewest) {
                        q = (from x in db.House2HouseRecordItems
                             orderby x.Date
                             select x).Take(maxReturnCount);
                        demRecs = so == SortOrder.DateNewestToOldest ? q.ToArray().Reverse() : q.ToArray();
                    } else if (so == SortOrder.StreetAToZ || so == SortOrder.StreetZToA) {
                        q = (from x in db.House2HouseRecordItems
                             orderby StreetBuildingInterface.GetStreetName(x.StreetItemId)
                             select x).Take(maxReturnCount);
                        demRecs = so == SortOrder.StreetZToA ? q.ToArray().Reverse() : q.ToArray();

                    } else if (so == SortOrder.AddressNumberHighToLow || so == SortOrder.AddressNumberLowToHigh) {
                        q = (from x in db.House2HouseRecordItems
                             orderby x.HouseAptNumber
                             select x).Take(maxReturnCount);
                        demRecs = so == SortOrder.AddressNumberHighToLow ? q.ToArray().Reverse() : q.ToArray();
                    }
                    if (demRecs != null)
                        records.AddRange(demRecs.Select(House2HouseRecordData.Copy));
                    return records.ToArray();
                } catch {
                    return records.ToArray();
                }
            }
        }