public async Task <Result> UpdateImportedPollingStation(Guid jobId, ImportedPollingStationModel importedPollingStation) { var result = await Result.Try(async() => { var pollingStation = await _context.ImportedPollingStations .Where(x => x.Id == importedPollingStation.Id) .Where(x => x.JobId == jobId.ToString()) .FirstAsync(); pollingStation.County = importedPollingStation.County; pollingStation.Locality = importedPollingStation.Locality; pollingStation.PollingStationNumber = importedPollingStation.PollingStationNumber; pollingStation.Address = importedPollingStation.Address; pollingStation.Institution = importedPollingStation.Institution; pollingStation.Latitude = importedPollingStation.Latitude; pollingStation.Longitude = importedPollingStation.Longitude; pollingStation.ResolvedAddressStatus = importedPollingStation.ResolvedAddressStatus; pollingStation.FailMessage = importedPollingStation.FailMessage; pollingStation.JobId = jobId.ToString(); if (importedPollingStation.AssignedAddresses != null) { if (pollingStation.AssignedAddresses != null) { _context.ImportedPollingStationAddresses.RemoveRange(pollingStation.AssignedAddresses); } pollingStation.AssignedAddresses = importedPollingStation.AssignedAddresses.Select(x => MapToAssignedAddresses(pollingStation, x)).ToList(); } await _context.SaveChangesAsync(); }); return(result); }
public async Task <Result <int> > AddPollingStation(Guid jobId, ImportedPollingStationModel pollingStation) { var result = await Result.Try(async() => { var entity = new ImportedPollingStationEntity { Address = pollingStation.Address, County = pollingStation.County, Institution = pollingStation.Institution, Locality = pollingStation.Locality, PollingStationNumber = pollingStation.PollingStationNumber, ResolvedAddressStatus = pollingStation.ResolvedAddressStatus, FailMessage = pollingStation.FailMessage, Latitude = pollingStation.Latitude, Longitude = pollingStation.Longitude, JobId = jobId.ToString(), }; entity.AssignedAddresses = pollingStation.AssignedAddresses .Select(x => MapToAssignedAddresses(entity, x)).ToList(); await _context.ImportedPollingStations.AddAsync(entity); await _context.SaveChangesAsync(); return(entity.Id); }, exception => LogException(exception)); return(result); }
public async Task <Result <int> > Handle(AddImportedPollingStation request, CancellationToken cancellationToken) { var pollingStation = new ImportedPollingStationModel { County = request.PollingStation.County, Locality = request.PollingStation.Locality, PollingStationNumber = request.PollingStation.PollingStationNumber, Address = request.PollingStation.Address, Institution = request.PollingStation.Institution, ResolvedAddressStatus = request.PollingStation.ResolvedAddressStatus ?? ResolvedAddressStatusType.NotProcessed, Latitude = request.PollingStation.Latitude, Longitude = request.PollingStation.Longitude, JobId = request.JobId.ToString(), AssignedAddresses = request.PollingStation.AssignedAddresses }; return(await _repository.AddPollingStation(request.JobId, pollingStation)); }