Exemple #1
0
        public BranchModel AddBranch(BranchModel branch)
        {
            if (DB.Branches.SingleOrDefault(p => p.Name == branch.Name) != null)
            {
                throw new ExistingBranchNameException();
            }
            if (DB.Adresses.SingleOrDefault(p => p.City == branch.City && p.AdressLine == branch.AdressLine) != null)
            {
                throw new ExistingAdressException();
            }

            using (DB.Database.BeginTransaction())
            {
                if (branch.Latitude == 0 || branch.Longitude == 0)
                {
                    GetLatLngByAdress(branch);
                }

                Location addedLocation = branch.ConvertToLocation();
                DB.Locations.Add(addedLocation);
                DB.SaveChanges();
                branch.LocationId = addedLocation.LocationId;

                Branch addedBranch = branch.ConvertToBranch();
                DB.Branches.Add(addedBranch);
                DB.SaveChanges();
                branch.BranchId = addedBranch.BranchId;

                Adress addedAdress = branch.ConvertToAdress();
                DB.Adresses.Add(addedAdress);
                DB.SaveChanges();

                BranchesAdress branchesAdress = new BranchesAdress();
                branchesAdress.AdressId = addedAdress.AdressId;
                branchesAdress.BranchId = addedBranch.BranchId;
                DB.BranchesAdresses.Add(branchesAdress);

                DB.SaveChanges();

                DB.Database.CommitTransaction();
            }
            return(branch);
        }
 public BranchesAdressModel(BranchesAdress branchesAdress)
 {
     BranchAdressId = branchesAdress.BranchAdressId;
     BranchId       = branchesAdress.BranchId;
     AdressId       = branchesAdress.AdressId;
 }