コード例 #1
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public T ПолучитьЗначение <T>(object id_node, string attribute, Хранилище хранилище)
 {
     try
     {
         var value = ПолучитьЗначение(id_node, new string[] { attribute }, хранилище, Client.Domain)[attribute];
         if (value.IsСписок)
         {
             return((T)(object)value.Таблица);
         }
         else if (value.Значение is T)
         {
             return((T)value.Значение);
         }
         else
         {
             return((T)Convert.ChangeType(value.Значение, typeof(T)));
         }
     }
     catch (InvalidCastException)
     {
         return(default(T));
     }
     catch (FormatException)
     {
         return(default(T));
     }
     catch (OverflowException)
     {
         return(default(T));
     }
     catch (ArgumentNullException)
     {
         return(default(T));
     }
 }
コード例 #2
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
        public T ПолучитьЗначение <T>(decimal id_node, Хранилище хранилище) where T : Object
        {
            var item = default(T);

            ((Object)item).client    = this;
            ((Object)item).id_node   = id_node;
            ((Object)item).хранилище = хранилище;
            return(item);
        }
コード例 #3
0
        public static string Path(string domain, Хранилище stage, string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(domain + Path(stage) + ":");
            }

            return(domain + Path(stage) + ":" + id + ":");
        }
コード例 #4
0
 public static DataTable Поиск(Query запрос, Хранилище хранилище)
 {
     using (RosService.Client client = new RosService.Client())
     {
         var table = client.Архив.Поиск(запрос, хранилище).Значение;
         foreach (DataColumn item in table.Columns)
         {
             if (!item.ColumnName.Contains('.'))
             {
                 continue;
             }
             item.ColumnName = item.ColumnName.Replace('.', '_');
         }
         return(table);
     }
 }
コード例 #5
0
ファイル: File.cs プロジェクト: rprudnikov-itrf/rosbuh
        public byte[] ПолучитьФайлПолностью(object id_file, Хранилище хранилище, string domain)
        {
            var path           = Path.Combine(System.Configuration.ConfigurationManager.AppSettings["ОперативноеХранилище"], domain);
            var ПолноеИмяФайла = new DataClient().ПолучитьЗначение <string>(id_file, "ПолноеИмяФайла", хранилище, domain);

            if (string.IsNullOrEmpty(ПолноеИмяФайла))
            {
                return(null);
            }

            var filename = Path.Combine(path, ПолноеИмяФайла);

            if (System.IO.File.Exists(filename))
            {
                return(System.IO.File.ReadAllBytes(filename));
            }
            else
            {
                return(null);
            }
        }
コード例 #6
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public T ПолучитьЗначение <T>(string attribute, Хранилище хранилище)
 {
     return(ПолучитьЗначение <T>(0, attribute, хранилище));
 }
コード例 #7
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public int КоличествоФайлов(object id_node, Хранилище хранилище)
 {
     return(КоличествоФайлов((decimal)id_node, хранилище, RosService.Client.Domain));
 }
コード例 #8
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public IEnumerable <ФайлИнформация> СписокФайлов(object id_node, Хранилище хранилище)
 {
     return(_СписокФайлов(id_node, хранилище, RosService.Client.Domain));
 }
コード例 #9
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void СохранитьЗначение(object id_node, Object value, Хранилище хранилище, bool ДобавитьВИсторию)
 {
     СохранитьЗначение(id_node, value.v, хранилище, ДобавитьВИсторию);
 }
コード例 #10
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void СохранитьЗначение(object id_node, Object value, Хранилище хранилище)
 {
     СохранитьЗначение(id_node, value.v, хранилище);
 }
コード例 #11
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public decimal ДобавитьРаздел(object id_parent, Object value, Хранилище хранилище, bool ДобавитьВИсторию)
 {
     return(ДобавитьРаздел(id_parent, value.GetType().Name,
                           RosService.Helper.ConvertHelper.ConvertDataValue(value.v),
                           ДобавитьВИсторию, хранилище, RosService.Client.UserName, RosService.Client.Domain));
 }
コード例 #12
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void УдалитьРаздел(bool УдалитьЗависимыеОбъекты, decimal id_node, Хранилище хранилище)
 {
     УдалитьРаздел(false, УдалитьЗависимыеОбъекты, new decimal[] { id_node }, хранилище, Client.UserName, Client.Domain);
 }
コード例 #13
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void ПереместитьРаздел(decimal id_node, decimal ПереместитьВРаздел, bool ОбновитьИндексы, Хранилище хранилище)
 {
     ПереместитьРаздел(id_node, ПереместитьВРаздел, true, хранилище, Client.Domain);
 }
コード例 #14
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public NodeInfo ПолучитьРаздел(decimal id_node, Хранилище хранилище)
 {
     return(ПолучитьРаздел(id_node, null, хранилище, Client.Domain));
 }
コード例 #15
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void УдалитьПодразделы(decimal id_node, Хранилище хранилище)
 {
     УдалитьПодразделы(false, new decimal[] { id_node }, хранилище, Client.UserName, Client.Domain);
 }
コード例 #16
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void УдалитьРаздел(RosService.Data.Query query, Хранилище хранилище)
 {
     УдалитьРазделПоиск(false, true, query, хранилище, Client.UserName, Client.Domain);
 }
コード例 #17
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public void УдалитьРаздел(bool ВКорзину, bool УдалитьЗависимыеОбъекты, decimal id_node, Хранилище хранилище, string user, string domain)
 {
     УдалитьРаздел(ВКорзину, УдалитьЗависимыеОбъекты, new decimal[] { id_node }, хранилище, user, domain);
 }
コード例 #18
0
ファイル: Cache.cs プロジェクト: rprudnikov-itrf/rosbuh
        public static IEnumerable <КешХешьТаблица> СписокЗависимыхТаблиц(string тип, Хранилище хранилище, string domain)
        {
            try
            {
                var key = domain + ":Z:КешХешьТаблица:";
                //if (MemoryCache.IsMemoryCacheClient)
                //{
                //    var items = null as List<string>;
                //    using (var redis = ClientRedis.Clients.GetReadOnlyClient())
                //    {
                //        items = redis.SearchKeys(key + "*");
                //    }
                //    if (items.Count > 0)
                //    {
                //        var caching = ClientRedis.Clients.GetAll<КешХешьТаблица>(items)
                //            .Where(p => p.Value.Хранилище == хранилище && p.Value.ВремяЖизни == null)
                //            .Select(p => p.Value);

                //        if (caching.Count() == 0)
                //            return new КешХешьТаблица[0];

                //        var tables = caching.Where(p =>
                //                p.IsComplite
                //                && p.ЗависимыеТипы != null
                //                && p.ЗависимыеТипы.Length > 0
                //                && p.ЗависимыеТипы.FirstOrDefault(e => e == тип) != null);
                //        if (tables.Count() == 0)
                //            return new КешХешьТаблица[0];

                //        return tables.ToArray();
                //    }
                //}
                //else
                //{
                var caching = Caching.Cache.Items
                              .AsParallel()
                              .Where(p => p.Value is КешХешьТаблица &&
                                     p.Key != null &&
                                     p.Key.StartsWith(key) &&
                                     ((КешХешьТаблица)p.Value).Хранилище == хранилище &&
                                     ((КешХешьТаблица)p.Value).ВремяЖизни == null)
                              .Select(p => p.Value).Cast <КешХешьТаблица>();
                if (caching.Count() == 0)
                {
                    return(new КешХешьТаблица[0]);
                }

                var tables = caching.Where(p =>
                                           p.IsComplite &&
                                           p.ЗависимыеТипы != null &&
                                           p.ЗависимыеТипы.Length > 0 &&
                                           p.ЗависимыеТипы.FirstOrDefault(e => e == тип) != null);
                if (tables.Count() == 0)
                {
                    return(new КешХешьТаблица[0]);
                }

                return(tables.ToArray());
                //}
            }
            catch (Exception ex)
            {
                ConfigurationClient.WindowsLog("RosService.Caching.СписокЗависимыхТаблиц", string.Empty, domain, тип, ex.ToString());
            }
            return(new КешХешьТаблица[0]);
        }
コード例 #19
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public NodeInfo[] СписокРазделов(decimal id_parent, string Тип, string[] Атрибуты, int limit, Хранилище хранилище)
 {
     return(СписокРазделов(id_parent, Тип, Атрибуты, limit, хранилище, Client.Domain));
 }
コード例 #20
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
        //[Obsolete("Устаревший вызов", false)]
        //public string Отчет(string НазваниеОтчета, Dictionary<string, object> Параметры)
        //{
        //    return Отчет(НазваниеОтчета, Параметры, ФорматОтчета.ПоУмолчанию);
        //}
        //[Obsolete("Устаревший вызов", false)]
        //public string Отчет(string НазваниеОтчета, Dictionary<string, object> Параметры, ФорматОтчета ФорматОтчета)
        //{
        //    var file = Отчет(НазваниеОтчета,
        //        Параметры.Select(p => new Query.Параметр() { Имя = p.Key, Значение = p.Value }).ToArray(),
        //        ФорматОтчета,
        //        Client.UserName, Client.Domain);
        //    if (file != null && file.Stream != null)
        //    {
        //        return Encoding.Default.GetString(file.Stream);
        //    }
        //    return string.Empty;
        //}

        public void ПереместитьРаздел(decimal id_node, decimal ПереместитьВРаздел, Хранилище хранилище, string domain)
        {
            ПереместитьРаздел(id_node, ПереместитьВРаздел, true, хранилище, domain);
        }
コード例 #21
0
ファイル: Data.cs プロジェクト: rprudnikov-itrf/rosbuh
 public NodeInfo ПолучитьРаздел(decimal id_node, string[] Атрибуты, Хранилище хранилище)
 {
     return(ПолучитьРаздел(id_node, Атрибуты, хранилище, Client.Domain));
 }