public MeteredSpace AddOrUpdate(MeteredSpacePOST viewModel) { var posted = new MeteredSpace() { MeterId = viewModel.PoleSerialNumber, Area = viewModel.Area, SubArea = viewModel.SubArea, Zone = viewModel.Zone, Latitude = viewModel.Lat, Longitude = viewModel.Long, Active = viewModel.Status.HasValue ? !viewModel.Status.Equals(0) : default(bool?) }; var existing = Get(posted.MeterId); if (existing == null) { _meteredSpacesRepo.Create(posted); } else { posted.Id = existing.Id; posted.Area = posted.Area ?? existing.Area; posted.SubArea = posted.SubArea ?? existing.SubArea; posted.Zone = posted.Zone ?? existing.Zone; posted.Latitude = posted.Latitude ?? existing.Latitude; posted.Longitude = posted.Longitude ?? existing.Longitude; posted.Active = posted.Active ?? existing.Active; _meteredSpacesRepo.Update(posted); } //invalidate the cache now that there is new data _cacheService.Remove(cacheKey); return posted; }
public MeteredSpaceGET ConvertToViewModel(MeteredSpace entity) { return new MeteredSpaceGET() { MeterId = entity.MeterId, Area = entity.Area, StreetAddress = entity.SubArea, Latitude = entity.Latitude, Longitude = entity.Longitude, Active = entity.Active }; }