public async Task <OperationResult> ImportFraction([FromBody] FractionImportModel fractionImportModel) { return(await _fractionService.ImportFraction(fractionImportModel)); }
public async Task <OperationResult> ImportFraction(FractionImportModel fractionsAsJson) { try { { var rawJson = JToken.Parse(fractionsAsJson.ImportList); var rawHeadersJson = JToken.Parse(fractionsAsJson.Headers); var headers = rawHeadersJson; var fractionObjects = rawJson.Skip(1); foreach (var fractionObj in fractionObjects) { var numberExists = int.TryParse(headers[0]?["headerValue"]?.ToString(), out var numberColumn); var fractionNameExists = int.TryParse(headers[1]?["headerValue"]?.ToString(), out var nameColumn); if (numberExists || fractionNameExists) { var existingFraction = FindFraction(numberExists, numberColumn, fractionNameExists, nameColumn, headers, fractionObj); if (existingFraction == null) { var fractionModel = FractionsHelper.ComposeValues(new FractionModel(), headers, fractionObj); var newFraction = new Fraction { ItemNumber = fractionModel.ItemNumber, Name = fractionModel.Name, Description = fractionModel.Description, LocationCode = fractionModel.LocationCode, eFormId = fractionModel.eFormId }; await newFraction.Create(_dbContext); } else { if (existingFraction.WorkflowState == Constants.WorkflowStates.Removed) { var fraction = await _dbContext.Fractions.SingleOrDefaultAsync(x => x.Id == existingFraction.Id); if (fraction != null) { fraction.Name = existingFraction.Name; fraction.Description = existingFraction.Description; fraction.ItemNumber = existingFraction.ItemNumber; fraction.LocationCode = existingFraction.LocationCode; fraction.WorkflowState = Constants.WorkflowStates.Created; await fraction.Update(_dbContext); } } } } } } return(new OperationResult(true, _trashInspectionLocalizationService.GetString("FractionCreated"))); } catch (Exception e) { Trace.TraceError(e.Message); _coreHelper.LogException(e.Message); return(new OperationResult(false, _trashInspectionLocalizationService.GetString("ErrorWhileCreatingFraction"))); } }