Beispiel #1
0
        public DataTableResponseBase <Item> CardapioMesaDataTable(DataTableBase <Item> dataTableBase, Guid FkEmpresa, EnumTipoItem tipo)
        {
            var query = _context.Set <Item>()
                        .Where(x => x.Empresa.Id == FkEmpresa).AsQueryable();


            if (dataTableBase.Filter != null && dataTableBase.Filter != string.Empty)
            {
                query = query.Where(e => e.Nome.Contains(dataTableBase.Filter) || e.Descricao.Contains(dataTableBase.Filter));
            }

            if (tipo.IsEnumValid())
            {
                query = query.Where(x => x.Tipo == tipo);
            }
            //if (tipo.IsEnumValid())
            //    query = query.Where(x => x.Tipo == tipo);

            int count = query.Count();

            query = query.OrderBy(x => x.Nome);
            query = query.Skip(dataTableBase.PageNumber * dataTableBase.PageView).Take(dataTableBase.PageView);
            DataTableResponseBase <Item> resp = new DataTableResponseBase <Item>(count, dataTableBase.PageView, dataTableBase.PageNumber, query.ToList());

            return(resp);
        }
        public static void LoadDataTable(this DataTableComponent dataTableComponent, string dataTableName, string dataTableAssetName, object userData)
        {
            if (string.IsNullOrEmpty(dataTableName))
            {
                Log.Warning("Data table name is invalid.");
                return;
            }

            string[] splitedNames = dataTableName.Split('_');
            if (splitedNames.Length > 2)
            {
                Log.Warning("Data table name is invalid.");
                return;
            }

            string dataRowClassName = DataRowClassPrefixName + splitedNames[0];
            Type   dataRowType      = Type.GetType(dataRowClassName);

            if (dataRowType == null)
            {
                Log.Warning("Can not get data row type with class name '{0}'.", dataRowClassName);
                return;
            }

            string        name      = splitedNames.Length > 1 ? splitedNames[1] : null;
            DataTableBase dataTable = dataTableComponent.CreateDataTable(dataRowType, name);

            dataTable.ReadData(dataTableAssetName, Constant.AssetPriority.DataTableAsset, userData);
        }
Beispiel #3
0
        /// <summary>
        /// 解析数据表。
        /// </summary>
        /// <param name="dataTable">数据表。</param>
        /// <param name="dataTableString">要解析的数据表字符串。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>是否解析数据表成功。</returns>
        public override bool ParseData(DataTableBase dataTable, string dataTableString, object userData)
        {
            try
            {
                int    position      = 0;
                string dataRowString = null;
                while ((dataRowString = dataTableString.ReadLine(ref position)) != null)
                {
                    if (dataRowString[0] == '#')
                    {
                        continue;
                    }

                    if (!dataTable.AddDataRow(dataRowString, userData))
                    {
                        Log.Warning("Can not parse data row string '{0}'.", dataRowString);
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception exception)
            {
                Log.Warning("Can not parse data table string with exception '{0}'.", exception.ToString());
                return(false);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 解析数据表。
        /// </summary>
        /// <param name="dataTable">数据表。</param>
        /// <param name="dataTableBytes">要解析的数据表二进制流。</param>
        /// <param name="startIndex">数据表二进制流的起始位置。</param>
        /// <param name="length">数据表二进制流的长度。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>是否解析数据表成功。</returns>
        public override bool ParseData(DataTableBase dataTable, byte[] dataTableBytes, int startIndex, int length, object userData)
        {
            try
            {
                using (MemoryStream memoryStream = new MemoryStream(dataTableBytes, startIndex, length, false))
                {
                    using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
                    {
                        while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length)
                        {
                            int dataRowBytesLength = binaryReader.Read7BitEncodedInt32();
                            if (!dataTable.AddDataRow(dataTableBytes, (int)binaryReader.BaseStream.Position, dataRowBytesLength, userData))
                            {
                                Log.Warning("Can not parse data row bytes.");
                                return(false);
                            }

                            binaryReader.BaseStream.Position += dataRowBytesLength;
                        }
                    }
                }

                return(true);
            }
            catch (Exception exception)
            {
                Log.Warning("Can not parse dictionary bytes with exception '{0}'.", exception.ToString());
                return(false);
            }
        }
Beispiel #5
0
 /// <summary>
 /// 读取数据表。
 /// </summary>
 /// <param name="dataTable">数据表。</param>
 /// <param name="dataTableAssetName">数据表资源名称。</param>
 /// <param name="dataTableBytes">数据表二进制流。</param>
 /// <param name="startIndex">数据表二进制流的起始位置。</param>
 /// <param name="length">数据表二进制流的长度。</param>
 /// <param name="userData">用户自定义数据。</param>
 /// <returns>是否读取数据表成功。</returns>
 public override bool ReadData(DataTableBase dataTable, string dataTableAssetName, byte[] dataTableBytes, int startIndex, int length, object userData)
 {
     if (dataTableAssetName.EndsWith(BytesAssetExtension, StringComparison.Ordinal))
     {
         return(dataTable.ParseData(dataTableBytes, startIndex, length, userData));
     }
     else
     {
         return(dataTable.ParseData(Utility.Converter.GetString(dataTableBytes, startIndex, length), userData));
     }
 }
Beispiel #6
0
        public DataTableResponseBase <Avaliacao> AvaliacoesEmpresaDataTable(DataTableBase <Avaliacao> dataTableBase, Guid FkEmpresa)
        {
            {
                var query = _context.Set <Avaliacao>()

                            .Include(x => x.Usuario)
                            .Where(x => x.Empresa.Id == FkEmpresa).AsQueryable();


                int count = query.Count();
                query = query.OrderBy(x => x.DataCriacao);
                query = query.Skip(dataTableBase.PageNumber * dataTableBase.PageView).Take(dataTableBase.PageView);
                DataTableResponseBase <Avaliacao> resp = new DataTableResponseBase <Avaliacao>(count, dataTableBase.PageView, dataTableBase.PageNumber, query.ToList());
                return(resp);
            }
        }
Beispiel #7
0
        /// <summary>
        /// 读取数据表。
        /// </summary>
        /// <param name="dataTable">数据表。</param>
        /// <param name="dataTableAssetName">数据表资源名称。</param>
        /// <param name="dataTableAsset">数据表资源。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>是否读取数据表成功。</returns>
        public override bool ReadData(DataTableBase dataTable, string dataTableAssetName, object dataTableAsset, object userData)
        {
            TextAsset dataTableTextAsset = dataTableAsset as TextAsset;

            if (dataTableTextAsset != null)
            {
                if (dataTableAssetName.EndsWith(BytesAssetExtension, StringComparison.Ordinal))
                {
                    return(dataTable.ParseData(dataTableTextAsset.bytes, userData));
                }
                else
                {
                    return(dataTable.ParseData(dataTableTextAsset.text, userData));
                }
            }

            Log.Warning("Data table asset '{0}' is invalid.", dataTableAssetName);
            return(false);
        }
        /// <summary>
        /// 创建数据表。
        /// </summary>
        /// <param name="dataRowType">数据表行的类型。</param>
        /// <param name="name">数据表名称。</param>
        /// <returns>要创建的数据表。</returns>
        public DataTableBase CreateDataTable(Type dataRowType, string name)
        {
            DataTableBase dataTable = m_DataTableManager.CreateDataTable(dataRowType, name);

            dataTable.ReadDataSuccess += OnReadDataSuccess;
            dataTable.ReadDataFailure += OnReadDataFailure;

            if (m_EnableLoadDataTableUpdateEvent)
            {
                dataTable.ReadDataUpdate += OnReadDataUpdate;
            }

            if (m_EnableLoadDataTableDependencyAssetEvent)
            {
                dataTable.ReadDataDependencyAsset += OnReadDataDependencyAsset;
            }

            return(dataTable);
        }
        /// <summary>
        /// 创建数据表。
        /// </summary>
        /// <typeparam name="T">数据表行的类型。</typeparam>
        /// <param name="name">数据表名称。</param>
        /// <returns>要创建的数据表。</returns>
        public IDataTable <T> CreateDataTable <T>(string name) where T : class, IDataRow, new()
        {
            IDataTable <T> dataTable     = m_DataTableManager.CreateDataTable <T>(name);
            DataTableBase  dataTableBase = (DataTableBase)dataTable;

            dataTableBase.ReadDataSuccess += OnReadDataSuccess;
            dataTableBase.ReadDataFailure += OnReadDataFailure;

            if (m_EnableLoadDataTableUpdateEvent)
            {
                dataTableBase.ReadDataUpdate += OnReadDataUpdate;
            }

            if (m_EnableLoadDataTableDependencyAssetEvent)
            {
                dataTableBase.ReadDataDependencyAsset += OnReadDataDependencyAsset;
            }

            return(dataTable);
        }
Beispiel #10
0
 protected void ApplyFilter(object value, DataTableBase <WorkitemInformationViewModel> dt)
 {
     if (value == null || string.IsNullOrEmpty(value.ToString()))
     {
         // TODO: Reset filter?
         dt.Filter(null);
     }
     else
     {
         var isGuid = Guid.TryParse(value.ToString(), out var id);
         if (isGuid)
         {
             var members = Settings.SubTeams.SingleOrDefault(s => s.Id == id)?.Members;
             dt.Filter(i => members != null && members.Any(m => string.Equals(i.AssignedTo.Email, m)));
         }
         else
         {
             dt.Filter(i => string.Equals(i.AssignedTo.Email, value));
         }
     }
 }
        public DataTableResponseBase <Empresa> EmpresasDataTable(DataTableBase <Empresa> dataTableBase, EnumCategoria categoria)
        {
            var query = _context.Set <Empresa>()
                        .Include(x => x.Mesas)
                        .Where(x => x.Ativo == true).AsQueryable();

            if (dataTableBase.Filter != null && dataTableBase.Filter != string.Empty)
            {
                query = query.Where(e => e.Fantasia.Contains(dataTableBase.Filter) || e.RazaoSocial.Contains(dataTableBase.Filter));
            }

            if (categoria.IsEnumValid())
            {
                query = query.Where(x => x.Categoria == categoria);
            }

            int count = query.Count();

            query = query.OrderBy(x => x.DataCadastro);
            query = query.Skip(dataTableBase.PageNumber * dataTableBase.PageView).Take(dataTableBase.PageView);
            DataTableResponseBase <Empresa> resp = new DataTableResponseBase <Empresa>(count, dataTableBase.PageView, dataTableBase.PageNumber, query.ToList());

            return(resp);
        }
Beispiel #12
0
 private void DrawDataTable(DataTableBase dataTable)
 {
     EditorGUILayout.LabelField(Utility.Text.GetFullName(dataTable.Type, dataTable.Name), string.Format("{0} Rows", dataTable.Count.ToString()));
 }
Beispiel #13
0
 /// <summary>
 /// 释放数据表资源。
 /// </summary>
 /// <param name="dataTable">数据表。</param>
 /// <param name="dataTableAsset">要释放的数据表资源。</param>
 public override void ReleaseDataAsset(DataTableBase dataTable, object dataTableAsset)
 {
     m_ResourceComponent.UnloadAsset(dataTableAsset);
 }
 /// <summary>
 /// 销毁数据表。
 /// </summary>
 /// <param name="dataTable">要销毁的数据表。</param>
 /// <returns>是否销毁数据表成功。</returns>
 public bool DestroyDataTable(DataTableBase dataTable)
 {
     return(m_DataTableManager.DestroyDataTable(dataTable));
 }
Beispiel #15
0
 private void DrawDataTable(DataTableBase dataTable)
 {
     EditorGUILayout.LabelField(dataTable.FullName, Utility.Text.Format("{0} Rows", dataTable.Count.ToString()));
 }