コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public OperationResult <ModelDataSource> Create(ModelDataSource ds)
        {
            OperationResult <ModelDataSource> res;

            try
            {
                if (ds.IsDefault)
                {
                    ResetIsDefault();
                }

                var entity = ds
                             .ToEntity()
                             .IncludeActiveOrgId(DataContext);

                DataContext.DataSources.Add(entity);

                DataContext.SaveChanges();

                var model = entity
                            .UpdateId(ds)
                            .ToModel();

                res = OperationResult <ModelDataSource> .Create(model);
            }
            catch (Exception e)
            {
                res = OperationResult <ModelDataSource> .Create(ErrorCode.BadCreateDataSource, e);
            }

            return(res);
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        private string CompileQuery(EvaluationContext context, ModelDataSource ds)
        {
            var query = ds
                        .QueryBuilder
                        .ParseSingle(JObject.Parse(Query.Body));

            var textQuery = query.Compile(Query.Range);

            var(From, To) = Query.RangeAsEpoch;

            context.Log($"Condition [{Index}]: Query", new
            {
                From,
                To,
                Query = new
                {
                    DataSource = new
                    {
                        ds.Id,
                        ds.Name
                    },
                    query.RefId,
                    Model = query,
                    Text  = textQuery
                }
            });

            return(textQuery);
        }
コード例 #3
0
ファイル: DataSource.cs プロジェクト: hpavolot/grafana-ng
        /// <summary>
        ///
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public ModelDataSource ToModel()
        {
            ModelDataSource ds = null;

            try
            {
                var target = typeof(ModelDataSource)
                             .Assembly
                             .FindTypesWithCustomAttribute <DataSourceTypeAttribute>()
                             .FirstOrDefault(x => x.Item2.Type == Type);

                if (null == target)
                {
                    return(ds);                    // check for plugins in neighbour dll's: todo
                }
                var type = target.Item1;

                ds = JsonConvert.DeserializeObject(JsonData, type) as ModelDataSource;

                if (null == ds)
                {
                    return(ds);
                }

                ds.Id        = Id;
                ds.IsDefault = IsDefault;
                ds.Name      = Name;
                ds.OrgId     = OrgId;
                ds.Url       = Url;
            }
            catch
            { }

            return(ds);
        }
コード例 #4
0
ファイル: DataSource.cs プロジェクト: hpavolot/grafana-ng
        /// <summary>
        ///
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public static ModelDataSource IncludePluginInfo(this ModelDataSource m, PluginManager pm)
        {
            var plugin = pm?[m.Type];

            if (null != plugin)
            {
                m.TypeLogoUrl = $"{m.Type}/{plugin.Info.Logos.Large}";
            }

            return(m);
        }
コード例 #5
0
ファイル: DataSource.cs プロジェクト: hpavolot/grafana-ng
        /// <summary>
        ///
        /// </summary>
        public void Update(ModelDataSource ds)
        {
            Name      = ds.Name;
            Url       = ds.Url;
            IsDefault = ds.IsDefault;

            JsonData = JsonConvert.SerializeObject(ds, new JsonSerializerSettings()
            {
                ContractResolver = new DataSourcePropertiesJsonResolver(true)
            });
        }
コード例 #6
0
ファイル: DataSource.cs プロジェクト: hpavolot/grafana-ng
        /// <summary>
        ///
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public static DataSource ToEntity(this ModelDataSource ds)
        {
            var entity = new EntityDataSource()
            {
                Id        = ds.Id,
                OrgId     = ds.OrgId,
                IsDefault = ds.IsDefault,
                Name      = ds.Name,
                Type      = ds.Type.ToString(),
                Url       = ds.Url
            };

            entity.JsonData = JsonConvert.SerializeObject(ds, new JsonSerializerSettings()
            {
                ContractResolver = new DataSourcePropertiesJsonResolver(true)
            });

            return(entity);
        }
コード例 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public OperationResult <ModelDataSource> Update(ModelDataSource ds)
        {
            OperationResult <ModelDataSource> res;

            try
            {
                if (ds.IsDefault)
                {
                    ResetIsDefault();
                }

                var entity = DataContext
                             .DataSources
                             .ForActiveOrg()
                             .FirstOrDefault(x => x.Id == ds.Id);

                if (null == entity)
                {
                    return(OperationResult <ModelDataSource> .Create(ErrorCode.BadGetDataSource));
                }

                entity.Update(ds);

                DataContext.DataSources.Update(entity);

                DataContext.SaveChanges();

                var model = entity
                            .UpdateId(ds)
                            .ToModel();

                res = OperationResult <ModelDataSource> .Create(model);
            }
            catch (Exception e)
            {
                res = OperationResult <ModelDataSource> .Create(ErrorCode.BadUpdateDataSource, e);
            }

            return(res);
        }