Beispiel #1
0
        public static DataTable ToDataTable(System.Data.Linq.DataContext ctx, object query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }

            IDbCommand cmd = ctx.GetCommand(query as IQueryable);

            System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter();
            adapter.SelectCommand = (System.Data.SqlClient.SqlCommand)cmd;
            DataTable dt = new DataTable();


            try
            {
                if (cmd.Connection.State == ConnectionState.Closed)
                {
                    cmd.Connection.Open();
                }



                adapter.FillSchema(dt, SchemaType.Source);
                adapter.Fill(dt);
            }
            finally
            {
                cmd.Connection.Close();
            }
            return(dt);
        }
Beispiel #2
0
        private void RefreshBrandAdvices(Brand brand)
        {
            var brandAdvices = (EntitySet <BrandAdvice>)brand.BrandAdvices;
            var tempContext  = new DataContext(Context.Connection);

            if (brandAdvices.HasLoadedOrAssignedValues)
            {
                List <BrandAdvice> allBrandAdvices =
                    tempContext.GetTable <AdviceBase>().OfType <BrandAdvice>().Where(x => x.BrandsId == brand.Id).ToList();
                //Context.GetTableForType(typeof (BrandAdvice)).OfType<BrandAdvice>().Where(
                //    a => a.BrandsId == brand.Id).ToList();))
                foreach (BrandAdvice brandAdvice in allBrandAdvices.Except(brand.BrandAdvices))
                {
                    brand.BrandAdvices.Add(brandAdvice);
                }

                foreach (BrandAdvice brandAdvice in brand.BrandAdvices.Except(allBrandAdvices))
                {
                    brand.BrandAdvices.Remove(brandAdvice);
                }

                //Refresh EntityRefs
                foreach (BrandAdvice brandAdvice in brand.BrandAdvices)
                {
                    Context.Refresh(RefreshMode.KeepChanges, brandAdvice);
                    Context.Refresh(RefreshMode.KeepChanges, brandAdvice.Mentor);
                    Context.Refresh(RefreshMode.KeepChanges, brandAdvice.Semaphore);
                }
            }
        }
Beispiel #3
0
        protected override List <Product> GetingItems(System.Data.Linq.DataContext dc, SearchCondition search)
        {
            DataLoadOptions opt = new DataLoadOptions();

            opt.LoadWith <Product>(p => p.Category);
            dc.LoadOptions = opt;
            IQueryable <Product> ret = dc.GetTable <Product>();

            if (search is ProductSearchCondition)
            {
                ProductSearchCondition con = search as ProductSearchCondition;
                if (con.ProductIDS != null && con.ProductIDS.Count > 0)
                {
                    ret = ret.Where(item => con.ProductIDS.Contains(item.ID));
                }
                if (!string.IsNullOrEmpty(con.Name))
                {
                    ret = ret.Where(item => item.Name.Contains(con.Name));
                }
                if (!string.IsNullOrEmpty(con.BarCode))
                {
                    ret = ret.Where(item => item.BarCode.Contains(con.BarCode));
                }
                if (!string.IsNullOrEmpty(con.CategoryID))
                {
                    ret = ret.Where(item => item.CategoryID == con.CategoryID);
                }
                if (!string.IsNullOrEmpty(con.Specification))
                {
                    ret = ret.Where(item => item.Specification.Contains(con.Specification));
                }
            }
            return(ret.ToList());
        }
Beispiel #4
0
        public static int GetCountFromCache <T>(this System.Linq.IQueryable <T> q, System.Data.Linq.DataContext dc)
        {
            try
            {
                string CacheId = q.ToString() + "Count?";
                foreach (System.Data.Common.DbParameter dbp in dc.GetCommand(q).Parameters)
                {
                    CacheId += dbp.ParameterName + "=" + dbp.Value.ToString() + "&";
                }
                object count;
                //if (Environment.StackTrace.Contains("CMS\\"))
                //{
                count = q.Count();
                return((int)count);

                //}
                //else
                //{
                //System.Threading.Thread.Sleep(500);
                count = System.Web.HttpRuntime.Cache.Get(CacheId);
                // }
                if (count == null)
                {
                    List <string> tablesNames = dc.Mapping.GetTables().Where(t => CacheId.Contains("[" + t.TableName.Substring(4) + "]")).Select(t => t.TableName.Substring(4)).ToList();
                    string        connStr     = dc.Connection.ConnectionString;
                    using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connStr))
                    {
                        conn.Open();
                        System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(connStr);
                        System.Web.Caching.SqlCacheDependency sqldep;
                        AggregateCacheDependency aggDep = new AggregateCacheDependency();
                        foreach (string tableName in tablesNames)
                        {
                            if (!System.Web.Caching.SqlCacheDependencyAdmin.GetTablesEnabledForNotifications(connStr).Contains(tableName))
                            {
                                System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(connStr, tableName);
                            }
                            if (tableName.Contains("Comment") || tableName.Contains("PollDetail"))
                            {
                                sqldep = new System.Web.Caching.SqlCacheDependency("PlatformCacheSmallPollTime", tableName);
                            }
                            else
                            {
                                sqldep = new System.Web.Caching.SqlCacheDependency("PlatformCache", tableName);
                            }
                            aggDep.Add(sqldep);
                        }

                        count = q.Count();
                        System.Web.HttpRuntime.Cache.Insert(CacheId, count, aggDep, DateTime.Now.AddDays(1), System.Web.Caching.Cache.NoSlidingExpiration);
                    }
                }
                //Return the created (or cached) List
                return((int)count);
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
        protected override List <InventoryCheckRecord> GetingItems(System.Data.Linq.DataContext dc, SearchCondition search)
        {
            IQueryable <InventoryCheckRecord> ret   = dc.GetTable <InventoryCheckRecord>();
            List <InventoryCheckRecord>       items = ret.ToList();

            return(items);
        }
        public DataTable ToDataTable(System.Data.Linq.DataContext ctx, object query)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            IDbCommand cmd = ctx.GetCommand((IQueryable)query);

            System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter();
            adapter.SelectCommand = (System.Data.SqlClient.SqlCommand)cmd;
            DataTable dt = new DataTable("dataTbl");

            cmd.Connection.ConnectionString = DynamicConnection.connectstr;
            try
            {
                cmd.Connection.Open();
                adapter.FillSchema(dt, SchemaType.Source);
                adapter.Fill(dt);
            }
            finally
            {
                adapter.FillSchema(dt, SchemaType.Source);
                adapter.Fill(dt);
                cmd.Connection.Close();
            }
            return(dt);
        }
Beispiel #7
0
 protected override void UpdatingItem(Order newVal, Order original, System.Data.Linq.DataContext dc)
 {
     dc.GetTable <Order>().Attach(newVal, original);
     foreach (OrderItem item in newVal.Items)
     {
         OrderItem old = original.Items.SingleOrDefault(it => it.ID == item.ID);
         if (old != null)
         {
             dc.GetTable <OrderItem>().Attach(item, old);
         }
         else
         {
             item.OrderID = newVal.ID;
             dc.GetTable <OrderItem>().InsertOnSubmit(item);
         }
     }
     foreach (OrderItem item in original.Items)
     {
         if (newVal.Items.SingleOrDefault(it => it.ID == item.ID) == null)
         {
             dc.GetTable <OrderItem>().Attach(item);
             dc.GetTable <OrderItem>().DeleteOnSubmit(item);
         }
     }
 }
        protected override List <StackOutSheet> GetingItems(System.Data.Linq.DataContext dc, SearchCondition search)
        {
            DataLoadOptions opt = new DataLoadOptions();

            opt.LoadWith <StackOutSheet>(item => item.Items);
            dc.LoadOptions = opt;
            IQueryable <StackOutSheet> ret = dc.GetTable <StackOutSheet>();

            if (search is SheetSearchCondition)
            {
                SheetSearchCondition con = search as SheetSearchCondition;
                if (con.SheetDate != null)
                {
                    ret = ret.Where(item => item.SheetDate >= con.SheetDate.Begin && item.SheetDate <= con.SheetDate.End);
                }
                if (con.LastActiveDate != null)
                {
                    ret = ret.Where(item => item.LastActiveDate >= con.LastActiveDate.Begin && item.LastActiveDate <= con.LastActiveDate.End);
                }
                if (con.SheetNo != null && con.SheetNo.Count > 0)
                {
                    ret = ret.Where(item => con.SheetNo.Contains(item.ID));
                }
                if (con.States != null && con.States.Count > 0)
                {
                    ret = ret.Where(item => con.States.Contains(item.State));
                }
            }
            if (search is StackOutSheetSearchCondition)
            {
                StackOutSheetSearchCondition con = search as StackOutSheetSearchCondition;
                if (!string.IsNullOrEmpty(con.CustomerID))
                {
                    ret = ret.Where(item => item.CustomerID == con.CustomerID);
                }
                if (!string.IsNullOrEmpty(con.WareHouseID))
                {
                    ret = ret.Where(item => item.WareHouseID == con.WareHouseID);
                }
                if (con.SheetTypes != null && con.SheetTypes.Count > 0)
                {
                    ret = ret.Where(item => con.SheetTypes.Contains(item.ClassID));
                }
                if (con.WithTax != null)
                {
                    if (con.WithTax.Value)
                    {
                        ret = ret.Where(item => item.WithTax == true);
                    }
                    else
                    {
                        ret = ret.Where(item => item.WithTax == false);
                    }
                }
            }
            List <StackOutSheet> sheets = ret.ToList();

            return(sheets);
        }
Beispiel #9
0
        protected override Product GetingItemByID(string id, System.Data.Linq.DataContext dc)
        {
            DataLoadOptions opt = new DataLoadOptions();

            opt.LoadWith <Product>(p => p.Category);
            dc.LoadOptions = opt;
            return(dc.GetTable <Product>().SingleOrDefault(item => item.ID == id));
        }
Beispiel #10
0
        protected override StackInSheet GetingItemByID(string id, System.Data.Linq.DataContext dc)
        {
            DataLoadOptions opt = new DataLoadOptions();

            opt.LoadWith <StackInSheet>(s => s.Items);
            dc.LoadOptions = opt;
            StackInSheet sheet = dc.GetTable <StackInSheet>().SingleOrDefault(item => item.ID == id);

            return(sheet);
        }
Beispiel #11
0
        protected override PurchaseOrder GetingItemByID(string id, System.Data.Linq.DataContext dc)
        {
            DataLoadOptions opt = new DataLoadOptions();

            opt.LoadWith <PurchaseOrder>(item => item.Items);
            dc.LoadOptions = opt;
            PurchaseOrder sheet = dc.GetTable <PurchaseOrder>().SingleOrDefault(item => item.ID == id);

            return(sheet);
        }
Beispiel #12
0
        protected override OrderItemRecord GetingItemByID(Guid id, System.Data.Linq.DataContext dc)
        {
            DataLoadOptions opt = new DataLoadOptions();

            opt.LoadWith <OrderItemRecord>(item => item.Customer);
            opt.LoadWith <OrderItemRecord>(item => item.Product);
            opt.LoadWith <Product>(item => item.Category);
            dc.LoadOptions = opt;
            return(dc.GetTable <OrderItemRecord>().SingleOrDefault(item => item.ID == id));
        }
Beispiel #13
0
        public static void InsertOperationLog(string operation, string query, string program)
        {
            var username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
            var pcname   = System.Environment.MachineName;

            using (var context = new System.Data.Linq.DataContext(Central.SpecialConnStr))
            {
                context.ExecuteCommand("insert into log (id,username,computername,logdate,operation,queryon,program)" +
                                       " values ({0},{1},{2},{3},{4},{5},{6})", Guid.NewGuid(), username, pcname, DateTime.Now.Subtract(MinimalDate).Ticks, operation, query, program);
            }
        }
Beispiel #14
0
 public static ITable GetTableByName(this System.Data.Linq.DataContext context, string tableName)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context is empty");
     }
     if (tableName == null)
     {
         throw new ArgumentNullException("tableName is empty");
     }
     return((ITable)context.GetType().GetProperty(tableName).GetValue(context, null));
 }
Beispiel #15
0
 public static Dictionary <string, string> GetTableExtendedProperties(this System.Data.Linq.DataContext dc, string tableName)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetExtendedProperties());
 }
Beispiel #16
0
        public override bool Ping(DataContext dataContext)
        {
            var result = dataContext.ExecuteCommand("SELECT 11 FROM DUAL");

            if (result is decimal)
            {
                return((int)(decimal)result == 11);
            }
            else
            {
                return((int)result == 11);
            }
        }
Beispiel #17
0
 public static object FromCache(System.Data.Linq.DataContext dc, string cacheId)
 {
     try
     {
         object objCache;
         objCache = System.Web.HttpRuntime.Cache.Get(cacheId);
         return(objCache);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Beispiel #18
0
 public static string GetNewField(this System.Data.Linq.DataContext dc, string tableName)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetNewField());
 }
Beispiel #19
0
 public static string GetColumnExtendedProperty(this System.Data.Linq.DataContext dc, string tableName, string columnName, string property)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetColumnExtendedProperty(columnName, property));
 }
Beispiel #20
0
 public static void AddExtendedPropertyToColumn(this System.Data.Linq.DataContext dc, string tableName, string columnName, string propertyName, string value)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     tableHelper.AddExtendedPropertyToColumn(columnName, propertyName, value);
 }
Beispiel #21
0
 public static IEnumerable <string> GetTableColumnNames(this System.Data.Linq.DataContext dc, string tableName, string extendedProperty, string value)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetColumnNames(extendedProperty, value));
 }
Beispiel #22
0
 public static DateTime GetServerDateTime(this System.Data.Linq.DataContext dc)
 {
     Njit.Sql.ServerHelper serverHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         serverHelper = new Njit.Sql.ServerHelper(dc.Connection, dc.Transaction);
     }
     else
     {
         serverHelper = new Njit.Sql.ServerHelper(dc.Connection.ConnectionString);
     }
     return(serverHelper.GetServerDateTime());
 }
Beispiel #23
0
 public static string[] GetDatabaseList(this System.Data.Linq.DataContext dc)
 {
     Njit.Sql.DatabaseHelper databaseHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         databaseHelper = new Njit.Sql.DatabaseHelper(dc.Connection, dc.Transaction);
     }
     else
     {
         databaseHelper = new Njit.Sql.DatabaseHelper(dc.Connection.ConnectionString);
     }
     return(databaseHelper.GetDatabaseList());
 }
Beispiel #24
0
        /// <summary>
        /// Gets the data command for this query.
        /// </summary>
        /// <param name="dataContext">The data context to get the command from.</param>
        /// <returns>The requested command object.</returns>
        protected override DbCommand GetCommand(System.Data.Linq.DataContext dataContext)
        {
            ILinqToSqlFutureQuery futureQuery = this;
            var source = futureQuery.Query;

            // get static count method
            FindCountMethod();
            // create count expression
            var genericCount = _countMethod.MakeGenericMethod(new[] { source.ElementType });
            var expression   = Expression.Call(null, genericCount, source.Expression);

            return(dataContext.GetCommand(expression));
        }
Beispiel #25
0
 public static string GetServerTime(this System.Data.Linq.DataContext dc)
 {
     Njit.Sql.ServerHelper serverHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         serverHelper = new Njit.Sql.ServerHelper(dc.Connection, dc.Transaction);
     }
     else
     {
         serverHelper = new Njit.Sql.ServerHelper(dc.Connection.ConnectionString);
     }
     return(Njit.Common.PersianCalendar.GetTime(serverHelper.GetServerDateTime(), ":", true));
 }
Beispiel #26
0
 public static void DeleteTableExtendedProperty(this System.Data.Linq.DataContext dc, string tableName, string propertyName)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     tableHelper.DeleteTableExtendedProperty(propertyName);
 }
        protected override List <CustomerPayment> GetingItems(System.Data.Linq.DataContext dc, SearchCondition search)
        {
            IQueryable <CustomerPayment> ret = dc.GetTable <CustomerPayment>();

            if (search is SheetSearchCondition)
            {
                SheetSearchCondition con = search as SheetSearchCondition;
                if (con.SheetDate != null)
                {
                    ret = ret.Where(item => item.SheetDate >= con.SheetDate.Begin && item.SheetDate <= con.SheetDate.End);
                }
                if (con.LastActiveDate != null)
                {
                    ret = ret.Where(item => item.LastActiveDate >= con.LastActiveDate.Begin && item.LastActiveDate <= con.LastActiveDate.End);
                }
                if (con.SheetNo != null && con.SheetNo.Count > 0)
                {
                    ret = ret.Where(item => con.SheetNo.Contains(item.ID));
                }
                if (con.States != null && con.States.Count > 0)
                {
                    ret = ret.Where(item => con.States.Contains(item.State));
                }
            }
            if (search is CustomerPaymentSearchCondition)
            {
                CustomerPaymentSearchCondition con = search as CustomerPaymentSearchCondition;
                if (!string.IsNullOrEmpty(con.CustomerID))
                {
                    ret = ret.Where(item => item.CustomerID == con.CustomerID);
                }
                if (con.PaymentTypes != null && con.PaymentTypes.Count > 0)
                {
                    ret = ret.Where(item => con.PaymentTypes.Contains(item.ClassID));
                }
                if (con.HasRemain != null)
                {
                    if (con.HasRemain.Value)
                    {
                        ret = ret.Where(item => item.Assigned < item.Amount);
                    }
                    else
                    {
                        ret = ret.Where(item => item.Assigned >= item.Amount);
                    }
                }
            }
            List <CustomerPayment> sheets = ret.ToList();

            return(sheets);
        }
        public void DeleteAll()
        {
            using (PersonsDBEntities pb = conn.GetContext())
            {
                System.Configuration.ConnectionStringSettingsCollection connectionStrings =
                    WebConfigurationManager.ConnectionStrings as ConnectionStringSettingsCollection;

                if (connectionStrings.Count > 0)
                {
                    System.Data.Linq.DataContext db = new System.Data.Linq.DataContext(connectionStrings["ConnectionString"].ConnectionString);

                    db.ExecuteCommand("TRUNCATE TABLE TelContact");
                }
            }
        }
        public static String AnalyzeDBChanges(System.Data.Linq.DataContext db)
        {
            StringBuilder stringBuilder = new StringBuilder();

            foreach (object update in db.GetChangeSet().Updates)
            {
                stringBuilder.Append(FindLongStrings(update));
            }

            foreach (object insert in db.GetChangeSet().Inserts)
            {
                stringBuilder.Append(FindLongStrings(insert));
            }

            return(stringBuilder.ToString());
        }
Beispiel #30
0
        /// <summary>
        /// The unit tests will use this static version
        /// </summary>
        /// <param name="target"></param>
        /// <param name="outgoingData"></param>
        public static void SerializeTheQuery(object target, Stream str)
        {
            // get query
            IQueryable query = target as IQueryable;

            if (query == null)
            {
                Error(str, "Query visualizer invoked on non-IQueryable target.");
                return;
            }

            //get provider
            Type      tQueryImpl = query.GetType();
            FieldInfo fiContext  = tQueryImpl.GetField("context", BindingFlags.NonPublic | BindingFlags.Instance);

            if (fiContext == null)
            {
                Error(str, "Query field 'context' not found in type " + tQueryImpl.ToString() + ".");
                return;
            }

            Object objProvider = fiContext.GetValue(query);

            if (objProvider == null)
            {
                Error(str, "Query field 'context' returned null.");
                return;
            }

            System.Data.Linq.DataContext dataContext = objProvider as System.Data.Linq.DataContext;
            if (dataContext == null)
            {
                Error(str, "Query is not against a DataContext.");
                return;
            }

            //call visualizer to serialize query info
            //object objVisualizer = Activator.CreateInstance(providerVisualizerType);
            //SourceChooser iVisualizer = objVisualizer as IProviderQueryVisualizer;
            Visualizer      objVisualizer = new Visualizer();
            BinaryFormatter formatter     = new BinaryFormatter();

            objVisualizer.StreamQueryInfo(dataContext, query, str);
        }
 public override bool Ping(DataContext dataContext)
 {
     return dataContext.ExecuteCommand("SELECT 11 FROM DUAL") == 11;
 }
 public override IExecuteResult ExecuteMethodCall(DataContext context, MethodInfo method
                                                          , params object[] inputValues)
 {
     throw new NotImplementedException();
 }
Beispiel #33
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (!Equals(_dataContext, null))
         {
             _dataContext.Dispose();
             _dataContext = null;
         }
     }
 }
Beispiel #34
0
 internal DataSource(IDbConnection connection, DataContext dataContext, Mapping.MappingSource mappingSource)
 {
     Connection = connection;
     MappingSource = mappingSource;
     _dataContext = dataContext;
 }