public async Task <OperationResult> ImportTransporter(TransporterImportModel transporterAsJson) { try { { var rawJson = JRaw.Parse(transporterAsJson.ImportList); var rawHeadersJson = JRaw.Parse(transporterAsJson.Headers); var headers = rawHeadersJson; var fractionObjects = rawJson.Skip(1); foreach (var fractionObj in fractionObjects) { var transporterNameExists = int.TryParse(headers[0]["headerValue"].ToString(), out var nameColumn); if (transporterNameExists) { var existingTransporter = FindTransporter(nameColumn, headers, fractionObj); if (existingTransporter == null) { var transporterModel = TransportersHelper.ComposeValues(new TransporterModel(), headers, fractionObj); var newTransporter = new Transporter { Name = transporterModel.Name, Description = transporterModel.Description, ForeignId = transporterModel.ForeignId, Address = transporterModel.Address, City = transporterModel.City, ZipCode = transporterModel.ZipCode, Phone = transporterModel.Phone, ContactPerson = transporterModel.ContactPerson }; await newTransporter.Create(_dbContext); } else { var transporterModel = TransportersHelper.ComposeValues(new TransporterModel(), headers, fractionObj); existingTransporter.Name = transporterModel.Name; existingTransporter.Description = transporterModel.Description; existingTransporter.ForeignId = transporterModel.ForeignId; existingTransporter.Address = transporterModel.Address; existingTransporter.City = transporterModel.City; existingTransporter.ZipCode = transporterModel.ZipCode; existingTransporter.Phone = transporterModel.Phone; existingTransporter.ContactPerson = transporterModel.ContactPerson; if (existingTransporter.WorkflowState == Constants.WorkflowStates.Removed) { existingTransporter.WorkflowState = Constants.WorkflowStates.Created; } await existingTransporter.Update(_dbContext); } } } } return(new OperationResult(true, _trashInspectionLocalizationService.GetString("TransporterCreated"))); } catch (Exception e) { Trace.TraceError(e.Message); _coreHelper.LogException(e.Message); return(new OperationResult(false, _trashInspectionLocalizationService.GetString("ErrorWhileCreatingTransporter"))); } }
public async Task <OperationResult> ImportTransporter([FromBody] TransporterImportModel transporterImportModel) { return(await _transporterService.ImportTransporter(transporterImportModel)); }