Ejemplo n.º 1
0
        // Иссдедование алгоритма с переданными параметрами.
        public ResearchAlgorithmResponse ResearchAlgorithm(ResearchRequest param)
        {
            Graph  graph   = _graphBL.GetById(param.GraphId);
            double avgTime = 0.0;
            int    error   = 0;
            // Инициализация алгоритма с переданными параметрами.
            GeneticAlgorithmCore ga = new GeneticAlgorithmCore(graph, param.PopulationSize, param.Pm, param.Pc);

            // Многократный запуск алгоритма для оценки времени работы и процента ошибок.
            for (int i = 0; i < _testCount; i++)
            {
                // Запуск алгоритма и получение результатов
                FindingVertexResponse algResult = ga.StartAlgorithm();
                // проверка на верность найденного решения
                if (algResult.R != graph.R)
                {
                    error++;
                }
                // увеличение суммарного времени работы
                avgTime += algResult.Time;
            }
            // возвращение результата в виде среднего
            // значения времени работы и процента неверных ответов
            return(new ResearchAlgorithmResponse()
            {
                AvgTime = avgTime / _testCount,
                Error = error / (double)_testCount * 100.0,
            });
        }
Ejemplo n.º 2
0
        // ������������ ��������� � ����������� �����������.
        public ResearchAlgorithmResponse ResearchAlgorithm(ResearchRequest param)
        {
            Graph  graph   = _graphBL.GetById(param.GraphId);
            double avgTime = 0.0;
            int    error   = 0;
            // ������������� ��������� � ����������� �����������.
            GeneticAlgorithmCore ga = new GeneticAlgorithmCore(graph, param.PopulationSize, param.Pm, param.Pc);

            // ������������ ������ ��������� ��� ������ ������� ������ � �������� ������.
            for (int i = 0; i < _testCount; i++)
            {
                // ������ ��������� � ��������� �����������
                FindingVertexResponse algResult = ga.StartAlgorithm();
                // �������� �� �������� ���������� �������
                if (algResult.R != graph.R)
                {
                    error++;
                }
                // ���������� ���������� ������� ������
                avgTime += algResult.Time;
            }
            // ����������� ���������� � ���� ��������
            // �������� ������� ������ � �������� �������� �������
            return(new ResearchAlgorithmResponse()
            {
                AvgTime = avgTime / _testCount,
                Error = error / (double)_testCount * 100.0,
            });
        }
Ejemplo n.º 3
0
        public ActionResult ResearchAlgorithm(ResearchRequest request)
        {
            ResearchAlgorithmResponse response = _algorithmWork.ResearchAlgorithm(request);

            return(View("ResearchResult", model: new AlgorithmResultResponse()
            {
                ResearchRequest = request,
                AlgorithmResponse = response,
            }));
        }
        public void Confirm()
        {
            var request = new ResearchRequest {
                DTO = Mapper.Map(Model, new ResearchDTO()), UserID = GlobalVar.UserID
            };
            var response = Helper.Call(s => s.ResearchSet(request));

            ServiceResponseHelper.CheckServiceResponse(response, "ResearchSet", request);
            Messenger.Default.Send(Messages.Research.Refresh);
            SliderHelper.Close();
        }
Ejemplo n.º 5
0
        public ActionResult ResearchAlgorithm(ResearchRequest request)
        {
            // получение ответа от алгоритма
            ResearchAlgorithmResponse response = _algorithmWork.ResearchAlgorithm(request);

            // возврат представления с полученными результатами работы алгоритма
            return(View("ResearchResult", model: new AlgorithmResultResponse()
            {
                ResearchRequest = request,
                AlgorithmResponse = response,
            }));
        }
Ejemplo n.º 6
0
        public ResearchResponse ResearchGetList(ResearchRequest request)
        {
            List <ResearchDTO> result = null;

            try
            {
                NullSafeCheck(request, "ResearchRequest");

                var filter = request.Filter;

                using (var context = new CharityEntities())
                {
                    var query = context.Researches.AsNoTracking().AsQueryable();
                    if (filter != null)
                    {
                        if (filter.ID > 0)
                        {
                            query = query.Where(p => p.Active && p.ID == filter.ID);
                        }
                        else
                        {
                            if (filter.Active != null)
                            {
                                query = query.Where(p => p.Active == filter.Active);
                            }
                            if (filter.CreateDate?.From != null)
                            {
                                query = query.Where(p => p.CreateDate >= filter.CreateDate.From);
                            }
                            if (filter.CreateDate?.To != null)
                            {
                                query = query.Where(p => p.CreateDate <= filter.CreateDate.To);
                            }
                            if (filter.RequestID > 0)
                            {
                                query = query.Where(p => p.RequestID == filter.RequestID);
                            }
                        }
                    }
                    result = query.Select(Mapper.ResearchDTOMapper).ToList();
                }

                return(new ResearchResponse {
                    Success = true, ResultList = result
                });
            }
            catch (Exception ex)
            {
                var response = ExceptionToBaseResponse(ex);
                return(response.Cast <ResearchResponse>());
            }
        }
Ejemplo n.º 7
0
        private void UpdateResearches()
        {
            if (!(Model?.ID > 0))
            {
                return;
            }
            var request = new ResearchRequest {
                Filter = new ResearchFilter {
                    RequestID = Model.ID
                }
            };
            var response = Helper.Call(s => s.ResearchGetList(request));

            ServiceResponseHelper.CheckServiceResponse(response, "ResearchGetList", request);
            var temp = response.ResultList.Select(x => Mapper.Map(x, new ResearchModel()));

            Helper.InvokeMainThread(() => Researches.AddRange(temp));
        }
Ejemplo n.º 8
0
 public ResponseBase ResearchSet(ResearchRequest request)
 {
     try
     {
         NullSafeCheck(request, "RequestResearch");
         NullSafeCheck(request.DTO, "ResearchDTO");
         UserCheck(request, request.DTO);
         var result = EntitySet <ResearchDTO, Research>(request.DTO);
         return(new ResponseBase(true, result));
     }
     catch (Exception ex)
     {
         while (ex.InnerException != null)
         {
             ex = ex.InnerException;
         }
         return(ExceptionToBaseResponse(ex));
     }
 }