public static void CheckDatabase()
 {
     using (var db = new StreetsBuildingDataContext())
         if (db.DatabaseExists() == false)
         {
             db.CreateDatabase();
         }
 }
 public static StreetBuildingData GetStreetBuilding(int itemId)
 {
     using (var db = new StreetsBuildingDataContext()) {
         try {
             var s = db.StreetsBuildingItems.Single(r => r.ItemId == itemId);
             return(StreetBuildingData.Copy(s));
         } catch (InvalidOperationException) {
             throw new StreetBuildingItemDoesntExistException();
         }
     }
 }
 public static string GetStreetName(int itemId)
 {
     using (var db = new StreetsBuildingDataContext()) {
         try {
             var s = db.StreetsBuildingItems.Single(r => r.ItemId == itemId);
             return(string.IsNullOrEmpty(s.BuildingNumber) ? s.Street : string.Format("{0} ({1})", s.Street, s.BuildingNumber));
         } catch {
             throw new StreetBuildingItemDoesntExistException();
         }
     }
 }
        private static bool UpdateStreetBuilding(ref StreetBuildingData st)
        {
            using (var db = new StreetsBuildingDataContext()) {
                try {
                    var i    = st.ItemId;
                    var stEx = db.StreetsBuildingItems.Single(s => s.ItemId == i);
                    stEx.BuildingNumber  = st.BuildingNumber;
                    stEx.DateCreated     = st.DateCreated;
                    stEx.Street          = st.Street;
                    stEx.TerritoyrCardId = st.TerritoryCardId;

                    db.SubmitChanges();
                    return(true);
                } catch (InvalidOperationException) {
                    throw new StreetBuildingItemDoesntExistException();
                }
            }
        }
 private static bool AddNewStreetBuilding(ref StreetBuildingData st)
 {
     using (var db = new StreetsBuildingDataContext()) {
         var s = StreetBuildingData.Copy(st);
         var q = from x in db.StreetsBuildingItems
                 where x.TerritoyrCardId.Equals(s.TerritoyrCardId) &&
                 x.Street.Equals(s.Street) &&
                 x.BuildingNumber.Equals(s.BuildingNumber)
                 select x;
         if (q.Any())
         {
             throw new StreetBuildingAlreadyExistsException();
         }
         db.StreetsBuildingItems.InsertOnSubmit(s);
         db.SubmitChanges();
         st.ItemId = s.ItemId;
         return(st.ItemId >= 0);
     }
 }