Ejemplo n.º 1
0
        public double SubcribersImpacted(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(SUBIMPACTRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(SUBIMPACTEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(SUBIMPACTCAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(SUBIMPACTRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 2
0
        public double VirtualisationFactor(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(VIRTUALISATIONFACTORRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(VIRTUALISATIONFACTOREFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(VIRTUALISATIONFACTORCAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(VIRTUALISATIONFACTORRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 3
0
        public double CostIntensity(AnalyzeType at = AnalyzeType.RAPID)
        {
            double topPart = (BufferManager(new Func <AnalyzeType, double>(TotalOPEX), at) + BufferManager(new Func <AnalyzeType, double>(Year5CAPEX), at))
            , downPart = (BufferManager(new Func <AnalyzeType, double>(TotalRevenue), at) * 1.0), firstMath = topPart / downPart;

            return(firstMath * (1.0 / 1000000));
        }
Ejemplo n.º 4
0
        public double UrbanSiteUpgradePencentage(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(URBANSITEUPGRADEPERCENTAGERAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(URBANSITEUPGRADEPERCENTAGEEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(URBANSITEUPGRADEPERCENTAGECAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(URBANSITEUPGRADEPERCENTAGERAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 5
0
        public double SiteSharingSaving(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(0);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(BufferManager(new Func <AnalyzeType, double>(SiteShareSavePercentage), at) * BufferManager(new Func <AnalyzeType, double>(TotalSites), at));

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(BufferManager(new Func <AnalyzeType, double>(SiteShareSavePercentage), at) * BufferManager(new Func <AnalyzeType, double>(TotalSites), at));

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(0);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 6
0
        public double MEC2Sites(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(MEC2SITESRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(MEC2SITESEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(MEC2SITESCAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(MEC2SITESRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 7
0
        public double TotalCoreCAPEX(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(BufferManager(new Func <AnalyzeType, double>(StandaloneCoreCost), at));

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(BufferManager(new Func <AnalyzeType, double>(StandaloneCoreCost), at));

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(BufferManager(new Func <AnalyzeType, double>(NonStandaloneCoreCost), at));

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(BufferManager(new Func <AnalyzeType, double>(StandaloneCoreCost), at));

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 8
0
        public double RuralNewSitePercentage(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(RURALNEWSITEPERCENTAGERAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(RURALNEWSITEPERCENTAGEEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(RURALNEWSITEPERCENTAGECAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(RURALNEWSITEPERCENTAGERAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 9
0
    private void OnGUI()
    {
        EditorGUILayout.BeginVertical();
        analyzeType = (AnalyzeType)EditorGUILayout.EnumPopup(analyzeType);
        if (GUILayout.Button("Analyze"))
        {
            LoadLocal();
        }

        if (RemouteCount() > 0)
        {
            if (GUILayout.Button("Save remote to local"))
            {
                SaveRemoteToLocal();
            }
        }

        switch (analyzeType)
        {
        case AnalyzeType.Mechanic: {
            AnalyzeDifference(GetMechanicDifference(localMechanicData, remoteMechanicData));
        }
        break;

        case AnalyzeType.Secretary: {
            AnalyzeDifference(GetSecretaryDifference(localSecretaryData, remoteSecretaryData));
        }
        break;
        }


        EditorGUILayout.EndVertical();
    }
Ejemplo n.º 10
0
        public double SiteShareSavePercentage(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(0);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(ssrESA);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(ssrNSA);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(0);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 11
0
        public double GetSCB2B2C(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(SCRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(SCEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(SCCAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(SCRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 12
0
        public double NewSmallCellsCount(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(NEWSMALLCELLRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(NEWSMALLCELLEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(NEWSMALLCELLCAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(NEWSMALLCELLRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 13
0
        public void AnalyzeFile(Solution solution, VCFile vcFile, VCConfiguration vcConfiguration)
        {
            try
            {
                ts.TraceInformation("AnalyzeFile");
                ts.TraceInformation("AnalyzeFile name " + vcFile.Name);
                ts.TraceInformation("AnalyzeFile item name " + vcFile.ItemName);
                ts.TraceInformation("AnalyzeFile item type " + vcFile.ItemType);
                ts.TraceInformation("AnalyzeFile extension " + vcFile.Extension);
                ts.TraceInformation("AnalyzeFile config name " + vcConfiguration.ConfigurationName);
                ts.TraceInformation("AnalyzeFile config type " + vcConfiguration.ConfigurationType);
                _analyzeType = AnalyzeType.FILE;

                _solution        = solution;
                _vcFile          = vcFile;
                _vcConfiguration = vcConfiguration;
                _report          = Reporting.ReportFactory.CreateReportSingleFile(solution, vcFile);

                OnStartAnalyze();
                DoAnalyzeFile(vcFile, vcConfiguration);
            }

            catch (Exception exception)
            {
                ts.TraceData(TraceEventType.Error, 1, "AnalyzeFile exception: " + exception.Message);
                OnStopFile(true);
            }
        }
Ejemplo n.º 14
0
        public double ENDeg(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(ENDegRapid);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(ENDegEFocused);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(ENDegCapacity);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(ENDegRapid);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 15
0
        public double TotalSites(AnalyzeType at = AnalyzeType.RAPID)
        {
            double upN, rpN;

            switch (at)
            {
            case AnalyzeType.RAPID:
                upN = URBANNEWSITEPERCENTAGERAPID;
                rpN = RURALNEWSITEPERCENTAGERAPID;
                break;

            case AnalyzeType.ENTERPRISE:
                upN = URBANNEWSITEPERCENTAGEEFOCUSED;
                rpN = RURALNEWSITEPERCENTAGEEFOCUSED;
                break;

            case AnalyzeType.CAPACITY:
                upN = URBANNEWSITEPERCENTAGECAPACITY;
                rpN = RURALNEWSITEPERCENTAGECAPACITY;
                break;

            default:
                upN = URBANNEWSITEPERCENTAGERAPID;
                rpN = RURALNEWSITEPERCENTAGERAPID;
                break;
            }

            return(BufferManager(new Func <double, double, double>(TotalNewSites), upN, rpN) + numberOfSites);
        }
Ejemplo n.º 16
0
        public double FibredGoal(AnalyzeType at = AnalyzeType.RAPID)
        {
            switch (at)
            {
            case AnalyzeType.RAPID:
                return(FIBREDGOALRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.ENTERPRISE:
                return(FIBREDGOALEFOCUSED);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            case AnalyzeType.CAPACITY:
                return(FIBREDGOALCAPACITY);

#pragma warning disable CS0162 // Unreachable code detected
                break;

#pragma warning restore CS0162 // Unreachable code detected
            default:
                return(FIBREDGOALRAPID);

#pragma warning disable CS0162 // Unreachable code detected
                break;
#pragma warning restore CS0162 // Unreachable code detected
            }
        }
Ejemplo n.º 17
0
        public double TotalOPEX(AnalyzeType at = AnalyzeType.RAPID)
        {
            double tso = BufferManager(new Func <AnalyzeType, double>(TotalServiceOPEX), at)
            , aoitopex = BufferManager(new Func <AnalyzeType, double>(AOITOPEX), at)
            , tsopex   = BufferManager(new Func <AnalyzeType, double>(TotalSiteOPEX), at);

            return(tso + aoitopex + tsopex);
        }
Ejemplo n.º 18
0
        private static void AnalyzeDataCommandExecute(AnalyzeType analyzeType)
        {
            var messenger = GetMessenger();
            var currentRecords = GetCurrentRecordsCollection();
            var model = AnalyzeDataViewModelFactory.GetModel(analyzeType, currentRecords);

            messenger.Send(new PrepareAnalyzeDataMessage(model));
        }
        public static AnalyzeDataViewModelBase GetModel(AnalyzeType analyzeType, RecordsCollection records)
        {
            if (!Dictionary.ContainsKey(analyzeType))
            {
                throw new NotImplementedException();
            }

            return Dictionary[analyzeType](records);
        }
Ejemplo n.º 20
0
        public static IAnalyzeCommand CreateCommand(AnalyzeType commandType, WorkingDirectory workingDirectory)
        {
            if (!Dictionary.ContainsKey(commandType))
            {
                throw new NotImplementedException();
            }

            return Dictionary[commandType](workingDirectory);
        }
Ejemplo n.º 21
0
 public SinProcessStruct(ProcessType processtype, AnalyzeType anatype)
 {
     this.IsSelect       = false;
     this.AnaProcessType = processtype;
     this.AnaType        = anatype;
     this.UpLimitTemp    = 30;
     this.DownLimitTemp  = 150;
     this.UpLimitValue   = 3;
     this.DownLimitValue = 1;
     this.Calculate      = 20;
 }
Ejemplo n.º 22
0
 public double IndexedEnterpriseContribution(AnalyzeType at = AnalyzeType.BASE)
 {
     if (at == AnalyzeType.BASE)
     {
         return((AR * BufferManager(new Func <AnalyzeType, double>(EnterpriseContribution), at) / AR) * 100.0);
     }
     else
     {
         return(BufferManager(new Func <AnalyzeType, double>(EnterpriseContribution), at) * (BufferManager(new Func <AnalyzeType, double>(TotalRevenue), at) * (100 / AR)));
     }
 }
Ejemplo n.º 23
0
 public double EnterpriseContribution(AnalyzeType at = AnalyzeType.BASE)
 {
     if (at == AnalyzeType.BASE)
     {
         return((35.0 * 12 * 0.5 * 1) / AR);
     }
     else
     {
         //return (39.16 * 12 * (ENRev * (1 + ENDeg(at))) * SubcribersImpacted(at)) / TotalRevenue(at);
         return(BufferManager(new Func <AnalyzeType, double>(newENRev), at) / BufferManager(new Func <AnalyzeType, double>(SubcriberARPU), at));
     }
 }
Ejemplo n.º 24
0
 public SinProcessStruct(ProcessType processtype, AnalyzeType anatype, bool isselect, double uplimitvalue, double downlimitvalue,
                         double uplimittemp, double downlimittemp, int calculate)
 {
     this.IsSelect       = isselect;
     this.AnaProcessType = processtype;
     this.AnaType        = anatype;
     this.UpLimitTemp    = uplimittemp;
     this.DownLimitTemp  = downlimittemp;
     this.UpLimitValue   = uplimitvalue;
     this.DownLimitValue = downlimitvalue;
     this.Calculate      = calculate;
 }
Ejemplo n.º 25
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public LogInfo(int _id, string _content, string _stackTrace, Type _type, AnalyzeType _analyze)
        {
            this.ID         = _id;
            this.Content    = _content;
            this.StackTrace = _stackTrace;
            this.LogType    = _type;
            this.Analyze    = _analyze;

            gs                  = new GUIStyle();
            gs.alignment        = TextAnchor.MiddleCenter;
            gs.wordWrap         = true;
            gs.normal.textColor = Color.white;
            CheckFontSize();
        }
Ejemplo n.º 26
0
 public ScreenAnalyzePage(IMainWindoViewModel mainWindowViewModel, IAreasWindowViewModel settingsWindowViewModel, AnalyzeType at)
 {
     InitializeComponent();
     AT = at;
     SetAreasVisibility();
     _mainWindowViewModel     = mainWindowViewModel;
     _settingsWindowViewModel = settingsWindowViewModel;
     DataContext  = _mainWindowViewModel;
     AreasList    = new List <CardArea>();
     ApprovedList = new List <CardArea>();
     MouseDown   += ScreenAnalyzePage_MouseDown;
     MouseUp     += ScreenAnalyzePage_MouseUp;
     MouseMove   += ScreenAnalyzePage_MouseMove;
     _mainWindowViewModel.CardRecognized += _mainWindowViewModel_CardRecognized;
 }
Ejemplo n.º 27
0
        public void AnalyzeSolution(Solution solution)
        {
            try
            {
                _solution = solution;
                ts.TraceInformation("AnalyzeSolution " + solution.FullName);
                OnStartAnalyze();
                OnStartSolution();

                OutputPaneWriteln("Analyzing solution " + solution.FullName);
                Projects projects = solution.Projects;
                if ((projects == null) || (projects.Count == 0))
                {
                    ts.TraceInformation("No projects in solution");
                    OnStopAnalyze(true);
                    return;
                }

                ts.TraceInformation("AnalyzeSolution #projects " + projects.Count);

                _vcProjectQueue = DTE2Utils.CreateVCProjectQueue(solution);

                _report = Reporting.ReportFactory.CreateReportFromVsSolution(solution, _vcProjectQueue);

                OutputPaneWriteln("Analyzing solution " + solution.FullName +
                                  ", " + _report.SolutionCurrent.NumberOfProject + " projects" +
                                  ", " + _report.SolutionCurrent.NumberOfFiles + " files");

                ts.TraceInformation("AnalyzeSolution " + _vcProjectQueue.Count + " c++ projects " +
                                    " in " + _report.SolutionCurrent.NumberOfFiles + " files");

                if (_vcProjectQueue.Count == 0)
                {
                    ts.TraceInformation("AnalyzeSolution no c++ project found " + solution.Projects.Count);
                    OnStopAnalyze(true);
                }

                _analyzeType = AnalyzeType.SOLUTION;
                AnalyseNextProject();
            }
            catch (Exception exception)
            {
                ts.TraceData(TraceEventType.Error, 1, "AnalyzeSolution exception: " + exception.Message);
                OnStopSolution(true);
            }
        }
Ejemplo n.º 28
0
        protected AnalyzeDataViewModelBase(RecordsCollection records, AnalyzeType type, string title)
        {
            Records = records;
            SelectedType = type;
            Title = title;
            MessengerInstance = ServiceLocator.Current.GetInstance<Messenger>();
            AnalyzeCommand = new RelayCommand(
                () =>
                    {
                        AnalyzeDataExecute();
                        CloseRequested = true;
                    },
                AnalyzeDataCanExecute);

            GroupHeaders = ExtractHeaders().ToObservable();
            Criteria = ExtractHeaders().Where(IsAcceptableForCriteria).ToObservable();
        }
Ejemplo n.º 29
0
        public async Task <string> AnalyzeData(LottoType lottoType, AnalyzeType analyzeType, int variableOne, int variableTwo)
        {
            var analyzer = _analyzerResolver(analyzeType);
            var data     = _inMemory.GetRecords(lottoType);
            var results  = await analyzer.Analyze(data, variableOne, variableTwo);

            StringBuilder sb = new StringBuilder();

            foreach (var result in results.Where(r => !r.IsSpecial).Take(10))
            {
                sb.Append($"{result.Number:D2} : {result.Point} \r\n");
            }
            sb.Append("\r\n Special Number: \r\n");
            foreach (var result in results.Where(r => r.IsSpecial).Take(5))
            {
                sb.Append($"{result.Number:D2} : {result.Point} \r\n");
            }

            return(sb.ToString());
        }
Ejemplo n.º 30
0
        public void AnalyzeProject(Solution solution, VCProject vcProject)
        {
            try
            {
                ts.TraceInformation("AnalyzeProject " + vcProject.Name);
                _analyzeType = AnalyzeType.PROJECT;
                _vcProject   = vcProject;

                _report = Reporting.ReportFactory.CreateReportForVCProject(solution, vcProject);

                OnStartAnalyze();
                DoAnalyzeProject(vcProject);
            }

            catch (Exception exception)
            {
                ts.TraceData(TraceEventType.Error, 1, "AnalyzeProject exception: " + exception.Message);
                OnStopProject(true);
            }
        }
Ejemplo n.º 31
0
 public AnalyzeDataMessage(InputData inputData, AnalyzeType type)
 {
     InputData = inputData;
     Type = type;
 }
Ejemplo n.º 32
0
 public BranchResult(AnalyzeType AnalyzeType, BranchType BranchType, params uint[] PossibleJumpList)
 {
     this.BranchType = BranchType;
     this.AnalyzeType = AnalyzeType;
     this.PossibleJumpList = PossibleJumpList;
 }
Ejemplo n.º 33
0
        public async Task <string> CalculateExpectValue(LottoType lottoType, AnalyzeType analyzeType, int period,
                                                        int expectValueCount, int periodEnd, int variableTwo, int selectCount, bool showBingo, Action callBack)
        {
            var analyzer   = _analyzerResolver(analyzeType);
            var calculator = _bonusCalculatorResolver(lottoType);
            var data       = _inMemory.GetRecords(lottoType);

            var sw = new Stopwatch();

            sw.Start();

            var sb               = new StringBuilder();
            var resultDic        = new SortedDictionary <(int period, int variable2), double>();
            var resultSpecialDic = new SortedDictionary <(int period, int variable2), double>();
            var shootAllDic      = new SortedDictionary <(int period, int variable2), double>();
            var bonusDic         = new SortedDictionary <(int period, int variable2), double>();
            var indexes          = new List <(int period, int variable2)>();

            for (var currentPeriod = period; currentPeriod <= periodEnd; currentPeriod++)
            {
                for (var variable2 = 1; variable2 < currentPeriod; variable2++)
                {
                    if (variableTwo != 0)
                    {
                        indexes.Add((currentPeriod, variableTwo));
                        break;
                    }
                    indexes.Add((currentPeriod, variable2));
                }
            }


            await Task.WhenAll(indexes.Select(tuple =>
                                              _expectValueCalculator.CalculateExpectValue(data.ToList(), analyzer, expectValueCount,
                                                                                          tuple.period, tuple.variable2, resultDic, resultSpecialDic, selectCount, showBingo, callBack, shootAllDic
                                                                                          , calculator, bonusDic)
                                              ));

            sw.Stop();
            sb.Append($"Cost Time:{sw.ElapsedMilliseconds} ms \r\n");
            sb.Append($"Cost Money:{expectValueCount * Calculator.Combination(selectCount, 6) * (lottoType == LottoType.BigLotto ? 50 : 800):N} NT \r\n");
            foreach (var pair in resultDic.OrderByDescending(p => p.Value).Take(5))
            {
                sb.Append($"period:{pair.Key.period:D3},variable2:{pair.Key.variable2:D3},Expect:{pair.Value:#0.000} \r\n");
            }

            sb.Append("\r\nSpecial Number: \r\n");

            foreach (var pair in resultSpecialDic.OrderByDescending(p => p.Value).Take(5))
            {
                sb.Append($"period:{pair.Key.period:D3},variable2:{pair.Key.variable2:D3},Expect:{pair.Value:#0.000} \r\n");
            }


            sb.Append("\r\nShoot Index: \r\n");

            foreach (var pair in shootAllDic.OrderBy(p => p.Value).Take(5))
            {
                sb.Append($"period:{pair.Key:D3},Index:{pair.Value:#0.000} \r\n");
            }


            sb.Append("\r\n Bonus: \r\n");

            foreach (var pair in bonusDic.OrderByDescending(p => p.Value).Take(5))
            {
                sb.Append($"period:{pair.Key:D3},Bonus:{pair.Value:N} NT \r\n");
            }

            return(sb.ToString());
        }
Ejemplo n.º 34
0
 public double newFWARev(AnalyzeType at = AnalyzeType.RAPID)
 {
     return(FWARev * (1 + BufferManager(new Func <AnalyzeType, double>(FWADeg), at)));
 }
Ejemplo n.º 35
0
 public double AOAROUOTHER(AnalyzeType at = AnalyzeType.RAPID)
 {
     return(0.2);
 }
Ejemplo n.º 36
0
 public double AOAROUCOMMS(AnalyzeType at = AnalyzeType.RAPID)
 {
     return(3.686405255 - (BufferManager(new Func <AnalyzeType, double>(AOAROUOTHER), at) + FWARev + ENRev + CUCRev));
 }
Ejemplo n.º 37
0
 public OutputData Analyze(InputData inputData, AnalyzeType analyzeType)
 {
     return AnalyzeCommandFactory.CreateCommand(analyzeType, directory).Analyze(inputData);
 }