public Plan GetPlan(string planUniqueName)
        {
            PlanContainer      planContainer = GetPlanContainer(planUniqueName, returnTail: true, planItem: out PlanItem planItem);
            IPlanExecuteReader reader        = GetPlanExecuteReader(planContainer);

            return(reader.GetPlan(planItem.PlanFile));
        }
        public IEnumerable <string> GetPlanList(string filter = null, bool isRegexFilter = true)
        {
            PlanContainer      planContainer = GetPlanContainer(filter, returnTail: true);
            IPlanExecuteReader reader        = GetPlanExecuteReader(planContainer);

            return(reader.GetPlanList(planContainer.PlansUri, isRegexFilter));
        }
Exemple #3
0
    public Dictionary <string, string> Configure(ISynapseDalConfig conifg)
    {
        ComponentizedDalConfig cdc = null;

        if (conifg != null)
        {
            string s = YamlHelpers.Serialize(conifg.Config);
            cdc = YamlHelpers.Deserialize <ComponentizedDalConfig>(s);
        }
        else
        {
            cdc = (ComponentizedDalConfig)GetDefaultConfig();
        }

        Dictionary <string, string> secProps = new Dictionary <string, string>();
        ComponentizedDalItem        cdi      = cdc.DalComponents.SingleOrDefault(r => r.Key.Equals(cdc.SecurityProviderKey, StringComparison.OrdinalIgnoreCase));

        if (cdi != null)
        {
            _planSecurityProvider = AssemblyLoader.Load <IPlanSecurityProvider>(cdi.Type, string.Empty);
            secProps = _planSecurityProvider.Configure(new ConfigWrapper {
                Config = cdi.Config, Type = cdi.Type
            });
        }
        else
        {
            throw new TypeLoadException($"Could not load {cdi.Key}/{cdi.Type} for {nameof( IPlanSecurityProvider )}");
        }

        Dictionary <string, string> execProps = new Dictionary <string, string>();

        cdi = cdc.DalComponents.SingleOrDefault(r => r.Key.Equals(cdc.ExecuteReaderKey, StringComparison.OrdinalIgnoreCase));
        if (cdi != null)
        {
            _planExecuteReader = AssemblyLoader.Load <IPlanExecuteReader>(cdi.Type, string.Empty);
            execProps          = _planExecuteReader.Configure(new ConfigWrapper {
                Config = cdi.Config, Type = cdi.Type
            });
        }
        else
        {
            throw new TypeLoadException($"Could not load {cdi.Key}/{cdi.Type} for {nameof( IPlanExecuteReader )}");
        }

        Dictionary <string, string> histProps = new Dictionary <string, string>();

        cdi = cdc.DalComponents.SingleOrDefault(r => r.Key.Equals(cdc.HistoryWriterKey, StringComparison.OrdinalIgnoreCase));
        if (cdi != null)
        {
            _planHistoryWriter = AssemblyLoader.Load <IPlanHistoryWriter>(cdi.Type, string.Empty);
            histProps          = _planHistoryWriter.Configure(new ConfigWrapper {
                Config = cdi.Config, Type = cdi.Type
            });
        }
        else
        {
            throw new TypeLoadException($"Could not load {cdi.Key}/{cdi.Type} for {nameof( IPlanHistoryWriter )}");
        }


        string name = nameof(ComponentizedDal);
        Dictionary <string, string> props = new Dictionary <string, string>
        {
            { $"{name} ExecuteReaderKey", cdc.ExecuteReaderKey },
            { $"{name} HistoryWriterKey", cdc.HistoryWriterKey },
            { $"{name} SecurityProviderKey", cdc.SecurityProviderKey }
        };

        props.AddRange(execProps);
        props.AddRange(histProps);
        props.AddRange(secProps);
        return(props);
    }