public async Task <OperationResult> ImportProducer([FromBody] ProducerImportModel producerImportModel) { return(await _producerService.ImportProducer(producerImportModel)); }
public async Task <OperationResult> ImportProducer(ProducerImportModel producersAsJson) { try { { var rawJson = JRaw.Parse(producersAsJson.ImportList); var rawHeadersJson = JRaw.Parse(producersAsJson.Headers); var headers = rawHeadersJson; var fractionObjects = rawJson.Skip(1); foreach (var fractionObj in fractionObjects) { var producerNameExists = int.TryParse(headers[0]["headerValue"].ToString(), out var nameColumn); if (!producerNameExists) { continue; } var existingProducer = FindProducer(nameColumn, headers, fractionObj); if (existingProducer == null) { var producerModel = ProducersHelper.ComposeValues(new ProducerModel(), headers, fractionObj); var newProducer = new Producer { Name = producerModel.Name, Description = producerModel.Description, ForeignId = producerModel.ForeignId, Address = producerModel.Address, City = producerModel.City, ZipCode = producerModel.ZipCode, Phone = producerModel.Phone, ContactPerson = producerModel.ContactPerson }; await newProducer.Create(_dbContext); } else { var producerModel = ProducersHelper.ComposeValues(new ProducerModel(), headers, fractionObj); existingProducer.Name = producerModel.Name; existingProducer.Description = producerModel.Description; existingProducer.ForeignId = producerModel.ForeignId; existingProducer.Address = producerModel.Address; existingProducer.City = producerModel.City; existingProducer.ZipCode = producerModel.ZipCode; existingProducer.Phone = producerModel.Phone; existingProducer.ContactPerson = producerModel.ContactPerson; if (existingProducer.WorkflowState == Constants.WorkflowStates.Removed) { existingProducer.WorkflowState = Constants.WorkflowStates.Created; } await existingProducer.Update(_dbContext); } } } return(new OperationResult(true, _trashInspectionLocalizationService.GetString("ProducerCreated"))); } catch (Exception e) { Trace.TraceError(e.Message); _coreHelper.LogException(e.Message); return(new OperationResult(false, _trashInspectionLocalizationService.GetString("ErrorWhileCreatingProducer"))); } }