public TableCreateQuery(DbQuery dbTerm, string table, string datacenter, string primaryKey, double? cacheSize)
 {
     this.dbTerm = dbTerm;
     this.table = table;
     this.datacenter = datacenter;
     this.primaryKey = primaryKey;
     this.cacheSize = cacheSize;
 }
        public override void DeleteByQuery(DbQuery query, IStructureSchema structureSchema)
        {
            Ensure.That(structureSchema, "structureSchema").IsNotNull();

            var sql = SqlStatements.GetSql("DeleteByQuery").Inject(
                structureSchema.GetStructureTableName(),
                query.Sql);

            using (var cmd = CreateCommand(sql, query.Parameters.ToArray()))
            {
                cmd.ExecuteNonQuery();
            }
        }
Beispiel #3
0
        public EntityClassType GetWithInclude(Expression <Func <EntityClassType, bool> > predicate, params Expression <Func <EntityClassType, object> >[] includes)
        {
            DbQuery <EntityClassType> query = privatInclude(includes);

            return(query.Single(predicate));
        }
        public static string ToTraceString <T>(this DbQuery <T> query)
        {
            ObjectQuery <T> objectQuery = query.ToObjectQuery();

            return(objectQuery.ToTraceStringWithParameters());
        }
Beispiel #5
0
        public static List <ImpRegisterEntity> GetImportRegisterHeader(int lineId, int locId, Int64 voyageId, Int64 vesselId)
        {
            string strExecution = "[report].[uspGetImportRegisterHeader]";
            List <ImpRegisterEntity> lstEntity = new List <ImpRegisterEntity>();
            ImpRegisterEntity        entity    = null;

            using (DbQuery oDq = new DbQuery(strExecution))
            {
                oDq.AddIntegerParam("@NVOCCId", lineId);
                oDq.AddIntegerParam("@LocId", locId);
                oDq.AddBigIntegerParam("@VoyageId", voyageId);
                oDq.AddBigIntegerParam("@VesselId", vesselId);

                DataTableReader reader = oDq.GetTableReader();

                while (reader.Read())
                {
                    entity = new ImpRegisterEntity();

                    entity.Location   = Convert.ToString(reader["Location"]);
                    entity.Line       = Convert.ToString(reader["Line"]);
                    entity.ItemLineNo = Convert.ToString(reader["ItemLineNo"]);
                    entity.BLNo       = Convert.ToString(reader["ImpLineBLNo"]);
                    entity.BLDate     = Convert.ToDateTime(reader["ImpLineBLDate"]);

                    //if (reader["ImpLineBLDate"] != DBNull.Value) entity.BLDate = Convert.ToDateTime(reader["ImpLineBLDate"]);
                    if (reader["NoofTEU"] != DBNull.Value)
                    {
                        entity.TEU = Convert.ToInt32(reader["NoofTEU"]);
                    }
                    if (reader["NoofFEU"] != DBNull.Value)
                    {
                        entity.FEU = Convert.ToInt32(reader["NoofFEU"]);
                    }
                    entity.PortLoading      = Convert.ToString(reader["PortLoading"]);
                    entity.PortDischarge    = Convert.ToString(reader["PortDischarge"]);
                    entity.FinalDestination = Convert.ToString(reader["FinalDestination"]);
                    if (reader["DischargeDate"] != DBNull.Value)
                    {
                        entity.DischargeDate = Convert.ToDateTime(reader["DischargeDate"]);
                    }
                    //entity.DischargeDate = Convert.ToString(reader["DischargeDate"]);
                    entity.IGMNo = Convert.ToString(reader["IGMNo"]);
                    if (reader["GrossWeight"] != DBNull.Value)
                    {
                        entity.GrossWeight = Convert.ToDecimal(reader["GrossWeight"]);
                    }
                    entity.GoodsDescription = Convert.ToString(reader["GoodDescription"]);
                    if (reader["NumberPackage"] != DBNull.Value)
                    {
                        entity.NumberPackage = Convert.ToInt64(reader["NumberPackage"]);
                    }
                    entity.PackageUnit = Convert.ToString(reader["PackageUnit"]);
                    if (reader["RsStatus"] != DBNull.Value)
                    {
                        entity.Stat = Convert.ToString(reader["RsStatus"]);
                    }
                    if (reader["PGR_FreeDays"] != DBNull.Value)
                    {
                        entity.PGRFreeDays = Convert.ToInt32(reader["PGR_FreeDays"]);
                    }
                    entity.AddressCFS = Convert.ToString(reader["AddressCFS"]);
                    //entity.ICD = Convert.ToString(reader["ICD"]);
                    entity.TPBondNo               = Convert.ToString(reader["TPBondNo"]);
                    entity.CACode                 = Convert.ToString(reader["CACode"]);
                    entity.CargoMovement          = Convert.ToString(reader["CargoMovement"]);
                    entity.ConsigneeInformation   = Convert.ToString(reader["ConsigneeInformation"]);
                    entity.NotifyPartyInformation = Convert.ToString(reader["NotifyPartyInformation"]);
                    entity.MarksNumbers           = Convert.ToString(reader["MarksNumbers"]);

                    lstEntity.Add(entity);
                }
            }


            return(lstEntity);
        }
 internal DbQueryProxy(DbQuery <TResult> entry)
 {
     _DbQuery = entry;
 }
Beispiel #7
0
 Task <IAsyncDbExecuteContext> IAsyncDbExecutor.ExecuteAsync(DbQuery query, CancellationToken token)
 {
     return(Task.FromResult((IAsyncDbExecuteContext) new AsyncDbExecuteContextWrapper(Executor.Execute(query))));
 }
Beispiel #8
0
        public List <T_CKD> GetPageInfo <S>(Expression <Func <T_CKD, bool> > where, Func <T_CKD, S> order, bool desc, int pageIndex, int pageSize, int cpID, int scqyId, int ghId, out int pageCount, out int totalRecord)
        {
            totalRecord = 0;
            pageCount   = 0;
            List <T_CKD> list = new List <T_CKD>();

            using (MedicalApparatusManageEntities hContext1 = new MedicalApparatusManageEntities())
            {
                try
                {
                    Expression <Func <T_CKMX, bool> > whereCKMX = PredicateBuilder.True <T_CKMX>();
                    var isContain = false;
                    if (cpID != 0)
                    {
                        whereCKMX = whereCKMX.And(p => p.CPID == cpID);
                        isContain = true;
                    }
                    if (scqyId != 0)
                    {
                        var dbcp    = hContext1.Set <T_YLCP>().Where(p => p.CPSCQYID == scqyId);
                        var lstCPID = dbcp.Select(p => p.CPID);
                        whereCKMX = whereCKMX.And(p => lstCPID.Contains(p.CPID));
                        isContain = true;
                    }
                    if (isContain)
                    {
                        var dbchild = hContext1.Set <T_CKMX>().Where(whereCKMX.Compile());
                        var lst     = dbchild.Select(p => p.CKDID);
                        if (lst != null)
                        {
                            where = where.And(p => lst.Contains(p.CKID));
                        }
                    }
                    if (ghId != 0)
                    {
                        where = where.And(p => p.T_XSD != null && p.T_XSD.KHID == ghId);
                    }


                    DbSet <T_CKD>   db  = hContext1.Set <T_CKD>();
                    DbQuery <T_CKD> dbq = db.Include("T_XSD");
                    totalRecord = db.Where(where.Compile()).Count();
                    if (totalRecord > 0)
                    {
                        pageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(totalRecord / pageSize))) + 1;
                        if (desc)
                        {
                            list = dbq.Where(where.Compile()).OrderByDescending <T_CKD, S>(order).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
                        }
                        else
                        {
                            list = dbq.Where(where.Compile()).OrderBy <T_CKD, S>(order).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
                        }
                    }
                }
                catch (Exception ex)
                {
                    return(null);
                }
                return(list);
            }
        }
        public static DbQuery <TResult> IncludeAsDbQuery <TResult, TObject>(this DbQuery <TResult> query, Expression <Func <TObject, object> > memberExpression)
        {
            string includePath = GetPath <TResult, TObject>(memberExpression);

            return(query.Include(includePath));
        }
        public override int RowCountByQuery(IStructureSchema structureSchema, DbQuery query)
        {
            Ensure.That(structureSchema, "structureSchema").IsNotNull();

            var sql = SqlStatements.GetSql("RowCountByQuery").Inject(structureSchema.GetStructureTableName(), query.Sql);

            return ExecuteScalar<int>(sql, query.Parameters.ToArray());
        }
 /// <summary>
 /// Creates a new <see cref="DbInExpression"/>.
 /// </summary>
 /// <param name="target">The target <see cref="DbExpression"/>.</param>
 /// <param name="selectQuery">A sub query that has a result set of one column.</param>
 /// <returns>A <see cref="DbInExpression"/> instance.</returns>
 public DbInExpression In(DbExpression target, DbQuery<DbSelectExpression> selectQuery)
 {
     var inExpression = In(target, (DbExpression)selectQuery);
     return inExpression;
 }
 /// <summary>
 /// Creates a new <see cref="DbExistsExpression"/>.
 /// </summary>
 /// <param name="subSelectQuery">The <see cref="DbQuery{TQueryExpression}"/> that is used as the sub query.</param>
 /// <returns>A <see cref="DbExistsExpression"/> instance.</returns>
 public DbExistsExpression Exists(DbQuery<DbSelectExpression> subSelectQuery)
 {
     return new DbExistsExpression(subSelectQuery.QueryExpression);
 }
 /// <summary>
 /// Translates the <paramref name="query"/> into a string representation.
 /// </summary>
 /// <param name="query">The <see cref="DbInExpression"/> to translate.</param>
 /// <returns><see cref="DbExpression"/></returns>
 protected virtual DbExpression VisitQueryExpression(DbQuery query)
 {
     return Visit(query.GetQueryExpression());
 }
Beispiel #14
0
 /// <summary>
 /// Construction
 /// </summary>
 /// <param name="context">DbContext</param>
 public Repository(DbContext context) {
     _context = context;
     _dbset = context.Set<TEntity>();
     _dbquery = _dbset;
 }
Beispiel #15
0
 public TableDropQuery(DbQuery dbTerm, string table)
 {
     this.dbTerm = dbTerm;
     this.table = table;
 }
Beispiel #16
0
        /// <summary>
        /// internal Repository constructor
        /// </summary>
        /// <param name="context">DbContext</param>
        /// <param name="dbquery">db query generated from other db contexts or repositories</param>
        protected Repository(DbContext context, IQueryable<TEntity> dbquery) {
#endif
            _context = context;
            _dbset = context.Set<TEntity>();
            _dbquery = dbquery;
        }
        /// <summary>
        /// Executes a database query.
        /// </summary>
        /// <param name="server">The database server.</param>
        /// <param name="query">The database query.</param>
        protected override void DatabaseQuery(DbServer server, DbQuery query)
        {
            // If the server is not an SQL server, do nothing.
            if (!(server is DbServerSql)) return;
            // If the query is not an SQL query, do nothing.
            if (!(query is DbQuerySql)) return;

            // Get the SQL server.
            DbServerSql serverSql = server as DbServerSql;
            // Get the SQL query.
            DbQuerySql querySql = query as DbQuerySql;

            // If the database server is not connected.
            if (serverSql.State != DbServerSql.ServerState.Connected)
            {
                // Connect to the database and pass the query as the user state.
                this.DatabaseConnect(serverSql, querySql);
                // Return.
                return;
            }

            // Else, create a database command that selects all items for the specified table.

            // Show a connecting message.
            this.ShowMessage(Resources.DatabaseBusy_48, "Database", querySql.MessageStart);
            // Create a new database command.
            DbCommand command = serverSql.CreateCommand(querySql);
            // Call the query start method.
            this.OnQueryStarted(serverSql, querySql, command);
            try
            {
                // Execute the command asynchronously.
                command.ExecuteReader((DbAsyncResult commandResult, DbReader reader) =>
                {
                    try
                    {
                        // If the result has an exception, throw the exception.
                        if (commandResult.Exception != null) throw commandResult.Exception;
                        // Read the data asynchronously for the specified query.
                        reader.Read(querySql, null, (DbAsyncResult readerResult, DbData result) =>
                        {
                            try
                            {
                                // Throw a reader exception, if any.
                                if (readerResult.Exception != null)
                                {
                                    reader.Close();
                                    throw readerResult.Exception;
                                }
                                // Get the number of records read.
                                int recordsAffected = reader.RecordsAffected;
                                // Close the reader.
                                reader.Close();
                                // Dispose and reset the command.
                                command.Dispose();
                                // Show a success message.
                                this.ShowMessage(Resources.DatabaseSuccess_48, "Database", querySql.MessageFinishSuccess, false);
                                // Wait.
                                Thread.Sleep(ApplicationConfig.MessageCloseDelay);
                                // Hide the message.
                                this.HideMessage();
                                // Call the completion method, depending on the type of data.
                                if (querySql.Table != null)
                                    this.DatabaseQuerySuccess(serverSql, querySql, result as DbDataObject, recordsAffected);
                                else
                                    this.DatabaseQuerySuccess(serverSql, querySql, result as DbDataRaw, recordsAffected);
                            }
                            catch (Exception exception)
                            {
                                // Dispose the command.
                                command.Dispose();
                                // Show an error message.
                                this.ShowMessage(Resources.DatabaseError_48, "Database", querySql.MessageFinishFail, false);
                                // Log the event.
                                serverSql.LogEvent(
                                    LogEventLevel.Important,
                                    LogEventType.Error,
                                    "Executing query on the database server \'{0}\' failed. {1}",
                                    new object[] { serverSql.Name, exception.Message },
                                    exception);
                                // Wait.
                                Thread.Sleep(ApplicationConfig.MessageCloseDelay);
                                // Hide the message.
                                this.HideMessage();
                                // Call the completion method.
                                this.DatabaseQueryFail(serverSql, querySql, exception);
                            }
                        }, null);
                    }
                    catch (DbException exception)
                    {
                        // Dispose the command.
                        command.Dispose();
                        // Show an error message.
                        this.ShowMessage(Resources.DatabaseError_48, "Database", "{0} {1}".FormatWith(querySql.MessageFinishFail, exception.InnerException.Message), false);
                        // Log the event.
                        serverSql.LogEvent(
                            LogEventLevel.Important,
                            LogEventType.Error,
                            "Executing query on the database server \'{0}\' failed. {1}",
                            new object[] { serverSql.Name, exception.Message },
                            exception);
                        // Wait.
                        Thread.Sleep(ApplicationConfig.MessageCloseDelay);
                        // Hide the message.
                        this.HideMessage();
                        // Call the completion method.
                        this.DatabaseQueryFail(serverSql, querySql, exception);
                    }
                    catch (Exception exception)
                    {
                        // Dispose the command.
                        command.Dispose();
                        // Show an error message.
                        this.ShowMessage(Resources.DatabaseError_48, "Database", querySql.MessageFinishFail, false);
                        // Log the event.
                        serverSql.LogEvent(
                            LogEventLevel.Important,
                            LogEventType.Error,
                            "Executing query on the database server \'{0}\' failed. {1}",
                            new object[] { serverSql.Name, exception.Message },
                            exception);
                        // Wait.
                        Thread.Sleep(ApplicationConfig.MessageCloseDelay);
                        // Hide the message.
                        this.HideMessage();
                        // Call the completion method.
                        this.DatabaseQueryFail(serverSql, querySql, exception);
                    }
                });
            }
            catch (Exception exception)
            {
                // Dispose the command.
                command.Dispose();
                // Show an error message.
                this.ShowMessage(Resources.DatabaseError_48, "Database", querySql.MessageFinishFail, false);
                // Log the event.
                serverSql.LogEvent(
                    LogEventLevel.Important,
                    LogEventType.Error,
                    "Executing query on the database server \'{0}\' failed. {1}",
                    new object[] { serverSql.Name, exception.Message },
                    exception);
                // Wait.
                Thread.Sleep(ApplicationConfig.MessageCloseDelay);
                // Hide the message.
                this.HideMessage();
                // Call the completion method.
                this.DatabaseQueryFail(serverSql, querySql, exception);
            }
        }
Beispiel #18
0
 protected abstract void BuildCommand(T logEvent, DbQuery builder);
Beispiel #19
0
 /// <summary>
 /// Creates select query object
 /// </summary>
 /// <returns></returns>
 public DbQuery Select()
 {
     return(DbQuery.Create(this));
 }
 /// <summary>
 /// Executes a database query.
 /// </summary>
 /// <param name="server">The database server.</param>
 /// <param name="query">The database query.</param>
 protected abstract void DatabaseQuery(DbServer server, DbQuery query);
Beispiel #21
0
 /// <summary>
 /// Creates select query object using specified expressions.
 /// </summary>
 /// <param name="expressions">The expressions.</param>
 /// <returns></returns>
 public DbQuery Select(List <DbFilterNode> expressions)
 {
     return(DbQuery.Create(this, expressions));
 }
Beispiel #22
0
        public string Get(DbQuery query)
        {
            switch (query)
            {
            /// <summary>
            /// Obtener la abreviación de una especie mediante su id
            /// </summary>
            case DbQuery.SPECIEABBREVIATION_FROM_SPECIEID:
                return(QueryRes.SPECIEABBREVIATION_FROM_SPECIEID);

            /// <summary>
            /// Obtener el id de una especie segun el id de su variedad
            /// </summary>
            case DbQuery.SPECIEID_FROM_VARIETYID:
                return(QueryRes.SPECIEID_FROM_VARIETYID);

            /// <summary>
            /// Obtener el id de una variedad segun el id de su cuartel
            /// </summary>
            case DbQuery.VARIETYID_FROM_BARRACKID:
                return(QueryRes.VARIETYID_FROM_BARRACKID);

            /// <summary>
            /// Obtener el id de un cuartel segun el id de la orden
            /// </summary>
            case DbQuery.IDBARRACK_FROM_ORDERID:
                return(QueryRes.IDBARRACK_FROM_ORDERID);

            /// <summary>
            /// El mail del usuario segun su rol
            /// </summary>
            case DbQuery.MAILUSERS_FROM_ROLES:
                return(QueryRes.MAILUSERS_FROM_ROLES);

            /// <summary>
            /// Obtener el id de una temporada segun el id de su cuartel
            /// </summary>
            case DbQuery.SEASONID_FROM_BARRACKID:
                return(QueryRes.SEASONID_FROM_BARRACKID);

            /// <summary>
            /// Obtener el id de usuario segun su IDAAD
            /// </summary>
            case DbQuery.USERID_FROM_IDAAD:
                return(QueryRes.USERID_FROM_IDAAD);

            /// <summary>
            /// Contar por ID
            /// </summary>
            case DbQuery.COUNT_BY_ID:
                return(QueryRes.COUNT_BY_ID);

            /// <summary>
            /// Contar por nombre
            /// </summary>
            case DbQuery.COUNT_BY_NAMEVALUE:
                return(QueryRes.COUNT_BY_NAMEVALUE);

            /// <summary>
            /// Contar por nombre ignorando el id
            /// </summary>
            case DbQuery.COUNT_BY_NAMEVALUE_AND_NOID:
                return(QueryRes.COUNT_BY_NAMEVALUE_AND_NOID);

            /// <summary>
            /// Contar ordenes de aplicacion o ejecucion por id de la dosis
            /// </summary>
            case DbQuery.COUNT_EXECUTION_OR_ORDERS_BY_DOSESID:
                return(QueryRes.COUNT_EXECUTION_OR_ORDERS_BY_DOSESID);

            /// <summary>
            /// Contar dosis por id del producto
            /// </summary>
            case DbQuery.COUNT_DOSES_BY_PRODUCTID:
                return(QueryRes.COUNT_DOSES_BY_PRODUCTID);

            /// <summary>
            /// Obtener el número máximo de dosis correlativas mediante el id de un producto
            /// </summary>
            case DbQuery.MAXCORRELATIVE_DOSES_BY_PRODUCTID:
                return(QueryRes.MAXCORRELATIVE_DOSES_BY_PRODUCTID);

            /// <summary>
            /// Obtener el número correlativo mediante id de una dosis
            /// </summary>
            case DbQuery.CORRELATIVE_FROM_DOSESID:
                return(QueryRes.CORRELATIVE_FROM_DOSESID);

            /// <summary>
            /// Obtener las dosis en default mediante el id del producto
            /// </summary>
            case DbQuery.DEFAULTDOSESID_BY_PRODUCTID:
                return(QueryRes.DEFAULTDOSESID_BY_PRODUCTID);

            /// <summary>
            /// Obtener las dosis activas mediante el id del producto
            /// </summary>
            case DbQuery.ACTIVEDOSESIDS_FROM_PRODUCTID:
                return(QueryRes.ACTIVEDOSESIDS_FROM_PRODUCTID);

            /// <summary>
            /// Obtener el nombre mediante el id
            /// </summary>
            case DbQuery.NAME_BY_ID:
                return(QueryRes.NAME_BY_ID);

            /// <summary>
            /// Obtener el business name de un cost center, si es que existe
            /// </summary>
            case DbQuery.COSTCENTER_FROM_BUSINESSNAME:
                return(QueryRes.COSTCENTER_FROM_BUSINESSNAME);

            /// <summary>
            /// Obtiene el ingrediente de la order folder desde el order folder de la pre orden
            /// </summary>
            case DbQuery.ORDERFOLDERINGREDIENT_FROM_PREORDER:
                return(QueryRes.ORDERFOLDERINGREDIENT_FROM_PREORDER);

            /// <summary>
            /// Obtiene los ingredientes de todas las pre ordenes de una older folder
            /// </summary>
            case DbQuery.PREORDERINGREDIENT_FROM_ORDERFOLDER:
                return(QueryRes.PREORDERINGREDIENT_FROM_ORDERFOLDER);

            /// <summary>
            /// Comprueba si existen order folders duplicadas
            /// </summary>
            case DbQuery.DUPLICATED_ORDERFOLDERS:
                return(QueryRes.DUPLICATED_ORDERFOLDERS);

            /// <summary>
            /// Obtiene la temporada activa si es que existe
            /// </summary>
            case DbQuery.COSTCENTER_ACTIVESEASON:
                return(QueryRes.COSTCENTER_ACTIVESEASON);

            /// <summary>
            /// Obtiene el estado de una temporada
            /// </summary>
            case DbQuery.SEASONSTATUS:
                return(QueryRes.SEASONSTATUS);

            /// <summary>
            /// Obtiene todos los barracks asociados a una order folder
            /// </summary>
            case DbQuery.BARRACKS_FROM_ORDERFOLDER:
                return(QueryRes.BARRACKS_FROM_ORDERFOLDER);

            /// <summary>
            /// Obtiene la especie de una order folder
            /// </summary>
            case DbQuery.SPECIE_FROM_ORDERFOLDER:
                return(QueryRes.SPECIE_FROM_ORDERFOLDER);

            /// <summary>
            /// Obtiene los atributos de una order folder
            /// </summary>
            case DbQuery.ORDERFOLDER_ATTRIBUTES:
                return(QueryRes.ORDERFOLDER_ATTRIBUTES);

            /// <summary>
            /// Obtiene las order folder que compartan los mismos evento fenologico, objetivo de aplicacion y especie
            /// </summary>
            case DbQuery.SIMILAR_ORDERFOLDER:
                return(QueryRes.SIMILAR_ORDERFOLDER);

            /// <summary>
            /// Obtiene los barracks de una order folder
            /// </summary>
            case DbQuery.OFBARRACKS:
                return(QueryRes.OFBARRACKS);

            default:
                return("");
            }
        }
Beispiel #23
0
        public void UpdateExhibitions()
        {
            var exhibitionsResult = DbQuery.GetAllEventsOrderedByLast();

            if (exhibitionsResult?.Count >= 2)
            {
                for (var i = 0; i < 2; i++)
                {
                    var adapter = new DictionaryAdapter(exhibitionsResult[i]);

                    var temporaryResult = DbQuery.GetTemporariesInEvents(adapter.GetValue("id"));

                    if (temporaryResult.Count == 0)
                    {
                        var permanentResult = DbQuery.GetPermanentsInEvents(adapter.GetValue("id"));
                        if (permanentResult.Count > 0)
                        {
                            adapter = new DictionaryAdapter(permanentResult[0]);

                            if (i == 0)
                            {
                                TitleFirstExhibition.Text     = adapter.GetValue("title");
                                NameExhibitionOne.Text        = adapter.GetValue("name");
                                DescriptionExhibitionOne.Text = adapter.GetValue("description");
                                FromExhibitionOne.Text        = @"---";
                                ToExhibitionOne.Text          = @"---";
                                ScheduleExhibitionOne.Text    = @"9:00 - 19:00";
                                ArtistExhibitionOne.Text      = @"Museum Property";
                            }
                            else
                            {
                                TitleSecondExhibition.Text    = adapter.GetValue("title");
                                NameExhibitionTwo.Text        = adapter.GetValue("name");
                                DescriptionExhibitionTwo.Text = adapter.GetValue("description");
                                ToExhibitionTwo.Text          = @"---";
                                FromExhibitionTwo.Text        = @"---";
                                ScheduleExhibitionTwo.Text    = @"9:00 - 19:00";
                                ArtistExhibitionTwo.Text      = @"Museum Property";
                            }
                        }
                    }
                    else
                    {
                        foreach (var property in temporaryResult)
                        {
                            var temporaryAdapter = new DictionaryAdapter(property);

                            var schedulesResult = DbQuery.GetSchedulesById(temporaryAdapter.GetValue("schedule_id"));

                            var schedulesAdapter = new DictionaryAdapter(schedulesResult[0]);

                            var processesResult = DbQuery.GetProcessesById(temporaryAdapter.GetValue("processes_id"));

                            var processesAdapter = new DictionaryAdapter(processesResult[0]);

                            var exhibitorResult =
                                DbQuery.GetExhibitorsById(processesAdapter.GetValue("exhibitors_id"));

                            var exhibitorAdapter = new DictionaryAdapter(exhibitorResult[0]);

                            var personResult = DbQuery.GetPeopleById(exhibitorAdapter.GetValue("persons_id"));

                            var personAdapter = new DictionaryAdapter(personResult[0]);

                            if (i == 0)
                            {
                                TitleFirstExhibition.Text     = adapter.GetValue("title");
                                NameExhibitionOne.Text        = adapter.GetValue("name");
                                DescriptionExhibitionOne.Text = adapter.GetValue("description");
                                FromExhibitionOne.Text        =
                                    schedulesAdapter.GetValue("startDay") + @"/" +
                                    schedulesAdapter.GetValue("startMonth") + @"/" +
                                    schedulesAdapter.GetValue("startYear");
                                ToExhibitionOne.Text =
                                    schedulesAdapter.GetValue("endDay") + @"/" +
                                    schedulesAdapter.GetValue("endMonth") + @"/" +
                                    schedulesAdapter.GetValue("endYear");
                                ScheduleExhibitionOne.Text =
                                    schedulesAdapter.GetValue("startTime") + @"-" +
                                    schedulesAdapter.GetValue("endTime");
                                ArtistExhibitionOne.Text = personAdapter.GetValue("name");
                            }
                            else
                            {
                                TitleSecondExhibition.Text    = adapter.GetValue("title");
                                NameExhibitionTwo.Text        = adapter.GetValue("name");
                                DescriptionExhibitionTwo.Text = adapter.GetValue("description");
                                FromExhibitionTwo.Text        =
                                    schedulesAdapter.GetValue("startDay") + @"/" +
                                    schedulesAdapter.GetValue("startMonth") + @"/" +
                                    schedulesAdapter.GetValue("startYear");
                                ToExhibitionTwo.Text =
                                    schedulesAdapter.GetValue("endDay") + @"/" +
                                    schedulesAdapter.GetValue("endMonth") + @"/" +
                                    schedulesAdapter.GetValue("endYear");
                                ScheduleExhibitionTwo.Text =
                                    schedulesAdapter.GetValue("startTime") + @"-" +
                                    schedulesAdapter.GetValue("endTime");
                                ArtistExhibitionTwo.Text = personAdapter.GetValue("name");
                            }
                        }
                    }
                }

                ExhibitionOne.Visible = true;
                ExhibitionTwo.Visible = true;
            }
            else
            {
                ExhibitionOne.Visible = false;
                ExhibitionTwo.Visible = false;
            }
        }
Beispiel #24
0
        public static List <ImpRegisterSummaryEntity> GetImportRegisterSummary(int lineId, int locId, DateTime dischargeFrom, DateTime dischargeTo)
        {
            string strExecution = "[report].[uspGetImportSummary]";
            List <ImpRegisterSummaryEntity> lstEntity = new List <ImpRegisterSummaryEntity>();
            ImpRegisterSummaryEntity        entity    = null;

            using (DbQuery oDq = new DbQuery(strExecution))
            {
                oDq.AddIntegerParam("@NVOCCId", lineId);
                oDq.AddIntegerParam("@LocId", locId);
                oDq.AddDateTimeParam("@DischargeFrom", dischargeFrom);
                oDq.AddDateTimeParam("@DischargeTo", dischargeTo);

                DataTableReader reader = oDq.GetTableReader();

                while (reader.Read())
                {
                    entity = new ImpRegisterSummaryEntity();

                    entity.Location         = Convert.ToString(reader["Location"]);
                    entity.Line             = Convert.ToString(reader["Line"]);
                    entity.BLNo             = Convert.ToString(reader["ImpLineBLNo"]);
                    entity.VesselName       = Convert.ToString(reader["VesselName"]);
                    entity.VoyageNo         = Convert.ToString(reader["VoyageNo"]);
                    entity.DischargeDate    = Convert.ToDateTime(reader["DischargeDate"]);
                    entity.BLNo             = Convert.ToString(reader["BLNo"]);
                    entity.TEU              = Convert.ToInt32(reader["TEU"]);
                    entity.FEU              = Convert.ToInt32(reader["FEU"]);
                    entity.TotalTEU         = Convert.ToInt32(reader["TotalTEU"]);
                    entity.InvoiceReference = Convert.ToString(reader["InvoiceReference"]);
                    if (reader["DO"] != DBNull.Value)
                    {
                        entity.DO = Convert.ToDecimal(reader["DO"]);
                    }
                    if (reader["Docs"] != DBNull.Value)
                    {
                        entity.Docs = Convert.ToDecimal(reader["Docs"]);
                    }
                    if (reader["Survey"] != DBNull.Value)
                    {
                        entity.Survey = Convert.ToDecimal(reader["Survey"]);
                    }
                    if (reader["Washing"] != DBNull.Value)
                    {
                        entity.Washing = Convert.ToDecimal(reader["Washing"]);
                    }
                    if (reader["Others"] != DBNull.Value)
                    {
                        entity.Others = Convert.ToDecimal(reader["Others"]);
                    }
                    entity.SecurityInvoice = Convert.ToString(reader["SecurityInvoice"]);
                    if (reader["SecurityDeposit"] != DBNull.Value)
                    {
                        entity.SecurityDeposit = Convert.ToDecimal(reader["SecurityDeposit"]);
                    }
                    entity.LastInvoice = Convert.ToString(reader["LastInvoice"]);
                    if (reader["DetentionUSD"] != DBNull.Value)
                    {
                        entity.DetentionUSD = Convert.ToDecimal(reader["DetentionUSD"]);
                    }
                    if (reader["DetentionINR"] != DBNull.Value)
                    {
                        entity.DetentionINR = Convert.ToDecimal(reader["DetentionINR"]);
                    }
                    if (reader["Repairing"] != DBNull.Value)
                    {
                        entity.Repairing = Convert.ToDecimal(reader["Repairing"]);
                    }
                    if (reader["LastInvoiceOtherCharge"] != DBNull.Value)
                    {
                        entity.LastInvoiceOtherCharge = Convert.ToDecimal(reader["LastInvoiceOtherCharge"]);
                    }
                    if (reader["TotalCharge"] != DBNull.Value)
                    {
                        entity.TotalCharge = Convert.ToDecimal(reader["TotalCharge"]);
                    }
                    if (reader["TotalReceipt"] != DBNull.Value)
                    {
                        entity.TotalReceipt = Convert.ToDecimal(reader["TotalReceipt"]);
                    }
                    if (reader["Refund"] != DBNull.Value)
                    {
                        entity.Refund = Convert.ToDecimal(reader["Refund"]);
                    }
                    entity.Remarks = Convert.ToString(reader["Remarks"]);

                    lstEntity.Add(entity);
                }
            }


            return(lstEntity);
        }
Beispiel #25
0
        public void Open(string guid, string kladr)
        {
            connection.ConnectionString = ConnectionString;
            connection.Open();
            CustomReloadCollection(RegionCollection, FiasSql.RegionSql, null);

            var searchResult = new Dictionary <string, string>();

            using (var transaction = connection.BeginTransaction())
            {
                using (var query = new DbQuery(connection, transaction))
                {
                    query.SqlText = "select ID_REGION, ID_AUTO, ID_AREA, ID_CITY, ID_CTAR, ID_PLACE, ID_STREET, ID_HOUSE from PR_FIAS_EXTRACT(@ID_GUID, @ID_KLADR)";
                    query.Parameters.Add(query.GetNewParameter("ID_GUID", guid == string.Empty ? null : guid));
                    query.Parameters.Add(query.GetNewParameter("ID_KLADR", kladr == string.Empty ? null : kladr));
                    query.ExecuteDataReader();
                    if (query.DataReader.Read())
                    {
                        for (var i = 0; i < query.DataReader.FieldCount; i++)
                        {
                            searchResult.Add(query.DataReader.GetName(i), query.DataReader[i].ToString());
                        }
                    }
                }
            }
            if (searchResult.Count == 0)
            {
                return;
            }
            if (searchResult["ID_REGION"] != string.Empty)
            {
                SelectedRegion = RegionCollection.FirstOrDefault(a => a.Id == searchResult["ID_REGION"]);
            }
            if (searchResult["ID_AUTO"] != string.Empty)
            {
                SelectedAuto = AutoCollection.FirstOrDefault(a => a.Id == searchResult["ID_AUTO"]);
            }
            if (searchResult["ID_AREA"] != string.Empty)
            {
                SelectedArea = AreaCollection.FirstOrDefault(a => a.Id == searchResult["ID_AREA"]);
            }
            if (searchResult["ID_CITY"] != string.Empty)
            {
                SelectedCity = CityCollection.FirstOrDefault(a => a.Id == searchResult["ID_CITY"]);
            }
            if (searchResult["ID_CTAR"] != string.Empty)
            {
                SelectedCtar = CtarCollection.FirstOrDefault(a => a.Id == searchResult["ID_CTAR"]);
            }
            if (searchResult["ID_PLACE"] != string.Empty)
            {
                SelectedPlace = PlaceCollection.FirstOrDefault(a => a.Id == searchResult["ID_PLACE"]);
            }
            if (searchResult["ID_STREET"] != string.Empty)
            {
                SelectedStreet = StreetCollection.FirstOrDefault(a => a.Id == searchResult["ID_STREET"]);
            }
            if (searchResult["ID_HOUSE"] != string.Empty)
            {
                SelectedHouse = HouseCollection.FirstOrDefault(a => a.Id == searchResult["ID_HOUSE"]);
            }
        }
Beispiel #26
0
 /// <summary>
 ///     List all entities.
 /// </summary>
 /// <typeparam name="TEntity">
 ///     The entity type.
 /// </typeparam>
 /// <param name="dbSet">
 ///     The dbSet.
 /// </param>
 /// <returns>
 ///     List of entities.
 /// </returns>
 public static List <TEntity> ListAll <TEntity>(this DbQuery <TEntity> dbSet) where TEntity : class
 {
     return(dbSet.ToList());
 }
 protected override DbQuery FilterClassAnnouncementByCaller(DbQuery dbQuery, int callerId)
 {
     return(dbQuery);
 }
Beispiel #28
0
        private void AddSimpleParamsToApplicationQuery(DbQuery result, ApplicationQuery query)
        {
            var conditions = new AndQueryCondition();

            if (query.Role != CoreRoles.SUPER_ADMIN_ROLE.Id && query.Role != CoreRoles.APP_TESTER_ROLE.Id)
            {
                if (!query.IncludeInternal)
                {
                    conditions.Add(nameof(Application.IsInternal), 1, ConditionRelation.NotEqual);
                }

                if (query.MyApps.HasValue)
                {
                    if (query.Role == CoreRoles.STUDENT_ROLE.Id)
                    {
                        conditions.Add(nameof(Application.HasStudentMyApps), query.MyApps, ConditionRelation.Equal);
                    }
                    if (query.Role == CoreRoles.TEACHER_ROLE.Id)
                    {
                        conditions.Add(nameof(Application.HasTeacherMyApps), query.MyApps, ConditionRelation.Equal);
                    }
                    if (query.Role == CoreRoles.DISTRICT_ADMIN_ROLE.Id)
                    {
                        conditions.Add(nameof(Application.HasAdminMyApps), query.MyApps, ConditionRelation.Equal);
                    }
                }
            }

            if (query.CanAttach.HasValue)
            {
                conditions.Add(nameof(Application.CanAttach), query.CanAttach, ConditionRelation.Equal);
            }

            if (query.DeveloperId.HasValue)
            {
                conditions.Add(nameof(Application.DeveloperRef), query.DeveloperId, ConditionRelation.Equal);
            }

            if (query.Id.HasValue)
            {
                conditions.Add(nameof(Application.Id), query.Id, ConditionRelation.Equal);
            }

            if (query.Live.HasValue || query.State.HasValue)
            {
                var relation = ConditionRelation.Equal;
                var state    = (int?)query.State;

                if (query.Live.HasValue)
                {
                    if (!query.Live.Value)
                    {
                        relation = ConditionRelation.NotEqual;
                    }

                    state = (int?)ApplicationStateEnum.Live;
                }

                conditions.Add(nameof(Application.State), state, relation);
            }

            conditions.BuildSqlWhere(result, nameof(Application));
        }
        public string Get(DbQuery query)
        {
            switch (query)
            {
            /// <summary>
            /// Obtener la abreviación de una especie mediante su id
            /// </summary>
            case DbQuery.SPECIEABBREVIATION_FROM_SPECIEID:
                return(QueryRes.SPECIEABBREVIATION_FROM_SPECIEID);

            /// <summary>
            /// Obtener el id de una especie segun el id de su variedad
            /// </summary>
            case DbQuery.SPECIEID_FROM_VARIETYID:
                return(QueryRes.SPECIEID_FROM_VARIETYID);

            /// <summary>
            /// Obtener el id de una variedad segun el id de su cuartel
            /// </summary>
            case DbQuery.VARIETYID_FROM_BARRACKID:
                return(QueryRes.VARIETYID_FROM_BARRACKID);

            /// <summary>
            /// Obtener el id de un cuartel segun el id de la orden
            /// </summary>
            case DbQuery.IDBARRACK_FROM_ORDERID:
                return(QueryRes.IDBARRACK_FROM_ORDERID);

            /// <summary>
            /// El mail del usuario segun su rol
            /// </summary>
            case DbQuery.MAILUSERS_FROM_ROLES:
                return(QueryRes.MAILUSERS_FROM_ROLES);

            /// <summary>
            /// Obtener el id de una temporada segun el id de su cuartel
            /// </summary>
            case DbQuery.SEASONID_FROM_BARRACKID:
                return(QueryRes.SEASONID_FROM_BARRACKID);

            /// <summary>
            /// Obtener el id de usuario segun su IDAAD
            /// </summary>
            case DbQuery.USERID_FROM_IDAAD:
                return(QueryRes.USERID_FROM_IDAAD);

            /// <summary>
            /// Contar por ID
            /// </summary>
            case DbQuery.COUNT_BY_ID:
                return(QueryRes.COUNT_BY_ID);

            /// <summary>
            /// Contar por nombre
            /// </summary>
            case DbQuery.COUNT_BY_NAMEVALUE:
                return(QueryRes.COUNT_BY_NAMEVALUE);

            /// <summary>
            /// Contar por nombre ignorando el id
            /// </summary>
            case DbQuery.COUNT_BY_NAMEVALUE_AND_NOID:
                return(QueryRes.COUNT_BY_NAMEVALUE_AND_NOID);

            /// <summary>
            /// Contar ordenes de aplicacion o ejecucion por id de la dosis
            /// </summary>
            case DbQuery.COUNT_EXECUTION_OR_ORDERS_BY_DOSESID:
                return(QueryRes.COUNT_EXECUTION_OR_ORDERS_BY_DOSESID);

            /// <summary>
            /// Contar dosis por id del producto
            /// </summary>
            case DbQuery.COUNT_DOSES_BY_PRODUCTID:
                return(QueryRes.COUNT_DOSES_BY_PRODUCTID);

            /// <summary>
            /// Obtener el número máximo de dosis correlativas mediante el id de un producto
            /// </summary>
            case DbQuery.MAXCORRELATIVE_DOSES_BY_PRODUCTID:
                return(QueryRes.MAXCORRELATIVE_DOSES_BY_PRODUCTID);

            /// <summary>
            /// Obtener el número correlativo mediante id de una dosis
            /// </summary>
            case DbQuery.CORRELATIVE_FROM_DOSESID:
                return(QueryRes.CORRELATIVE_FROM_DOSESID);

            /// <summary>
            /// Obtener las dosis en default mediante el id del producto
            /// </summary>
            case DbQuery.DEFAULTDOSESID_BY_PRODUCTID:
                return(QueryRes.DEFAULTDOSESID_BY_PRODUCTID);

            /// <summary>
            /// Obtener las dosis activas mediante el id del producto
            /// </summary>
            case DbQuery.ACTIVEDOSESIDS_FROM_PRODUCTID:
                return(QueryRes.ACTIVEDOSESIDS_FROM_PRODUCTID);

            /// <summary>
            /// Obtener el nombre mediante el id
            /// </summary>
            case DbQuery.NAME_BY_ID:
                return(QueryRes.NAME_BY_ID);

            default:
                return("");
            }
        }
Beispiel #30
0
        private void DoCache()
        {
            if (OnRebuildCacheStart != null)
                OnRebuildCacheStart();
            try
            {
                cache.Clear();
                DbConnection connection;
                if(ServerType == ServerType.Firebird) connection = new FbConnection(ConnectionString); else connection = new SqlConnection(ConnectionString);
                try
                {
                    connection.Open();
                    using (var transaction = connection.BeginTransaction())
                    {
                        var databaseMap =
                            FiasDatabaseMap.LoadFromFile(
                                Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Fias.Mapping.xml");
                        foreach (var tableMap in databaseMap.Tables)
                        {
                            var pkFieldMap = tableMap.Fields.First(a => a.IsPrimaryKey);
                            using (var query = new DbQuery(connection, transaction))
                            {
                                var counter = 0;
                                var set = new HashSet<string>();
                                cache.Add(tableMap.DatabaseName, set);

                                var sql = ServerType==ServerType.Firebird ? "select trim({0}) {0} from {1};" : "select rtrim(ltrim({0})) {0} from {1};";
                                query.SqlText = string.Format(sql,
                                    pkFieldMap.DatabaseName, tableMap.DatabaseName);
                                query.ExecuteDataReader();
                                while (query.DataReader.Read())
                                {
                                    if (stopEvent.WaitOne(0))
                                        throw new StopException();
                                    set.Add(query.DataReader[pkFieldMap.DatabaseName].ToString());

                                    if (++counter%100000 != 0) continue;
                                    if (OnRebuildCache == null) continue;
                                    OnRebuildCache(counter,
                                        cacheLength.ContainsKey(tableMap.DatabaseName)
                                            ? cacheLength[tableMap.DatabaseName]
                                            : 0, tableMap.DatabaseName);
                                }
                            }
                        }
                    }
                }
                finally
                {
                    connection.Dispose();
                }
            }
            finally
            {
                if (OnRebuildCacheComplete != null)
                    OnRebuildCacheComplete();
            }
        }
Beispiel #31
0
 protected abstract DbQuery FilterClassAnnouncementByCaller(DbQuery dbQuery, int callerId);
Beispiel #32
0
 protected Repository(DbContext context, DbQuery<TEntity> dbquery) {
Beispiel #33
0
 private static void DbQuerySetUp <T>(DbQuery <T> fakeDbQuery)
 {
     A.CallTo(() => fakeDbQuery.AsNoTracking()).Returns(fakeDbQuery);
 }
Beispiel #34
0
 public string Queries(DbQuery query) => new Queries().Get(query);
Beispiel #35
0
 public static bool In <T>(this T item, DbQuery <T> subQuery)
 {
     throw new NotImplementedException("该方法尚未实现,仅用于辅助生成 SQL 语句。");
 }
Beispiel #36
0
 public TradingEngineRepository(TradingEngineContext tradingEngineContext)
 {
     TradingEngineContext = tradingEngineContext;
     DbSet   = tradingEngineContext.Set <TEntity>();
     DbQuery = tradingEngineContext.Query <TEntity>();
 }
        private DbQuery BuildGetNotificationDetailsDbQuery(NotificationQuery query, bool includeMessages)
        {
            var conds = BuildShortConditions(query);

            if (!includeMessages)
            {
                conds.Add(Notification.TYPE_FIELD, NotificationType.Message, ConditionRelation.NotEqual);
            }

            var tables = new List <Type>
            {
                typeof(Notification),
                typeof(Announcement),
                typeof(MarkingPeriod)
            };

            //TODO: think how to rewrtite this ... move this to stored procedure
            var sql = $@"select distinct {Orm.ComplexResultSetQuery(tables)}, 
                               PrivateMessage.*,
                               PrivateMessageRecipient.[{PrivateMessageRecipient.READ_FIELD}] as [{PrivateMessageRecipient.READ_FIELD}],
                               PrivateMessageRecipient.[{PrivateMessageRecipient.DELETED_BY_RECIPIENT_FIELD}] as [{PrivateMessageRecipient.DELETED_BY_RECIPIENT_FIELD}],
                               {"MessageSender"}.{Person.ID_FIELD} as {"Sender"}{Person.ID_FIELD},
                               {"MessageSender"}.{Person.FIRST_NAME_FIELD} as {"Sender"}{Person.FIRST_NAME_FIELD},
                               {"MessageSender"}.{Person.LAST_NAME_FIELD} as {"Sender"}{Person.LAST_NAME_FIELD},
                               {"MessageSender"}.{Person.SALUTATION_FIELD} as {"Sender"}{Person.SALUTATION_FIELD},
                               {"MessageSender"}.{Person.ROLE_REF_FIELD} as {"Sender"}{Person.ROLE_REF_FIELD},
                               {"MessageSender"}.{Person.GENDER_FIELD} as {"Sender"}{Person.GENDER_FIELD},
                               toPerson.Id as ToPerson_Id,
                               toPerson.FirstName as ToPerson_FirstName,
                               toPerson.LastName as ToPerson_LastName,
                               toPerson.Gender as ToPerson_Gender,
                               toPerson.Salutation as ToPerson_Salutation,
                               toPerson.RoleRef as ToPerson_RoleRef,
                               QuestionPerson.FirstName as QuestionPerson_FirstName,
                               QuestionPerson.LastName as QuestionPerson_LastName,
                               QuestionPerson.Gender as QuestionPerson_Gender,
                               QuestionPerson.Salutation as QuestionPerson_Salutation,
                               QuestionPerson.RoleRef as QuestionPerson_RoleRef,
                               QuestionPerson.Id as QuestionPerson_Id
                        from [Notification]
                        left join Announcement on Announcement.Id  = [Notification].AnnouncementRef
                        left join MarkingPeriod on MarkingPeriod.Id = [Notification].MarkingPeriodRef
                        left join PrivateMessage on PrivateMessage.Id = [Notification].PrivateMessageRef
                        left join PrivateMessageRecipient on PrivateMessageRecipient.PrivateMessageRef = PrivateMessage.Id
                        left join {Person.VW_PERSON} MessageSender on MessageSender.Id = PrivateMessage.{PrivateMessage.FROM_PERSON_REF_FIELD}
                        join vwPerson toPerson on toPerson.Id = [Notification].PersonRef
                        left join vwPerson QuestionPerson on QuestionPerson.Id = [Notification].QuestionPersonRef";

            var res = new DbQuery(sql, new Dictionary <string, object>());

            conds.BuildSqlWhere(res, tables[0].Name);

            if (query.SchoolId.HasValue)
            {
                res.Sql.AppendFormat(" and (toPerson.[{0}] =@{0} and (QuestionPerson.[{0}] is null or QuestionPerson.[{0}] =@{0}))"
                                     , SchoolPerson.SCHOOL_REF_FIELD);
                res.Parameters.Add(SchoolPerson.SCHOOL_REF_FIELD, query.SchoolId);
            }


            //res.Sql.AppendFormat(" and (PrivateMessage_Id is null or (PrivateMessage_SenderSchoolRef = @{0} and PrivateMessage_RecipientSchoolRef = @{0}))", SchoolPerson.SCHOOL_REF_FIELD);
            return(res);
        }
 protected override DbQuery FilterLessonPlanByCallerId(DbQuery dbQuery, int callerId)
 {
     return(dbQuery);
 }
Beispiel #39
0
 IDbExecuteContext IDbExecutor.Execute(DbQuery query)
 {
     return(Executor.Execute(query));
 }
        /// <summary>
        /// Apply the query information to a LINQ statement
        /// </summary>
        /// <typeparam name="T">Model type</typeparam>
        /// <param name="instance">constraints instance</param>
        /// <param name="dbQuery">LINQ queryable</param>
        /// <returns>Modified query</returns>
        public static IQueryable <T> ApplyTo <T>(this IQueryConstraints <T> instance, DbQuery <T> dbQuery) where T : class
        {
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            if (dbQuery == null)
            {
                throw new ArgumentNullException(nameof(dbQuery));
            }

            foreach (string item in instance.IncludePaths)
            {
                dbQuery = dbQuery.Include(item);
            }

            IQueryable <T> query = dbQuery.AsNoTracking();

            if (instance.Predicate != null)
            {
                query = query.Where(instance.Predicate);
            }

            IOrderedQueryable <T> orderedQuery = null;

            for (int i = 0; i < instance.SortOrder.Count(); i++)
            {
                SortOrderEntry item = instance.SortOrder.ElementAt(i);
                if (i == 0)
                {
                    orderedQuery = item.SortOrder == SortOrderEnum.Ascending
                        ? query.OrderBy(item.SortPropertyName)
                        : query.OrderByDescending(item.SortPropertyName);
                }
                else
                {
                    orderedQuery = item.SortOrder == SortOrderEnum.Ascending
                        ? orderedQuery.ThenBy(item.SortPropertyName)
                        : orderedQuery.ThenByDescending(item.SortPropertyName);
                }
            }

            query = orderedQuery ?? query;

            if (instance.SortOrder.Any() && instance.PageNumber >= 1)
            {
                query = query.Skip(instance.StartRecord).Take(instance.PageSize);
            }

            return(query);
        }
        private void DoUpdateExecute()
        {
            using (var reader = new XmlTextReader(FileInfo.FileName))
            {
                transaction = Connection.BeginTransaction();
                if (
                    !DbData.IsRecordExists(Connection, transaction,
                        string.Format("select name from fias_import_history where name = '{0}';", shortFileName)))
                    DbData.ExecuteQuery(Connection, transaction,
                        string.Format("insert into fias_import_history (file_date,name) values('{0}','{1}');",
                            FileInfo.Description, shortFileName));
                var dtVersion =
                    DateTime.Parse(FileInfo.Description.Substring(0, 4) + '.' + FileInfo.Description.Substring(4, 2) +
                                   '.' + FileInfo.Description.Substring(6, 2));
                while (reader.Read())
                {
                    if (tableMap.XmlName == reader.Name)
                        counter++;

                    if (counter <= FileInfo.StatusPos) continue; // skiping commited

                    if (tableMap.XmlName != reader.Name) continue;

                    try
                    {
                        var recordExists = DbCache.IsExists(tableMap.DatabaseName, reader[pkFieldMap.XmlName]);
                        var data = new Dictionary<string, string>();
                        while (reader.MoveToNextAttribute())
                        {
                            if (tableMap.Fields.Exists(a => a.XmlName == reader.Name))
                                data.Add(tableMap.GetDatabaseFieldName(reader.Name), reader.Value.Replace("'", "''"));
                        }
                        data.Add("DT_VERSION", dtVersion.ToString());

                        if (recordExists)
                        {
                            if (pkFieldMap != null)
                            {
                                sqlStatement = string.Format("update {0} set {1} where {2} ='{3}';",
                                    tableMap.DatabaseName,
                                    data.Select(a => a.Key + "='" + a.Value + "'").Aggregate((a, b) => a + "," + b),
                                    pkFieldMap.DatabaseName, data[pkFieldMap.DatabaseName]);
                            }
                        }
                        else
                        {
                            sqlStatement = string.Format("insert into {0} ({1}) values ({2});", tableMap.DatabaseName,
                                data.Select(a => a.Key).Aggregate((a, b) => a + "," + b),
                                data.Select(a => "'" + a.Value + "'").Aggregate((a, b) => a + "," + b));
                        }

                        using (var query = new DbQuery(Connection, transaction))
                        {
                            query.SqlText = sqlStatement;
                            query.Execute();
                            if (!recordExists)
                                DbCache.Add(tableMap.DatabaseName, reader[pkFieldMap.XmlName]);
                        }

                        if (shortFileName.ToUpper().Contains("_DEL_"))
                        {
                            sqlStatement = string.Format("delete from {0} where {1}='{2}';", tableMap.RefTable,
                                pkFieldMap.DatabaseName, data[pkFieldMap.DatabaseName]);
                            using (var query = new DbQuery(Connection, transaction))
                            {
                                query.SqlText = sqlStatement;
                                query.Execute();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                        if (!ex.Message.Contains("E_EXISTS_RECORD_IS_NEWER"))
                            throw;}
                    if (counter%100 != 0) continue;
                    DbData.ExecuteQuery(Connection, transaction,
                        string.Format("update fias_import_history set LAST_COMMIT_COUNT={0} where name = '{1}';",
                            counter, shortFileName));
                    transaction.Commit();
                    FileInfo.Status = length == 0
                        ? string.Format("Загружено {0}", counter)
                        : string.Format("Загружено {0}/{1}", counter, length);
                    FileInfo.StatusPos = counter;
                    FileInfo.StatusMax = length;

                    if (StopEvent.WaitOne(0))
                        throw new StopException();
                    transaction = Connection.BeginTransaction();
                }
                DbData.ExecuteQuery(Connection, transaction,
                    string.Format("update fias_import_history set dt_import='{0}' where name = '{1}';",
                        dtVersion.ToString(), shortFileName));
                transaction.Commit();
                FileInfo.Status = "Полностью загружен";
                FileInfo.IsExists = true;
            }
        }