public DistrictDTO EditDistrict(DistrictDTO district)
{
var oldDistrict = uOW.DistrictRepo.All.Where(d => d.Id == district.Id).Include(c => c.Coordinates).FirstOrDefault();
if (oldDistrict == null)
{
return null;
}
oldDistrict.Name = district.Name;
var newCoord = Mapper.Map<List<Coordinate>>(district.Coordinates);
newCoord.Reverse();
foreach (var coord in newCoord)
{
var editCoord = oldDistrict.Coordinates.Find(c => c.Id == coord.Id);
if (editCoord == null)
{
coord.District = oldDistrict;
oldDistrict.Coordinates.Add(coord);
}
else
{
editCoord.Index = coord.Index;
editCoord.Latitude = coord.Latitude;
editCoord.Longitude = coord.Longitude;
}
}
uOW.DistrictRepo.Update(oldDistrict);
uOW.Save();
var newDistrict = uOW.DistrictRepo.All.Where(d => d.Id == district.Id).FirstOrDefault();
SortCoordinates(newDistrict);
return Mapper.Map<DistrictDTO>(newDistrict);
}