/// <summary> /// Manager method that edits specific district entry which id property value matches input parameters id property value /// </summary> /// <param name="district">Input parameter that represents object of type District </param> /// <returns></returns> 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); }
/// <summary> /// Managaer method that adds new district entry to Db /// </summary> /// <param name="district">parameter that represents a new object</param> public DistrictDTO addDistrict(DistrictDTO district) { if (uOW.DistrictRepo.All.Where(x => x.Name.Equals(district.Name, StringComparison.InvariantCultureIgnoreCase)).Count() == 0) { var model = Mapper.Map<District>(district); uOW.DistrictRepo.Insert(model); uOW.Save(); var newDistrict = uOW.DistrictRepo.All.Where(d => d.Name == district.Name).Include(c => c.Coordinates).FirstOrDefault(); return Mapper.Map<DistrictDTO>(newDistrict); } else { return null; } }