示例#1
0
        public async Task <EntityEntry <MarketGroup> > AddOrUpdateAsync(MarketGroup entity)
        {
            var exists = await FindAsync <MarketGroup>(entity.MarketGroupId);

            if (exists == null)
            {
                return(Add(entity));
            }
            else
            {
                Entry(exists).CurrentValues.SetValues(entity);
                return(Entry(entity));
            }
        }
        public bool MarketGroupSave(MarketGroup obj)
        {
            bool   retVal   = true;
            string procName = "";

            if (obj.Type == "Master")
            {
                procName = (obj.Id == 0 ? "dbo.OXO_Master_MarketGroup_New" : "dbo.OXO_Master_MarketGroup_Edit");
            }
            else
            {
                procName = (obj.Id == 0 ? "dbo.OXO_Programme_MarketGroup_New" : "dbo.OXO_Programme_MarketGroup_Edit");
            }

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    obj.Save(CurrentCDSID);

                    var para = new DynamicParameters();
                    para.Add("@p_Group_Name", obj.GroupName, DbType.String, size: 500);
                    if (obj.Type != "Master")
                    {
                        para.Add("@p_prog_id", obj.ProgrammeId, DbType.Int32);
                    }
                    para.Add("@p_Active", obj.Active, DbType.Boolean);
                    para.Add("@p_Display_Order", obj.DisplayOrder, DbType.Int32);
                    para.Add("@p_Created_By", obj.CreatedBy, DbType.String, size: 8);
                    para.Add("@p_Created_On", obj.CreatedOn, DbType.DateTime);
                    para.Add("@p_Updated_By", obj.UpdatedBy, DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, DbType.DateTime);
                    para.Add("@p_Id", obj.Id, DbType.Int32, ParameterDirection.InputOutput);
                    conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

                    if (obj.Id == 0)
                    {
                        obj.Id = para.Get <int>("@p_Id");
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return(retVal);
        }
示例#3
0
        /// <summary>
        /// Create the tree nodes for the given category and add them to the given nodes collection.
        /// </summary>
        /// <param name="group"></param>
        /// <param name="nodeCollection"></param>
        /// <returns></returns>
        private int BuildSubtree(MarketGroup group, TreeNodeCollection nodeCollection)
        {
            // Total items count in this category and its subcategories
            int result = 0;

            // Add all subcategories
            foreach (MarketGroup childGroup in group.SubGroups)
            {
                TreeNode node = new TreeNode
                {
                    Text = childGroup.Name,
                    Tag  = childGroup
                };

                // Add this subcategory's items count
                result += BuildSubtree(childGroup, node.Nodes);

                // Only add if this subcategory has children
                if (node.GetNodeCount(true) > 0)
                {
                    nodeCollection.Add(node);
                }
            }

            // Add all items
            foreach (TreeNode node in group.Items
                     .Where(x => UsabilityPredicate(x) &&
                            m_slotPredicate(x) &&
                            m_metaGroupPredicate(x) &&
                            m_fittingPredicate(x))
                     .Select(childItem =>
                             new TreeNode
            {
                Text = childItem.Name,
                Tag = childItem
            }))
            {
                nodeCollection.Add(node);
                result++;
            }

            return(result);
        }
        public MarketGroup MarketGroupGet(string type, int id, int progid = 0, int docid = 0, bool deepGet = false)
        {
            MarketGroup retVal   = null;
            string      procName = (type == "Master" ? "dbo.OXO_Master_MarketGroup_Get" : "dbo.OXO_Programme_MarketGroup_Get");

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    para.Add("@p_Id", id, DbType.Int32);
                    if (type != "Master")
                    {
                        para.Add("@p_prog_id", progid, DbType.Int32);
                        para.Add("@p_doc_id", docid, DbType.Int32);
                    }
                    para.Add("@p_deep_get", deepGet, DbType.Boolean);

                    using (var multi = conn.QueryMultiple(procName, para, commandType: CommandType.StoredProcedure))
                    {
                        retVal = multi.Read <MarketGroup>().FirstOrDefault();
                        if (deepGet)
                        {
                            var markets = multi.Read <Market>().ToList();
                            if (retVal != null)
                            {
                                retVal.Markets = markets.ToList();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return(retVal);
        }
        /// <summary>
        /// Recursively creates tree nodes for the children market groups of the given group.
        /// The added items will be the ones which require the current skill (<see cref="m_skill"/>) at the specified level.
        /// </summary>
        /// <param name="marketGroup">The market group.</param>
        /// <param name="items">The items.</param>
        /// <returns></returns>
        private IEnumerable <TreeNode> CreateMarketGroupsNode(MarketGroup marketGroup, IEnumerable <Item> items)
        {
            // Add categories
            foreach (MarketGroup category in marketGroup.SubGroups)
            {
                IEnumerable <TreeNode> children = CreateMarketGroupsNode(category, items);
                if (children.IsEmpty())
                {
                    continue;
                }

                TreeNode node = new TreeNode(category.Name);
                node.Nodes.AddRange(children.ToArray());
                yield return(node);
            }

            // Add items
            foreach (Item item in items.Where(x => x.MarketGroup == marketGroup))
            {
                yield return(CreateNode(item, item.Prerequisites.ToCharacter(m_character)));
            }
        }
示例#6
0
            private void MarketGoupsPage_PageUpdated(object page)
            {
                List <int> groups = new List <int>();

                lock (this)
                {
                    if (items.Count > 0)
                    {
                        // Copy the list.
                        groups = new List <int>(items);
                    }
                }
                // Release the lock before creating more items that might cause deadlocks.
                foreach (int groupID in groups)
                {
                    if (!marketGroups.ContainsKey(groupID))
                    {
                        marketGroups[groupID] = new MarketGroup(groupID);
                    }
                    marketGroups[groupID].ScheduleRefresh();
                }
            }
示例#7
0
        /// <summary>
        /// Create the tree nodes for the given caegory and add them to the given nodes collection
        /// </summary>
        /// <param name="cat"></param>
        /// <param name="nodeCollection"></param>
        /// <returns></returns>
        private int BuildSubtree(MarketGroup group, TreeNodeCollection nodeCollection)
        {
            // Total items count in this cateory and its subcategories
            int result = 0;

            // Add all subcategories
            var subcategories = group.SubGroups;

            foreach (MarketGroup childGroup in subcategories)
            {
                TreeNode tn = new TreeNode();
                tn.Text = childGroup.Name;

                // add this subcateory's items count
                result += BuildSubtree(childGroup, tn.Nodes);

                // Only add if this subcategory has children
                if (tn.GetNodeCount(true) > 0)
                {
                    nodeCollection.Add(tn);
                }
            }

            // Add all items
            var items = group.Items.Where(
                x => m_slotPredicate(x) && m_metaGroupPredicate(x) && m_fittingPredicate(x) && m_usabilityPredicate(x));

            foreach (Item childItem in items)
            {
                TreeNode tn = new TreeNode();
                tn.Text = childItem.Name;
                tn.Tag  = childItem;

                nodeCollection.Add(tn);
                result++;
            }
            return(result);
        }
示例#8
0
        private static MarketGroup GetMarketGroup(IDataContext context, MarketGroup forMarketGroup, OXODoc forDocument)
        {
            MarketGroup marketGroup  = null;
            var         cacheKey     = string.Format("MarketGroup_{0}", forMarketGroup.Id);
            var         cachedLookup = HttpContext.Current.Cache.Get(cacheKey);

            if (cachedLookup != null)
            {
                marketGroup = (MarketGroup)cachedLookup;
            }
            else
            {
                marketGroup = context.Market.GetMarketGroup(new VolumeFilter()
                {
                    MarketGroupId = forMarketGroup.Id, OxoDocId = forDocument.Id, ProgrammeId = forDocument.ProgrammeId
                });
                if (!(marketGroup is EmptyMarketGroup) && marketGroup.Id != 0)
                {
                    HttpContext.Current.Cache.Add(cacheKey, marketGroup, null, DateTime.Now.AddMinutes(60), Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
                }
            }
            return(marketGroup);
        }
示例#9
0
        /// <summary>
        /// Create the tree nodes for the given group and add them to the given nodes collection
        /// </summary>
        /// <param name="group"></param>
        /// <param name="nodeCollection"></param>
        /// <returns></returns>
        private int BuildSubtree(MarketGroup group, TreeNodeCollection nodeCollection)
        {
            // Total items count in this category and its subcategories
            int result = 0;

            // Add all subcategories
            foreach (MarketGroup childGroup in group.SubGroups)
            {
                TreeNode node = new TreeNode()
                {
                    Text = childGroup.Name
                };

                // Add this subcategory's items count
                result += BuildSubtree(childGroup, node.Nodes);

                // Only add if this subcategory has children
                if (node.GetNodeCount(true) > 0)
                {
                    nodeCollection.Add(node);
                }
            }

            // Add all items
            foreach (Item childItem in group.Items.Where(m_usabilityPredicate).Where(m_racePredicate))
            {
                TreeNode node = new TreeNode()
                {
                    Text = childItem.Name,
                    Tag  = childItem
                };

                nodeCollection.Add(node);
                result++;
            }
            return(result);
        }
示例#10
0
 bool IEveRepository.TryGetMarketGroupById(MarketGroupId id, out MarketGroup value)
 {
     throw new NotImplementedException();
 }
示例#11
0
        public FixExchange[] GetFixExchangeInfo()
        {
            List <FixExchange> exchanges = new List <FixExchange>();
            string             query     = "select * from exchanges";
            DBManager          db        = new DBManager(DataProvider.SqlServer, SystemConfigurations.GetConnectionString("BasicDataDBConnectionString"));

            db.Open();
            DataSet ds = db.ExecuteDataSet(System.Data.CommandType.Text, query);

            //string today = DateTime.Today.DayOfWeek.ToString();
            foreach (DataRow rowExchange in ds.Tables[0].Rows)
            {
                FixExchange exchange = new FixExchange();
                exchange.ExchangeID = rowExchange["ExchangeID"].ToString();
                exchange.NameAr     = rowExchange["NameAr"].ToString();
                exchange.NameEn     = rowExchange["NameEn"].ToString();
                List <ExchangeMarket> markets = new List <ExchangeMarket>();
                string    queryMarkets        = string.Format("select * from Exchanges_Markets where exchangeid = '{0}'", exchange.ExchangeID);
                DataTable dtMarkets           = db.ExecuteDataSet(System.Data.CommandType.Text, queryMarkets).Tables[0];
                foreach (DataRow rowMarket in dtMarkets.Rows)
                {
                    ExchangeMarket market = new ExchangeMarket();
                    market.ExchangeID = exchange.ExchangeID;
                    market.MarketID   = rowMarket["MarketID"].ToString();
                    market.NameAr     = rowMarket["NameAr"].ToString();
                    market.NameEn     = rowMarket["NameEn"].ToString();

                    string             queryGroups = string.Format("select * from Markets_Groups where exchangeid = '{0}' and marketid = '{1}';", exchange.ExchangeID, market.MarketID);
                    DataTable          dtGroups    = db.ExecuteDataSet(System.Data.CommandType.Text, queryGroups).Tables[0];
                    List <MarketGroup> groups      = new List <MarketGroup>();
                    foreach (DataRow rowGroup in dtGroups.Rows)
                    {
                        MarketGroup group = new MarketGroup();
                        group.ExchangeID = exchange.ExchangeID;
                        group.MarketID   = market.MarketID;
                        group.GroupID    = rowGroup["GroupID"].ToString();

                        List <GroupSession> sessions = new List <GroupSession>();
                        string    querySessions      = string.Format("select * from Markets_Groups_Sessions where exchangeid = '{0}' and marketid = '{1}' and groupid = '{2}';", exchange.ExchangeID, market.MarketID, group.GroupID);
                        DataTable dtSessions         = db.ExecuteDataSet(System.Data.CommandType.Text, querySessions).Tables[0];
                        foreach (DataRow rowSessions in dtSessions.Rows)
                        {
                            GroupSession session = new GroupSession();
                            session.ExchangeID       = exchange.ExchangeID;
                            session.GroupID          = group.GroupID;
                            session.MarketID         = market.MarketID;
                            session.SessionStartTime = (DateTime)rowSessions["SessionStartTime"];
                            session.SessionEndTime   = (DateTime)rowSessions["SessionEndTime"];
                            session.WorkingDays      = rowSessions["WorkingDays"].ToString();
                            sessions.Add(session);
                        }
                        group.Sessions = sessions.ToArray();
                        groups.Add(group);
                    }
                    market.Groups = groups.ToArray();
                    markets.Add(market);
                }
                exchange.Markets = markets.ToArray();
                exchanges.Add(exchange);
            }
            db.Close();
            db = null;
            return(exchanges.ToArray());
        }