Beispiel #1
0
        public void Save(City city)
        {
            using (var db = GetDbContext())
            {
                Entities.CityEntity dbCity;

                if (city.Id != Guid.Empty)
                {
                    dbCity = db.Cities.SingleOrDefault(g => g.Id == city.Id);
                    if (dbCity == null)
                    {
                        throw new Exception("Region could not be found");
                    }

                    dbCity.Locations.Clear();
                }
                else
                {
                    dbCity = new Entities.CityEntity
                    {
                        Id        = Guid.NewGuid(),
                        CreatedBy = city.CreatedBy,
                        CreatedOn = DateTime.UtcNow
                    };
                    city.Id        = dbCity.Id;
                    city.CreatedOn = dbCity.CreatedOn;
                    db.Cities.Add(dbCity);
                    dbCity.Locations = new Collection <Entities.LocationEntity>();
                }

                dbCity.Name      = city.Name;
                dbCity.UpdatedBy = city.UpdatedBy;
                dbCity.UpdatedOn = DateTime.UtcNow;
                city.UpdatedOn   = dbCity.UpdatedOn;

                foreach (var location in city.Locations)
                {
                    var dbLocation = db.Locations.SingleOrDefault(l => l.Id == location.Id);
                    if (dbLocation != null)
                    {
                        dbCity.Locations.Add(dbLocation);
                    }
                }

                db.SaveChanges();
            }
        }
Beispiel #2
0
        public static City MapToCity(Entities.CityEntity dbCity)
        {
            if (dbCity == null)
            {
                return(null);
            }

            return(new City
            {
                Id = dbCity.Id,
                Name = dbCity.Name,
                CreatedBy = dbCity.CreatedBy,
                CreatedOn = dbCity.CreatedOn,
                UpdatedBy = dbCity.UpdatedBy,
                UpdatedOn = dbCity.UpdatedOn,
                Locations = dbCity.Locations.Select(MapToLocation).ToList()
            });
        }