public IActionResult GetOptions([FromBody] AttributeTemplateOptionRequestViewModel model) { var entityModel = entityRepository.GetById(model.EntityId); ConnectionModel sourceConnection = null; ConnectionModel destinationConnection = null; IAttributePuller puller = null; IAttributePusher pusher = null; IIndexer indexer; if (!string.IsNullOrWhiteSpace(model.SourceConnectionId)) { sourceConnection = connectionRepository.GetById(model.SourceConnectionId); puller = pullers.FirstOrDefault(p => p.IsImplemented(model.SourceProcessorId, entityModel.SourceProcessorId, sourceConnection.ProviderId)); } if (!string.IsNullOrWhiteSpace(model.DestinationConnectionId)) { destinationConnection = connectionRepository.GetById(model.DestinationConnectionId); pusher = pushers.FirstOrDefault(p => p.IsImplemented(model.DestinationProcessorId, entityModel.DestinationProcessorId, destinationConnection.ProviderId)); } indexer = indexers.FirstOrDefault(i => i.IsImplemented(model.SourceConnectionId, entityModel.SourceConnectionId.ToString(), model.SourceProcessorId)); return(Ok(new { Puller = puller?.Options ?? new List <OptionItem>(), Indexer = indexer?.Options ?? new List <OptionItem>(), Pusher = pusher?.Options ?? new List <OptionItem>(), })); }
public IActionResult GetOptions(Guid id, [FromBody] AttributeTemplateOptionRequestViewModel model) { using (var connectionRepository = ResolverFactory.Resolve <ConnectionRepository>()) using (var entityRepository = ResolverFactory.Resolve <EntityRepository>()) using (var attributeRepository = ResolverFactory.Resolve <AttributeRepository>()) { var attribute = attributeRepository.GetById(id.ToString()); var entityModel = entityRepository.GetById(model.EntityId); var options = attributeRepository.LoadOptions(id.ToString()); var instanceOptions = options.Select(o => new OptionItem { Name = o.Key, Value = o.Value }).ToList(); ConnectionModel sourceConnection = null; ConnectionModel destinationConnection = null; IAttributePuller puller = null; IAttributePusher pusher = null; IIndexer indexer; if (!string.IsNullOrWhiteSpace(model.SourceConnectionId)) { sourceConnection = connectionRepository.GetById(model.SourceConnectionId); puller = pullers.FirstOrDefault(p => p.IsImplemented(model.SourceProcessorId, entityModel.SourceProcessorId, sourceConnection.ProviderId)); puller.SetOptions(instanceOptions); } if (!string.IsNullOrWhiteSpace(model.DestinationConnectionId)) { destinationConnection = connectionRepository.GetById(model.DestinationConnectionId); pusher = pushers.FirstOrDefault(p => p.IsImplemented(model.DestinationProcessorId, entityModel.DestinationProcessorId, destinationConnection.ProviderId)); pusher.SetOptions(instanceOptions); } indexer = indexers.FirstOrDefault(i => i.IsImplemented(model.SourceConnectionId, entityModel.SourceConnectionId.ToString(), model.SourceProcessorId)); indexer?.SetOptions(instanceOptions); return(Ok(new { Puller = puller?.Options ?? new List <OptionItem>(), Indexer = indexer?.Options ?? new List <OptionItem>(), Pusher = pusher?.Options ?? new List <OptionItem>(), })); } }