public StockTemplate GetTemplate(int templateId)
        {
            StockTemplate targetTemplate = null;
            int           loginUserId    = LoginManager.Instance.GetUserId();

            if (_permissionManager.HasPermission(loginUserId, templateId, ResourceType.SpotTemplate, PermissionMask.View))
            {
                var template = _tempdbdao.Get(templateId);
                if (template != null && template.TemplateId == templateId)
                {
                    targetTemplate = ConvertToUIItem(template);
                }
                else
                {
                    targetTemplate = new StockTemplate();
                }
            }
            else
            {
                targetTemplate = new StockTemplate();
            }

            Model.UsageTracking.ActionStatus actionStatus = Model.UsageTracking.ActionStatus.Normal;
            if (targetTemplate.TemplateId == templateId)
            {
                actionStatus = Model.UsageTracking.ActionStatus.Success;
            }
            _userActionTrackingBLL.Create(loginUserId, Model.UsageTracking.ActionType.Get, ResourceType.SpotTemplate, templateId, 1, actionStatus, JsonUtil.SerializeObject(targetTemplate));

            return(targetTemplate);
        }
        private void ToolStripButton_ModifyTemplate_Click(object sender, System.EventArgs e)
        {
            StockTemplate stockTemplate = GetSelectTemplate();

            if (stockTemplate == null)
            {
                return;
            }

            TemplateDialog dialog = new TemplateDialog();

            dialog.SaveData     += new FormLoadHandler(Dialog_ModifyTemplate);
            dialog.Owner         = this;
            dialog.StartPosition = FormStartPosition.CenterParent;
            dialog.OnLoadControl(dialog, null);
            dialog.OnLoadData(dialog, stockTemplate);
            dialog.ShowDialog();
            if (dialog.DialogResult == System.Windows.Forms.DialogResult.OK)
            {
                MessageDialog.Info(this, msgModifySuccess);
                dialog.Dispose();
            }
            else
            {
                dialog.Close();
                dialog.Dispose();
            }
        }
        private void ToolStripButton_CopyTemplate_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            string        templateName = string.Format("copy_{0}", template.TemplateName);
            StockTemplate temp         = new StockTemplate
            {
                TemplateName  = templateName,
                FutureCopies  = template.FutureCopies,
                MarketCapOpt  = template.MarketCapOpt,
                EReplaceType  = template.EReplaceType,
                EWeightType   = template.EWeightType,
                Benchmark     = template.Benchmark,
                CreatedUserId = template.CreatedUserId,
                EStatus       = template.EStatus,
                DCreatedDate  = DateTime.Now,
                CanEditUsers  = template.CanEditUsers,
                CanViewUsers  = template.CanViewUsers,
                Permissions   = template.Permissions,
            };

            StockTemplate newtemp = _templateBLL.CreateTemplate(temp);

            if (newtemp.TemplateId > 0)
            {
                _tempDataSource.Add(newtemp);
            }

            this.tempGridView.Invalidate();
        }
Example #4
0
        private void ToolStripButton_Save_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            if (_spotDataSource.Count <= 0)
            {
                return;
            }

            int ret = _templateBLL.Replace(template.TemplateId, _spotDataSource.ToList());

            if (ret > 0)
            {
                SwitchTemplateStockSave(false);

                //更新时间
                template.DModifiedDate = DateTime.Now;

                this.tempGridView.Invalidate();
            }
        }
Example #5
0
        public StockTemplate CreateTemplate(StockTemplate template)
        {
            var dbItem     = ConvertToDBItem(template);
            int templateId = _tempdbdao.Create(dbItem);

            if (templateId > 0)
            {
                template.TemplateId = templateId;
                int userId = LoginManager.Instance.GetUserId();

                //Add the usage tracking information
                _userActionTrackingBLL.Create(userId, Model.UsageTracking.ActionType.Create, ResourceType.SpotTemplate, templateId, 1, Model.UsageTracking.ActionStatus.Success, JsonUtil.SerializeObject(template));

                var perms = _permissionManager.GetOwnerPermission();
                _permissionManager.GrantPermission(userId, templateId, ResourceType.SpotTemplate, perms);

                foreach (var perm in template.Permissions)
                {
                    if (perm.Token != userId)
                    {
                        bool isUpdated = (perm.Id > 0) ? true : false;
                        _permissionManager.ChangePermission(perm.Token, template.TemplateId, ResourceType.SpotTemplate, perm.Permission, isUpdated);
                    }
                }
            }

            return(template);
        }
        public int UpdateTemplate(StockTemplate template)
        {
            int userId = LoginManager.Instance.GetUserId();

            if (_permissionManager.HasPermission(userId, template.TemplateId, ResourceType.SpotTemplate, PermissionMask.Edit))
            {
                var dbItem = ConvertToDBItem(template);
                int tempId = _tempdbdao.Update(dbItem);
                if (tempId > 0)
                {
                    //add the usage tracking
                    _userActionTrackingBLL.Create(userId, Model.UsageTracking.ActionType.Edit, ResourceType.SpotTemplate, template.TemplateId, 1, Model.UsageTracking.ActionStatus.Success, JsonUtil.SerializeObject(template));

                    //update the permission
                    foreach (var perm in template.Permissions)
                    {
                        bool isUpdated = (perm.Id > 0) ? true : false;
                        _permissionManager.ChangePermission(perm.Token, template.TemplateId, ResourceType.SpotTemplate, perm.Permission, isUpdated);
                    }

                    return(tempId);
                }
                else
                {
                    return(-1);
                }
            }
            else
            {
                return(-1);
            }
        }
Example #7
0
        private StockTemplate SaveTemplateToDB(StockTemplate stockTemplate, TempChangeType type)
        {
            switch (type)
            {
            case TempChangeType.New:
            {
                var template = _templateBLL.CreateTemplate(stockTemplate);
                stockTemplate.TemplateId = template.TemplateId;
            }
            break;

            case TempChangeType.Update:
            {
                int tempid = _templateBLL.UpdateTemplate(stockTemplate);
                if (tempid > 0)
                {
                    stockTemplate.TemplateId = tempid;
                }
                else
                {
                    MessageDialog.Error(this, msgModifyFail);
                }
            }
            break;

            default:
                break;
            }
            return(stockTemplate);
        }
Example #8
0
        public int ArchiveTemplate(StockTemplate template)
        {
            ArchiveStockTemplate hst = new ArchiveStockTemplate(template);

            hst.DArchiveDate = DateTime.Now;

            int archiveId = -1;
            var stocks    = _stockdbdao.Get(template.TemplateId);

            if (stocks != null)
            {
                archiveId = _templatedao.Archive(hst, stocks);
                if (archiveId > 0)
                {
                    //add permission
                    foreach (var perm in hst.Permissions)
                    {
                        _permissionManager.ChangePermission(perm.Token, archiveId, Model.Permission.ResourceType.HistoricalSpotTemplate, perm.Permission, false);
                    }
                }
                else
                {
                    archiveId = -1;
                }
            }

            return(archiveId);
        }
Example #9
0
        private void ToolStripButton_DeleteTemplate_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            //archive before deleting
            ArchiveTemplate(template);

            //delete
            int ret = _templateBLL.DeleteTemplate(template);

            if (ret == 1)
            {
                _tempDataSource.Remove(template);
                tempGridView.Invalidate();

                MessageDialog.Info(this, msgDeleteTempSuccess);
            }
            else
            {
                MessageDialog.Warn(this, msgDeleteTemp);
            }
        }
Example #10
0
        private bool Dialog_ModifyTemplate(object sender, object data)
        {
            if (!(data is StockTemplate))
            {
                return(false);
            }

            StockTemplate stockTemplate = data as StockTemplate;

            stockTemplate = SaveTemplateToDB(stockTemplate, TempChangeType.Update);

            //update the row in the view
            if (stockTemplate.TemplateId > 0)
            {
                int targetIndex = _tempDataSource.ToList().FindIndex(p => p.TemplateId == stockTemplate.TemplateId);
                if (targetIndex >= 0 && targetIndex < _tempDataSource.Count)
                {
                    //archive the old template
                    ArchiveTemplate(_tempDataSource[targetIndex]);

                    _tempDataSource[targetIndex] = stockTemplate;
                }
            }

            return(true);
        }
Example #11
0
        private void ToolStripButton_DeleteStock_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            var deleteItems = _spotDataSource.Where(p => p.Selection).ToList();

            //List<int> selectIndex = TSDataGridViewHelper.GetSelectRowIndex(this.secuGridView);
            if (deleteItems == null || deleteItems.Count == 0)
            {
                MessageDialog.Warn(this, msgDeleteSecuritySelect);
                return;
            }

            string format = ConfigManager.Instance.GetLabelConfig().GetLabelText(msgDeleteSecurity);
            string msg    = string.Format(format, template.TemplateId, template.TemplateName, deleteItems.Count);

            if (MessageDialog.Warn(this, msg, MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
            {
                return;
            }

            //List<TemplateStock> deleteItems = new List<TemplateStock>();
            //for (int i = 0, count = selectIndex.Count; i < count; i++)
            //{
            //    int rowIndex = selectIndex[i];
            //    if (rowIndex >= 0 && rowIndex < _spotDataSource.Count)
            //    {
            //        deleteItems.Add(_spotDataSource[rowIndex]);
            //    }
            //}

            //archive template
            ArchiveTemplate(template);

            foreach (var deleteItem in deleteItems)
            {
                _spotDataSource.Remove(deleteItem);
            }

            //int success = _templateBLL.DeleteStock(deleteItems);
            //if (success > 0)
            //{


            //    MessageDialog.Info(this, msgSecurityDeleteSuccess);
            //}
            //else
            //{
            //    MessageDialog.Info(this, msgSecurityDeleteFail);
            //}

            SwitchTemplateStockSave(true);
        }
Example #12
0
        private void ToolStripButton_ModifyTemplate_Click(object sender, System.EventArgs e)
        {
            StockTemplate stockTemplate = GetSelectTemplate();

            if (stockTemplate == null)
            {
                return;
            }

            ModifyTemplate(stockTemplate);
        }
Example #13
0
        private void GridView_Template_MouseDoubleClick(object sender, int rowIndex, int columnIndex)
        {
            //检查点击事件是否触发在有效的表各项中
            if (rowIndex < 0 || rowIndex >= _tempDataSource.Count)
            {
                return;
            }

            StockTemplate template = _tempDataSource[rowIndex];

            ModifyTemplate(template);
        }
Example #14
0
        private void FillData(StockTemplate stockTemplate)
        {
            this.tbTemplateNo.Text    = stockTemplate.TemplateId.ToString();
            this.tbTemplateNo.Enabled = false;

            this.tbTemplateName.Text = stockTemplate.TemplateName;

            this.tbFutureCopies.Text = stockTemplate.FutureCopies.ToString();
            this.tbMarketCapOpt.Text = stockTemplate.MarketCapOpt.ToString();

            ComboBoxUtil.SetComboBoxSelect(this.cbBenchmark, stockTemplate.Benchmark);
            ComboBoxUtil.SetComboBoxSelect(this.cbWeightType, stockTemplate.EWeightType.ToString());
            ComboBoxUtil.SetComboBoxSelect(this.cbReplaceType, stockTemplate.EReplaceType.ToString());
        }
        private void GrantPermission(int userId, int templateId, StockTemplate template)
        {
            var perms = _permissionManager.GetOwnerPermission();

            _permissionManager.GrantPermission(userId, templateId, ResourceType.SpotTemplate, perms);

            foreach (var perm in template.Permissions)
            {
                if (perm.Token != userId)
                {
                    bool isUpdated = (perm.Id > 0) ? true : false;
                    _permissionManager.ChangePermission(perm.Token, template.TemplateId, ResourceType.SpotTemplate, perm.Permission, isUpdated);
                }
            }
        }
        public int Copy(int oldTemplateId, StockTemplate template)
        {
            var dbItem     = ConvertToDBItem(template);
            int templateId = _templatedao.Copy(oldTemplateId, dbItem);

            if (templateId > 0)
            {
                template.TemplateId = templateId;

                int userId = LoginManager.Instance.GetUserId();
                _userActionTrackingBLL.Create(userId, Model.UsageTracking.ActionType.Edit, ResourceType.SpotTemplate, templateId, template.TemplateId, Model.UsageTracking.ActionStatus.Normal, "Copy template stock");
                GrantPermission(userId, templateId, template);
            }

            return(templateId);
        }
Example #17
0
        private bool Dialog_NewTemplate(object sender, object data)
        {
            if (data is StockTemplate)
            {
                StockTemplate stockTemplate = data as StockTemplate;
                stockTemplate = SaveTemplateToDB(stockTemplate, TempChangeType.New);

                //add into the view
                if (stockTemplate.TemplateId > 0)
                {
                    _tempDataSource.Add(stockTemplate);
                }
            }

            return(true);
        }
Example #18
0
        private List <SecurityItem> GetSecurityItems(StockTemplate template)
        {
            List <SecurityItem> secuList = new List <SecurityItem>();
            var benchmarkItem            = SecurityInfoManager.Instance.Get(template.Benchmark, SecurityType.Index);

            if (benchmarkItem != null)
            {
                secuList.Add(benchmarkItem);
            }

            foreach (var stock in _spotDataSource)
            {
                var secuItem = SecurityInfoManager.Instance.Get(stock.SecuCode, SecurityType.Stock);
                secuList.Add(secuItem);
            }

            return(secuList);
        }
        public StockTemplate CreateTemplate(StockTemplate template)
        {
            var dbItem     = ConvertToDBItem(template);
            int templateId = _tempdbdao.Create(dbItem);

            if (templateId > 0)
            {
                template.TemplateId   = templateId;
                template.DCreatedDate = DateTime.Now;
                int userId = LoginManager.Instance.GetUserId();

                //Add the usage tracking information
                _userActionTrackingBLL.Create(userId, Model.UsageTracking.ActionType.Create, ResourceType.SpotTemplate, templateId, 1, Model.UsageTracking.ActionStatus.Success, JsonUtil.SerializeObject(template));

                GrantPermission(userId, templateId, template);
            }

            return(template);
        }
        private StockTemplate ConvertToUIItem(TemplateItem dbItem)
        {
            var uiItem = new StockTemplate
            {
                TemplateId    = dbItem.TemplateId,
                TemplateName  = dbItem.TemplateName,
                EStatus       = dbItem.EStatus,
                EWeightType   = dbItem.EWeightType,
                EReplaceType  = dbItem.EReplaceType,
                FutureCopies  = dbItem.FutureCopies,
                MarketCapOpt  = dbItem.MarketCapOpt,
                Benchmark     = dbItem.Benchmark,
                DCreatedDate  = dbItem.DCreatedDate,
                DModifiedDate = dbItem.DModifiedDate,
                CreatedUserId = dbItem.CreatedUserId,
            };

            return(uiItem);
        }
        private TemplateItem ConvertToDBItem(StockTemplate uiItem)
        {
            var dbItem = new TemplateItem
            {
                TemplateId    = uiItem.TemplateId,
                TemplateName  = uiItem.TemplateName,
                EStatus       = uiItem.EStatus,
                EWeightType   = uiItem.EWeightType,
                EReplaceType  = uiItem.EReplaceType,
                FutureCopies  = uiItem.FutureCopies,
                MarketCapOpt  = uiItem.MarketCapOpt,
                Benchmark     = uiItem.Benchmark,
                DCreatedDate  = uiItem.DCreatedDate,
                DModifiedDate = uiItem.DModifiedDate,
                CreatedUserId = uiItem.CreatedUserId,
            };

            return(dbItem);
        }
        private void ToolStripButton_DeleteTemplate_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            int ret = _templateBLL.DeleteTemplate(template);

            if (ret == 1)
            {
                MessageDialog.Info(this, msgDeleteTempSuccess);
            }
            else
            {
                MessageDialog.Warn(this, msgDeleteTemp);
            }
        }
Example #23
0
        private void Button_Confirm_Click(object sender, EventArgs e)
        {
            StockTemplate stockTemplate = GetTemplate();

            if (CheckInputValue(stockTemplate))
            {
                if (OnSave(this, stockTemplate))
                {
                    DialogResult = System.Windows.Forms.DialogResult.OK;
                }
                else
                {
                    DialogResult = System.Windows.Forms.DialogResult.No;
                }
            }
            else
            {
                DialogResult = System.Windows.Forms.DialogResult.No;
            }
        }
        public int DeleteTemplate(StockTemplate template)
        {
            int ret    = -1;
            int userId = LoginManager.Instance.GetUserId();

            if (_permissionManager.HasPermission(userId, template.TemplateId, ResourceType.SpotTemplate, PermissionMask.Delete))
            {
                //TODO: delete the permission, too.
                ret = _tempdbdao.Delete(template.TemplateId);
                if (ret > 0)
                {
                    //Remove the permission row in the database directly. NOT revoke!!!!!
                    _permissionManager.Delete(template.TemplateId, ResourceType.SpotTemplate);
                    //add the usage tracking
                    _userActionTrackingBLL.Create(userId, Model.UsageTracking.ActionType.Delete, ResourceType.SpotTemplate, template.TemplateId, 1, Model.UsageTracking.ActionStatus.Success, JsonUtil.SerializeObject(template));
                }
            }

            return(ret);
        }
Example #25
0
        private void ToolStripButton_CopyTemplate_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            string        templateName = string.Format("copy_{0}", template.TemplateName);
            StockTemplate temp         = new StockTemplate
            {
                TemplateName  = templateName,
                FutureCopies  = template.FutureCopies,
                MarketCapOpt  = template.MarketCapOpt,
                EReplaceType  = template.EReplaceType,
                EWeightType   = template.EWeightType,
                Benchmark     = template.Benchmark,
                CreatedUserId = LoginManager.Instance.GetUserId(),
                EStatus       = template.EStatus,
                DCreatedDate  = DateTime.Now,
                CanEditUsers  = template.CanEditUsers,
                CanViewUsers  = template.CanViewUsers,
                Permissions   = template.Permissions,
            };

            int newTemplateId = _templateBLL.Copy(template.TemplateId, temp);

            if (newTemplateId > 0)
            {
                temp.TemplateId = newTemplateId;
                _tempDataSource.Add(temp);
                //如果需要切换到新的模板,可以在此处理
            }
            else
            {
                MessageDialog.Fail(this, msgCopyFail);
            }

            this.tempGridView.Invalidate();
        }
Example #26
0
        private void CalculateAmount(StockTemplate template)
        {
            List <SecurityItem> secuList = GetSecurityItems(template);

            //QuoteCenter.Instance.Query(secuList);

            double[] prices  = GetPrices(secuList);
            int[]    amounts = _spotDataSource.Select(p => p.Amount).ToArray();
            double[] mktCaps = GetMarketCap(prices, amounts);

            double totalCap = mktCaps.Sum();

            for (int i = 0, count = _spotDataSource.Count; i < count; i++)
            {
                var stock = _spotDataSource[i];
                stock.Amount          = amounts[i];
                stock.MarketCap       = mktCaps[i];
                stock.MarketCapWeight = 100 * stock.MarketCap / totalCap;
                stock.SettingWeight   = stock.MarketCapWeight;
            }
        }
        private void ToolStripButton_Save_Click(object sender, EventArgs e)
        {
            StockTemplate template = GetSelectTemplate();

            if (template == null)
            {
                return;
            }

            if (_spotDataSource.Count <= 0)
            {
                return;
            }

            int ret = _templateBLL.Replace(template.TemplateId, _spotDataSource.ToList());

            if (ret > 0)
            {
                SwitchTemplateStockSave(false);
            }
        }
        private List <SecurityItem> GetSecurityItems(StockTemplate template)
        {
            List <SecurityItem> secuList = new List <SecurityItem>();
            var benchmarkItem            = _securityInfoList.Find(p => p.SecuCode.Equals(template.Benchmark) && p.SecuType == SecurityType.Index);

            if (benchmarkItem != null)
            {
                secuList.Add(benchmarkItem);
            }

            foreach (var stock in _spotDataSource)
            {
                var findItem = _securityInfoList.Find(p => p.SecuCode.Equals(stock.SecuCode) && p.SecuType == SecurityType.Stock);
                if (findItem != null)
                {
                    secuList.Add(findItem);
                }
            }

            return(secuList);
        }
Example #29
0
        private void ModifyTemplate(StockTemplate template)
        {
            TemplateDialog dialog = new TemplateDialog();

            dialog.SaveData     += new FormSaveHandler(Dialog_ModifyTemplate);
            dialog.Owner         = this;
            dialog.StartPosition = FormStartPosition.CenterParent;
            dialog.OnLoadControl(dialog, null);
            dialog.OnLoadData(dialog, template);
            dialog.ShowDialog();
            if (dialog.DialogResult == System.Windows.Forms.DialogResult.OK)
            {
                MessageDialog.Info(this, msgModifySuccess);
                dialog.Dispose();
            }
            else
            {
                dialog.Close();
                dialog.Dispose();
            }
        }
Example #30
0
        private bool Form_LoadData(object sender, object data)
        {
            if (sender == null || data == null)
            {
                return(false);
            }
            if (!(data is StockTemplate))
            {
                return(false);
            }

            StockTemplate stockTemplate = data as StockTemplate;

            if (stockTemplate != null)
            {
                _oldTemplate = stockTemplate;
                FillData(_oldTemplate);
                SetUserPermission(_oldTemplate);
            }

            return(true);
        }