Ejemplo n.º 1
0
        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));
 }