Пример #1
0
        public IBSampleApp()
        {
            InitializeComponent();
            ibClient              = new IBClient(this);
            marketDataManager     = new MarketDataManager(ibClient, marketDataGrid_MDT);
            deepBookManager       = new DeepBookManager(ibClient, deepBookGrid);
            historicalDataManager = new HistoricalDataManager(ibClient, historicalChart, barsGrid);
            realTimeBarManager    = new RealTimeBarsManager(ibClient, rtBarsChart, rtBarsGrid);
            scannerManager        = new ScannerManager(ibClient, scannerGrid);
            orderManager          = new OrderManager(ibClient, liveOrdersGrid, tradeLogGrid);
            accountManager        = new AccountManager(ibClient, accountSelector, accSummaryGrid, accountValuesGrid, accountPortfolioGrid, positionsGrid);
            contractManager       = new ContractManager(ibClient, fundamentalsOutput, contractDetailsGrid);
            advisorManager        = new AdvisorManager(ibClient, advisorAliasesGrid, advisorGroupsGrid, advisorProfilesGrid);
            optionsManager        = new OptionsManager(ibClient, optionChainCallGrid, optionChainPutGrid, optionPositionsGrid);

            mdContractRight.Items.AddRange(ContractRight.GetAll());
            mdContractRight.SelectedIndex = 0;

            conDetRight.Items.AddRange(ContractRight.GetAll());
            conDetRight.SelectedIndex = 0;

            fundamentalsReportType.Items.AddRange(FundamentalsReport.GetAll());
            fundamentalsReportType.SelectedIndex = 0;

            this.groupMethod.DataSource    = AllocationGroupMethod.GetAsData();
            this.groupMethod.ValueMember   = "Value";
            this.groupMethod.DisplayMember = "Name";

            this.profileType.DataSource    = AllocationProfileType.GetAsData();
            this.profileType.ValueMember   = "Value";
            this.profileType.DisplayMember = "Name";
        }
        public void UpdateAdvisor_succeeded_if_Advisor_is_valid()
        {
            //arrange
            var uow  = new Mock <IUnitOfWork>();
            var repo = new Mock <IAdvisorRepository>();

            repo.Setup(r => r.Update(It.IsNotNull <Advisor>()))
            .Verifiable();

            uow.Setup(u => u.SaveChanges())
            .ReturnsAsync(1)
            .Verifiable();

            uow.Setup(u => u.AdvisorRepository)
            .Returns(repo.Object)
            .Verifiable();

            var manager = new AdvisorManager(uow.Object);
            //act
            var result = manager.Update(new Advisor()).Result;

            //assert
            repo.Verify();
            uow.Verify();
            Assert.True(result.Succeeded);
        }
        public void Get_succeeded_if_username_is_valid()
        {
            //arrange
            var uow     = new Mock <IUnitOfWork>();
            var repo    = new Mock <IUserRepository>();
            var admRepo = new Mock <IAdvisorRepository>();

            repo.Setup(r => r.FindByUserName(It.IsNotNull <string>()))
            .ReturnsAsync(new User {
                UserId = Guid.NewGuid()
            })
            .Verifiable();

            admRepo.Setup(a => a.FindById(It.Is <Guid>(g => g != Guid.Empty)))
            .ReturnsAsync(new Advisor())
            .Verifiable();

            uow.Setup(u => u.AdvisorRepository)
            .Returns(admRepo.Object)
            .Verifiable();

            uow.Setup(u => u.UserRepository)
            .Returns(repo.Object)
            .Verifiable();

            var manager = new AdvisorManager(uow.Object);
            //act
            var result = manager.Get("name").Result;

            //assert
            repo.Verify();
            admRepo.Verify();
            uow.Verify();
            Assert.NotNull(result);
        }
        public void CreateAdvisor_succeeded_if_Advisor_is_valid()
        {
            //arrange
            var Advisors = new List <Advisor>();
            var uow      = new Mock <IUnitOfWork>();
            var repo     = new Mock <IUserRepository>();

            repo.Setup(r => r.AddAdvisor(It.IsNotNull <Advisor>()))
            .Callback <Advisor>(a => Advisors.Add(a))
            .Verifiable();

            uow.Setup(u => u.SaveChanges())
            .ReturnsAsync(1)
            .Verifiable();

            uow.Setup(u => u.UserRepository)
            .Returns(repo.Object)
            .Verifiable();

            var manager = new AdvisorManager(uow.Object);
            //act
            var result = manager.Create(new Advisor()).Result;

            //assert
            repo.Verify();
            uow.Verify();
            Assert.True(result.Succeeded);
            Assert.Equal(1, Advisors.Count);
        }
        public void Get_returns_null_if_username_is_not_valid()
        {
            //arrange
            var uow     = Mock.Of <IUnitOfWork>();
            var manager = new AdvisorManager(uow);
            //act
            var result = manager.Get(null).Result;

            //assert
            Assert.Null(result);
        }
        public void DeleteAdvisor_failed_if_name_is_null()
        {
            //arrange
            var uow     = Mock.Of <IUnitOfWork>();
            var manager = new AdvisorManager(uow);
            //act
            var result = manager.Delete((String)null).Result;

            //assert
            Assert.False(result.Succeeded);
        }
        public void DeleteAdvisor_failed_if_id_is_not_valid()
        {
            //arrange
            var uow     = Mock.Of <IUnitOfWork>();
            var manager = new AdvisorManager(uow);
            //act
            var result = manager.Delete(Guid.Empty).Result;

            //assert
            Assert.False(result.Succeeded);
        }
        public void UpdateAdvisor_failed_if_Advisor_is_not_valid()
        {
            //arrange
            var uow     = Mock.Of <IUnitOfWork>();
            var manager = new AdvisorManager(uow);
            //act
            var result = manager.Update(null).Result;

            //assert
            Assert.False(result.Succeeded);
        }
Пример #9
0
        // GET: ProgDec/Create
        public ActionResult Create()
        {
            ProgDecProgramsStudents pps = new ProgDecProgramsStudents();

            pps.ProgDec  = new BL.Models.ProgDec();
            pps.Programs = ProgramManager.Load();
            pps.Students = StudentManager.Load();
            pps.Advisors = AdvisorManager.Load(); //load them all


            return(View(pps));
        }
        public void DeleteAdvisor_succeeded_if_name_is_valid()
        {
            //arrange
            var AdvisorToDelete = new Advisor {
                User = new User()
            };
            var Advisors = new List <Advisor> {
                AdvisorToDelete
            };
            var uow     = new Mock <IUnitOfWork>();
            var repo    = new Mock <IAdvisorRepository>();
            var usrRepo = new Mock <IUserRepository>();

            usrRepo.Setup(u => u.Remove(It.IsNotNull <User>()))
            .Callback <User>(a => Advisors.Remove(AdvisorToDelete))
            .Verifiable();

            usrRepo.Setup(u => u.FindByUserName(It.IsNotNull <string>()))
            .ReturnsAsync(new User {
                UserId = Guid.NewGuid()
            })
            .Verifiable();

            repo.Setup(r => r.FindById(It.Is <Guid>(g => g != Guid.Empty)))
            .ReturnsAsync(AdvisorToDelete)
            .Verifiable();

            uow.Setup(u => u.SaveChanges())
            .ReturnsAsync(1)
            .Verifiable();

            uow.Setup(u => u.UserRepository)
            .Returns(usrRepo.Object)
            .Verifiable();

            uow.Setup(u => u.AdvisorRepository)
            .Returns(repo.Object)
            .Verifiable();

            var manager = new AdvisorManager(uow.Object);
            //act
            var result = manager.Delete("asdasd").Result;

            //assert
            usrRepo.Verify();
            repo.Verify();
            uow.Verify();
            Assert.True(result.Succeeded);
            Assert.Equal(0, Advisors.Count);
        }
Пример #11
0
        // GET: ProgDec/Edit/5
        public ActionResult Edit(int id)
        {
            ProgDecProgramsStudents pps = new ProgDecProgramsStudents();

            pps.ProgDec  = ProgDecManager.LoadById(id);
            pps.Programs = ProgramManager.Load();
            pps.Students = StudentManager.Load();

            pps.Advisors = AdvisorManager.Load(); //load them all

            pps.ProgDec.Advisors = ProgDecManager.LoadAdvisors(id);
            pps.AdvisorIds       = pps.ProgDec.Advisors.Select(a => a.Id); //Select the ids

            //Put Existing Advisors into Session
            Session["advisorids"] = pps.AdvisorIds;

            return(View(pps));
        }
        public void Get_succeeded_if_id_is_valid()
        {
            //arrange
            var uow  = new Mock <IUnitOfWork>();
            var repo = new Mock <IAdvisorRepository>();

            repo.Setup(r => r.FindById(It.Is <Guid>(g => g != Guid.Empty)))
            .ReturnsAsync(new Advisor())
            .Verifiable();

            uow.Setup(u => u.AdvisorRepository)
            .Returns(repo.Object)
            .Verifiable();

            var manager = new AdvisorManager(uow.Object);
            //act
            var result = manager.Get(Guid.NewGuid()).Result;

            //assert
            repo.Verify();
            uow.Verify();
            Assert.NotNull(result);
        }
        public AdvisorDetailViewModel GetAdvisorDetailViewModel(int advisorId, bool isEdit)
        {
            var manager    = new AdvisorManager();
            var detailInfo = manager.GetProductDetailInfo(advisorId);

            if (detailInfo == null)
            {
                return(null);
            }

            detailInfo.IsEditable             = AdvisorIsEditable(detailInfo.AdvisorMasterEntityId, detailInfo.AdvisorCompanyMasterEntityId, detailInfo.AdvisorCompanyParentMasterEntityId);
            detailInfo.IsPreview              = false;
            detailInfo.AdvisorStatus          = TypeChanger.DoEnum(detailInfo.Status, ProfileStatus.Unknown);
            detailInfo.Certifications         = AdvisorInfoManager.GetAdvisorCertifications(detailInfo.AdvisorCertificationsXml);
            detailInfo.VisitedPlaces          = AdvisorInfoManager.GetVisitedPlaces(detailInfo.AdvisorPlacesVisitedXml);
            detailInfo.Interests              = BaseDetailInfoHelpers.GetTravelElements(detailInfo.AdvisorInterestTypesXml);
            detailInfo.SpecialtyDestinations  = BaseDetailInfoHelpers.GetTravelElements(detailInfo.AdvisorSpecialtyCountriesXml);
            detailInfo.Languages              = BaseDetailInfoHelpers.GetTravelElements(detailInfo.AdvisorLanguagesXml);
            detailInfo.AlliancePrograms       = BaseDetailInfoHelpers.GetTravelElements(detailInfo.AdvisorAllianceProgramsXml);
            detailInfo.ConditionalLeadsName   = AdvisorInfoManager.GetConditionalLeadsName(detailInfo.AlliancePrograms);
            detailInfo.AdvisorPrimarydAddress = ProfileContactInfoManagerBase.GetPrimaryAddress(detailInfo.ProfileAddressXml);
            ProfileAddressManager.DisambiguateAddressCity(detailInfo.AdvisorPrimarydAddress, isEdit);
            if (HttpContext.Current.Request.QueryString["consumer"] == "1")
            {
                detailInfo.IsEditable = false;
                detailInfo.IsPreview  = true;
            }

            var user      = FederatedLoginClient.User;
            var viewModel = new AdvisorDetailViewModel
            {
                AdvisorMasterEntityId = detailInfo.AdvisorMasterEntityId,
                Status      = detailInfo.AdvisorStatus,
                AdvisorName = string.Format("{0} {1}", detailInfo.AdvisorFirstName, detailInfo.AdvisorLastName)
            };

            viewModel.ShowReviewsTab = ReviewHelper.ShowReview(detailInfo.TotalCompletedReviews, detailInfo.TotalBlockedReviews, detailInfo.TotalActiveReviews);
            if (viewModel.ShowReviewsTab)
            {
                viewModel.ReviewsInfoJson = new RatingAndReviewManager().GetReviewsInfoJsonForAdvisor(detailInfo);
            }

            viewModel.HeaderInfoPlus = new AdvisorHeaderInfoPlus
            {
                Header = new AdvisorHeaderInfoViewModel {
                    AdvisorHeaderInfo = AdvisorInfoManager.BuildHeaderInfo(detailInfo)
                },
                ContactAdvisor = GetContactAdvisor(detailInfo),
                ReviewBadge    = ReviewHelper.BuildBadgeModelForAdvisorDetailPage(detailInfo)
            };

            viewModel.AboutMePlus = new AdvisorAboutMePlus
            {
                Alliances             = AdvisorInfoManager.BuildAboutMe(detailInfo),
                Overview              = GetProfileOverviewInfo(detailInfo),
                IsActive              = detailInfo.AdvisorIsActive,
                CompanyIsActive       = detailInfo.AdvisorCompanyIsActive,
                AdvisorMasterEntityId = advisorId
            };

            if (user.IsComposerUser)
            {
                AddCommunityInfoForAdvisor(viewModel.AboutMePlus);
            }

            viewModel.DetailInfo  = detailInfo;
            viewModel.ContactInfo = AdvisorContactInfoManager.BuildContactInfo(detailInfo);
            viewModel.CobrandInfo = new AdvisorCobrandInfoViewModel
            {
                AdvisorCobrandInfo = AdvisorCobrandAndSettingsManager.BuildCobrandInfo(detailInfo)
            };
            ProfileAddressManager.DisambiguateAddressCity(viewModel.ContactInfo.PrimaryAddress, isEdit);
            ProfileAddressManager.DisambiguateAddressCities(viewModel.ContactInfo.Addresses, isEdit);

            // note that if an advisor is using the agency default personalization, the advisor personalized address will be null
            var personalizedAddress = TouchPoints.Framework.Utilities.Xml.Deserialize <PersonalizationAddress>(detailInfo.AdvisorPersonalizedAddressXml) ?? new PersonalizationAddress();

            detailInfo.AdvisorPersonalizedAddress = personalizedAddress;
            viewModel.AdvisorPersonalization      = new AdvisorPersonalizationInfo
            {
                AdvisorName                     = detailInfo.AdvisorPersonalizedName,
                AgencyName                      = detailInfo.AgencyPersonalizedName,
                DoingBusinessAs                 = detailInfo.AdvisorPersonalizedDoingBusinessAs,
                AddressLine1                    = personalizedAddress.AddressLine1,
                AddressLine2                    = personalizedAddress.AddressLine2,
                City                            = personalizedAddress.City,
                RegionNameEng                   = personalizedAddress.State,
                RegionId                        = personalizedAddress.RegionId,
                RegionCode                      = personalizedAddress.RegionCode,
                CountryNameEng                  = personalizedAddress.Country,
                CountryId                       = personalizedAddress.CountryId,
                PostalCode                      = personalizedAddress.PostalCode,
                Phone                           = detailInfo.AdvisorPersonalizedPrimaryPhone,
                SecondPhone                     = detailInfo.AdvisorPersonalizedSecondaryPhone,
                WebAddress                      = detailInfo.AdvisorPersonalizedWebsite,
                Email                           = detailInfo.AdvisorPersonalizedEmail,
                StateOfSellerId                 = detailInfo.AdvisorPersonalizedStateOfSellerId,
                LogoUrl                         = detailInfo.AdvisorCompanyLogo,
                AssociatedMasterEntityId        = detailInfo.AdvisorMasterEntityId,
                AssociatedParentMasterEntityId  = detailInfo.AdvisorCompanyParentMasterEntityId,
                UseAgencyDefaultPersonalization = detailInfo.UseAgencyDefaultPersonalization
            };

            personalizedAddress             = Xml.Deserialize <PersonalizationAddress>(detailInfo.AgencyPersonalizedAddressXml) ?? new PersonalizationAddress();
            viewModel.AgencyPersonalization = new AgencyPersonalizationInfo
            {
                AgencyName                     = detailInfo.AgencyPersonalizedName,
                AddressLine1                   = personalizedAddress.AddressLine1,
                AddressLine2                   = personalizedAddress.AddressLine2,
                City                           = personalizedAddress.City,
                RegionNameEng                  = personalizedAddress.State,
                RegionId                       = personalizedAddress.RegionId,
                RegionCode                     = personalizedAddress.RegionCode,
                CountryNameEng                 = personalizedAddress.Country,
                CountryId                      = personalizedAddress.CountryId,
                PostalCode                     = personalizedAddress.PostalCode,
                Phone                          = detailInfo.AgencyPersonalizedPrimaryPhone,
                SecondPhone                    = detailInfo.AgencyPersonalizedSecondaryPhone,
                WebAddress                     = detailInfo.AgencyPersonalizedWebsite,
                Email                          = detailInfo.AgencyPersonalizedEmail,
                StateOfSellerId                = detailInfo.AgencyPersonalizedStateOfSellerId,
                LogoUrl                        = detailInfo.LogoUrl,
                AssociatedMasterEntityId       = detailInfo.AdvisorCompanyMasterEntityId,
                AssociatedParentMasterEntityId = detailInfo.AdvisorCompanyParentMasterEntityId,
            };
            viewModel.Information = new AdvisorInformationViewModel
            {
                AdvisorInformation = AdvisorInfoManager.BuildAdminInfo(detailInfo)
            };
            viewModel.Specialties = new AdvisorTravelSpecialtiesViewModel
            {
                AdvisorTravelSpecialties = AdvisorInfoManager.BuildTravelSpecialties(detailInfo)
            };

            // fill in personalization IC status, since the value in DetailInfo may be unreliable
            viewModel.AdvisorPersonalization.IsIndependentContractor = (viewModel.Information.AdvisorType.TypeId == AdvisorInfoManager.IndependentContractorTypeId);

            // TODO: only need these for edit by certain people with permissions
            if (null != viewModel.Specialties)
            {
                viewModel.Specialties.SpecialtyCountriesLookup = SpecialtyDestinations.Get(null, ProfileType.Advisor);
            }

            viewModel.OutOfOffice = new AdvisorOutOfOffice();
            viewModel.Settings    = AdvisorCobrandAndSettingsManager.BuildAdvisorSettings(detailInfo);
            AgencyViewManager.CalculateFieldLevelPermissions(viewModel.Settings, user);

            viewModel.SupplierMarketingOptions =
                new SupplierMarketingOptionsViewManager().GetSupplierMarketingOptionsForMember(advisorId);

            viewModel.SupplierMarketingOptions.MemberHasOverrideRole = detailInfo.OverrideAgencySupplierMarketing;
            viewModel.SupplierMarketingOptions.AgencyMeid            = detailInfo.AdvisorCompanyMasterEntityId;

            viewModel.ConsumerNotifications = new ConsumerNotificationsViewManager().GetNotificationsForAdvisor(advisorId, viewModel.Settings.Meid, viewModel.Settings.ParentMeid);

            viewModel.SecurityData = new AdvisorProfileSecurityData();

            var securityModel = TouchPoints.Framework.Utilities.Xml.Deserialize <StaffSecurityModelXml>(detailInfo.ProfileRolesXml);

            viewModel.AdvisorSecurity = SecurityManager.BuildAdvisorSecurity(securityModel);
            viewModel.HotelBooking    = new AdvisorHotelBookingViewModel();

            viewModel.HotelBooking.HotelBooking = new AdvisorHotelBooking
            {
                AdvisorMasterEntityId = viewModel.AdvisorMasterEntityId,
                AgentId = detailInfo.AgentId,
                BookingPrefatoryCode  = detailInfo.BookingPrefatoryCode,
                BookingPseudoCityCode = detailInfo.BookingPseudoCityCode,
                BookingQueueNumber    = detailInfo.BookingQueueNumber,
                AgentInterfaceId      = detailInfo.AgentInterfaceId,
                SameAsAgency          = detailInfo.IsBookingSameAsAgency
            };

            viewModel.AdvisorLogoExists            = !String.IsNullOrEmpty(viewModel.AdvisorPersonalization.LogoUrl);
            viewModel.AgencyDefaultLogoExists      = !String.IsNullOrEmpty(viewModel.AgencyPersonalization.LogoUrl);
            viewModel.PersonalizationGuidelinesUrl = Config.AppSettings.PersonalizationGuidelinesUrl;

            return(viewModel);
        }
Пример #14
0
        public IBSampleAppDialog()
        {
            InitializeComponent();
            ibClient = new IBClient(signal);

            marketDataManager     = new MarketDataManager(ibClient, marketDataGrid_MDT);
            deepBookManager       = new DeepBookManager(ibClient, deepBookGrid);
            historicalDataManager = new HistoricalDataManager(ibClient, historicalChart, barsGrid);
            realTimeBarManager    = new RealTimeBarsManager(ibClient, rtBarsChart, rtBarsGrid);
            scannerManager        = new ScannerManager(ibClient, scannerGrid, scannerParamsOutput);
            orderManager          = new OrderManager(ibClient, liveOrdersGrid, tradeLogGrid);
            accountManager        = new AccountManager(ibClient, accountSelector, accSummaryGrid, accountValuesGrid, accountPortfolioGrid, positionsGrid);
            contractManager       = new ContractManager(ibClient, fundamentalsOutput, contractDetailsGrid); //ibClient, form tab, form tab. https://interactivebrokers.github.io/tws-api/contract_details.html#gsc.tab=0
            advisorManager        = new AdvisorManager(ibClient, advisorAliasesGrid, advisorGroupsGrid, advisorProfilesGrid);
            optionsManager        = new OptionsManager(ibClient, optionChainCallGrid, optionChainPutGrid, optionPositionsGrid, listViewOptionParams);
            acctPosMultiManager   = new AcctPosMultiManager(ibClient, positionsMultiGrid, accountUpdatesMultiGrid);
            mdContractRight.Items.AddRange(ContractRight.GetAll());
            mdContractRight.SelectedIndex = 0;

            conDetRight.Items.AddRange(ContractRight.GetAll());
            conDetRight.SelectedIndex = 0;

            fundamentalsReportType.Items.AddRange(FundamentalsReport.GetAll());
            fundamentalsReportType.SelectedIndex = 0;

            this.groupMethod.DataSource    = AllocationGroupMethod.GetAsData();
            this.groupMethod.ValueMember   = "Value";
            this.groupMethod.DisplayMember = "Name";

            this.profileType.DataSource    = AllocationProfileType.GetAsData();
            this.profileType.ValueMember   = "Value";
            this.profileType.DisplayMember = "Name";

            hdRequest_EndTime.Text = DateTime.Now.ToString("yyyyMMdd HH:mm:ss");

            DateTime execFilterDefault = DateTime.Now.AddHours(-1);

            execFilterTime.Text = execFilterDefault.ToString("yyyyMMdd HH:mm:ss");


            // Events liniking
            // All events belong to EWrapper interface and called Public member functions
            ibClient.Error                  += ibClient_Error;
            ibClient.ConnectionClosed       += ibClient_ConnectionClosed;
            ibClient.CurrentTime            += time => addTextToBox("Current Time: " + time + "\n");
            ibClient.TickPrice              += ibClient_TickPrice;
            ibClient.TickSize               += ibClient_TickSize;
            ibClient.TickString             += (tickerId, tickType, value) => addTextToBox("Tick string. Ticker Id:" + tickerId + ", Type: " + TickType.getField(tickType) + ", Value: " + value + "\n");
            ibClient.TickGeneric            += (tickerId, field, value) => addTextToBox("Tick Generic. Ticker Id:" + tickerId + ", Field: " + TickType.getField(field) + ", Value: " + value + "\n");
            ibClient.TickEFP                += (tickerId, tickType, basisPoints, formattedBasisPoints, impliedFuture, holdDays, futureLastTradeDate, dividendImpact, dividendsToLastTradeDate) => addTextToBox("TickEFP. " + tickerId + ", Type: " + tickType + ", BasisPoints: " + basisPoints + ", FormattedBasisPoints: " + formattedBasisPoints + ", ImpliedFuture: " + impliedFuture + ", HoldDays: " + holdDays + ", FutureLastTradeDate: " + futureLastTradeDate + ", DividendImpact: " + dividendImpact + ", DividendsToLastTradeDate: " + dividendsToLastTradeDate + "\n");
            ibClient.TickSnapshotEnd        += tickerId => addTextToBox("TickSnapshotEnd: " + tickerId + "\n");
            ibClient.NextValidId            += ibClient_NextValidId; // Receives next valid order id. Will be invoked automatically upon successfull API client connection. Used for sending connection status
            ibClient.DeltaNeutralValidation += (reqId, underComp) =>
                                               addTextToBox("DeltaNeutralValidation. " + reqId + ", ConId: " + underComp.ConId + ", Delta: " + underComp.Delta + ", Price: " + underComp.Price + "\n");

            ibClient.ManagedAccounts         += accountsList => HandleMessage(new ManagedAccountsMessage(accountsList));
            ibClient.TickOptionCommunication += (tickerId, field, impliedVolatility, delta, optPrice, pvDividend, gamma, vega, theta, undPrice) =>
                                                HandleMessage(new TickOptionMessage(tickerId, field, impliedVolatility, delta, optPrice, pvDividend, gamma, vega, theta, undPrice));

            ibClient.AccountSummary     += (reqId, account, tag, value, currency) => HandleMessage(new AccountSummaryMessage(reqId, account, tag, value, currency));
            ibClient.AccountSummaryEnd  += reqId => HandleMessage(new AccountSummaryEndMessage(reqId));
            ibClient.UpdateAccountValue += (key, value, currency, accountName) => HandleMessage(new AccountValueMessage(key, value, currency, accountName));
            ibClient.UpdatePortfolio    += (contract, position, marketPrice, marketValue, averageCost, unrealisedPNL, realisedPNL, accountName) =>
                                           HandleMessage(new UpdatePortfolioMessage(contract, position, marketPrice, marketValue, averageCost, unrealisedPNL, realisedPNL, accountName));

            ibClient.UpdateAccountTime  += timestamp => HandleMessage(new UpdateAccountTimeMessage(timestamp));
            ibClient.AccountDownloadEnd += account => HandleMessage(new AccountDownloadEndMessage(account));
            ibClient.OrderStatus        += (orderId, status, filled, remaining, avgFillPrice, permId, parentId, lastFillPrice, clientId, whyHeld) =>
                                           HandleMessage(new OrderStatusMessage(orderId, status, filled, remaining, avgFillPrice, permId, parentId, lastFillPrice, clientId, whyHeld));

            ibClient.OpenOrder          += (orderId, contract, order, orderState) => HandleMessage(new OpenOrderMessage(orderId, contract, order, orderState));
            ibClient.OpenOrderEnd       += () => HandleMessage(new OpenOrderEndMessage());
            ibClient.ContractDetails    += (reqId, contractDetails) => HandleMessage(new ContractDetailsMessage(reqId, contractDetails));
            ibClient.ContractDetailsEnd += (reqId) => HandleMessage(new ContractDetailsEndMessage());
            ibClient.ExecDetails        += (reqId, contract, execution) => HandleMessage(new ExecutionMessage(reqId, contract, execution));
            ibClient.ExecDetailsEnd     += reqId => addTextToBox("ExecDetailsEnd. " + reqId + "\n");
            ibClient.CommissionReport   += commissionReport => HandleMessage(new CommissionMessage(commissionReport));
            ibClient.FundamentalData    += (reqId, data) => HandleMessage(new FundamentalsMessage(data));
            ibClient.HistoricalData     += (reqId, date, open, high, low, close, volume, count, WAP, hasGaps) =>
                                           HandleMessage(new HistoricalDataMessage(reqId, date, open, high, low, close, volume, count, WAP, hasGaps));

            ibClient.HistoricalDataEnd  += (reqId, startDate, endDate) => HandleMessage(new HistoricalDataEndMessage(reqId, startDate, endDate));
            ibClient.MarketDataType     += (reqId, marketDataType) => addTextToBox("MarketDataType. " + reqId + ", Type: " + marketDataType + "\n");
            ibClient.UpdateMktDepth     += (tickerId, position, operation, side, price, size) => HandleMessage(new DeepBookMessage(tickerId, position, operation, side, price, size, ""));
            ibClient.UpdateMktDepthL2   += (tickerId, position, marketMaker, operation, side, price, size) => HandleMessage(new DeepBookMessage(tickerId, position, operation, side, price, size, marketMaker));
            ibClient.UpdateNewsBulletin += (msgId, msgType, message, origExchange) =>
                                           addTextToBox("News Bulletins. " + msgId + " - Type: " + msgType + ", Message: " + message + ", Exchange of Origin: " + origExchange + "\n");

            ibClient.Position          += (account, contract, pos, avgCost) => HandleMessage(new PositionMessage(account, contract, pos, avgCost));
            ibClient.PositionEnd       += () => addTextToBox("PositionEnd \n");
            ibClient.RealtimeBar       += (reqId, time, open, high, low, close, volume, WAP, count) => HandleMessage(new RealTimeBarMessage(reqId, time, open, high, low, close, volume, WAP, count));
            ibClient.ScannerParameters += xml => HandleMessage(new ScannerParametersMessage(xml));
            ibClient.ScannerData       += (reqId, rank, contractDetails, distance, benchmark, projection, legsStr) =>
                                          HandleMessage(new ScannerMessage(reqId, rank, contractDetails, distance, benchmark, projection, legsStr));

            ibClient.ScannerDataEnd          += reqId => addTextToBox("ScannerDataEnd. " + reqId + "\r\n");
            ibClient.ReceiveFA               += (faDataType, faXmlData) => HandleMessage(new AdvisorDataMessage(faDataType, faXmlData));
            ibClient.BondContractDetails     += (requestId, contractDetails) => addTextToBox("Receiving bond contract details.");
            ibClient.VerifyMessageAPI        += apiData => addTextToBox("verifyMessageAPI: " + apiData);
            ibClient.VerifyCompleted         += (isSuccessful, errorText) => addTextToBox("verifyCompleted. IsSuccessfule: " + isSuccessful + " - Error: " + errorText);
            ibClient.VerifyAndAuthMessageAPI += (apiData, xyzChallenge) => addTextToBox("verifyAndAuthMessageAPI: " + apiData + " " + xyzChallenge);
            ibClient.VerifyAndAuthCompleted  += (isSuccessful, errorText) => addTextToBox("verifyAndAuthCompleted. IsSuccessfule: " + isSuccessful + " - Error: " + errorText);
            ibClient.DisplayGroupList        += (reqId, groups) => addTextToBox("DisplayGroupList. Request: " + reqId + ", Groups" + groups);
            ibClient.DisplayGroupUpdated     += (reqId, contractInfo) => addTextToBox("displayGroupUpdated. Request: " + reqId + ", ContractInfo: " + contractInfo);

            ibClient.PositionMulti                        += (reqId, account, modelCode, contract, pos, avgCost) => HandleMessage(new PositionMultiMessage(reqId, account, modelCode, contract, pos, avgCost));
            ibClient.PositionMultiEnd                     += (reqId) => HandleMessage(new PositionMultiEndMessage(reqId));
            ibClient.AccountUpdateMulti                   += (reqId, account, modelCode, key, value, currency) => HandleMessage(new AccountUpdateMultiMessage(reqId, account, modelCode, key, value, currency));
            ibClient.AccountUpdateMultiEnd                += (reqId) => HandleMessage(new AccountUpdateMultiEndMessage(reqId));
            ibClient.SecurityDefinitionOptionParameter    += (reqId, exchange, underlyingConId, tradingClass, multiplier, expirations, strikes) => HandleMessage(new SecurityDefinitionOptionParameterMessage(reqId, exchange, underlyingConId, tradingClass, multiplier, expirations, strikes));
            ibClient.SecurityDefinitionOptionParameterEnd += (reqId) => HandleMessage(new SecurityDefinitionOptionParameterEndMessage(reqId));
            ibClient.SoftDollarTiers                      += (reqId, tiers) => HandleMessage(new SoftDollarTiersMessage(reqId, tiers));
        }
Пример #15
0
 public AdvisorUi()
 {
     InitializeComponent();
     advisor        = new Advisor();
     advisorManager = new AdvisorManager();
 }