Example #1
0
        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>(),
                        }));
                    }
        }
Example #2
0
        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>(),
                        }));
                    }
        }