public IActionResult GetOptions([FromBody] EntityTemplateOptionRequestViewModel model) { IEntityPuller puller = null; IEntityPusher pusher = null; ConnectionModel source = null; ConnectionModel dest = null; using (var connectionRepository = ResolverFactory.Resolve <ConnectionRepository>()) using (var entityRepository = ResolverFactory.Resolve <EntityRepository>()) using (var attributeRepository = ResolverFactory.Resolve <AttributeRepository>()) { if (!string.IsNullOrWhiteSpace(model.SourceConnectionId)) { source = connectionRepository.GetById(model.SourceConnectionId); puller = pullers.FirstOrDefault(p => p.IsImplemented(model.SourceProcessorId, source.ProviderId)); } if (!string.IsNullOrWhiteSpace(model.DestinationConnectionId)) { dest = connectionRepository.GetById(model.DestinationConnectionId); pusher = pushers.FirstOrDefault(p => p.IsImplemented(model.DestinationProcessorId, dest.ProviderId)); } var indexer = indexers.FirstOrDefault(i => i.IsImplemented(model.SourceConnectionId, 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] EntityTemplateOptionRequestViewModel model) { IEntityPuller puller = null; IEntityPusher pusher = null; ConnectionModel source = null; ConnectionModel dest = null; using (var connectionRepository = ResolverFactory.Resolve <ConnectionRepository>()) using (var entityRepository = ResolverFactory.Resolve <EntityRepository>()) using (var attributeRepository = ResolverFactory.Resolve <AttributeRepository>()) { var entity = entityRepository.GetById(id.ToString()); var options = entityRepository.LoadOptions(id.ToString()); var instanceOptions = options.Select(o => new OptionItem { Name = o.Key, Value = o.Value }).ToList(); if (!string.IsNullOrWhiteSpace(model.SourceConnectionId)) { source = connectionRepository.GetById(model.SourceConnectionId); puller = pullers.FirstOrDefault(p => p.IsImplemented(model.SourceProcessorId, source.ProviderId)); puller.SetOptions(instanceOptions); } if (!string.IsNullOrWhiteSpace(model.DestinationConnectionId)) { dest = connectionRepository.GetById(model.DestinationConnectionId); pusher = pushers.FirstOrDefault(p => p.IsImplemented(model.DestinationProcessorId, dest.ProviderId)); pusher.SetOptions(instanceOptions); } var indexer = indexers.FirstOrDefault(i => i.IsImplemented(model.SourceConnectionId, 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>(), })); } }