Пример #1
0
        public static AnalyzeModel GetProp(IQueryable <Borrow> borrows, IBooksReopository repository)
        {
            List <string>      names        = new List <string>();
            List <int>         values       = new List <int>();
            List <AnalyzeItem> analyzeItems = new List <AnalyzeItem>();

            IQueryable <Reader> Readers = repository.Readers;

            foreach (Reader b in Readers.ToList())
            {
                var analyzeItem = new AnalyzeItem();
                var val         = borrows.Where(br => br.ReaderId == b.Id).Count();
                analyzeItem.name  = b.Name;
                analyzeItem.value = val;
                names.Add(b.Name);
                values.Add(val);
                analyzeItems.Add(analyzeItem);
            }
            AnalyzeModel Sum = new AnalyzeModel
            {
                Values       = values,
                Names        = names,
                AnalyzeItems = analyzeItems
            };

            return(Sum);
        }
Пример #2
0
        public FineforCount(IBooksReopository repository)
        {
            this.repository = repository;
            IQueryable <Borrow> borrowsSum = this.repository.Borrows.Where(br => br.DateShouldBeReturn < DateTime.Now);
            IQueryable <Borrow> ToFine     = this.repository.Borrows.Where(br => br.DateShouldBeReturn < DateTime.Now && br.ReturnTime == null);
            IQueryable <Borrow> Fined      = this.repository.Borrows.Where(br => br.DateShouldBeReturn < DateTime.Now && br.ReturnTime != null);

            this.Sum    = FineforCount.GetProp(borrowsSum, repository);
            this.ToFine = FineforCount.GetProp(ToFine, repository);
            this.Fined  = FineforCount.GetProp(Fined, repository);
        }
        public async Task <IActionResult> Analyze([FromQuery] AnalyzeModel model)
        {
            AnalyzeResponseModel result = new AnalyzeResponseModel();
            var         services        = (model.RequestedServices ?? DefaultAnalysisServices).Distinct().ToList();
            List <Task> lstTasks        = new List <Task>();

            if (IPAddress.TryParse(model.HostnameOrddress, out IPAddress ipAddrees))
            {
                if (services.Contains(AnalysisService.Weather))
                {
                    result.GeoLocation = result.GeoLocation = await this.GetGeoLocationAsync(ipAddrees);
                }
                foreach (var singleService in services)
                {
                    switch (singleService)
                    {
                    case AnalysisService.GeoLocation:
                        lstTasks.Add(this.GetGeoLocationAsync(ipAddrees)
                                     .ContinueWith(p =>
                        {
                            if (p.IsCompletedSuccessfully)
                            {
                                result.GeoLocation = result.GeoLocation ?? p.Result;
                            }
                        }));
                        break;

                    case AnalysisService.Weather:
                        lstTasks.Add(this.GetWeatherAsync(latitude: result.GeoLocation.latitude, longitude: result.GeoLocation.longitude)
                                     .ContinueWith(p =>
                        {
                            if (p.IsCompletedSuccessfully)
                            {
                                result.Weather = p.Result;
                            }
                        })
                                     );
                        break;

                    case AnalysisService.RDAP:
                        lstTasks.Add(this.GetRDap(ipAddrees));
                        break;
                    }
                }
                Task.WaitAll(lstTasks.ToArray());
            }
            return(Ok(result));
        }
Пример #4
0
        public void StartAnalyze(AnalyzeModel model)
        {
            if (model.InfoIsSuccess)
            {
                new ChangeAnalysisFriendStatusCommandHandler(new DataBaseContext()).Handle(
                    new ChangeAnalysisFriendStatusCommand
                {
                    AccountId        = model.AnalysisFriend.AccountId,
                    FriendFacebookId = model.AnalysisFriend.FacebookId,
                    NewStatus        = StatusesFriend.ToAdd
                });
            }
            else
            {
                new ChangeAnalysisFriendStatusCommandHandler(new DataBaseContext()).Handle(
                    new ChangeAnalysisFriendStatusCommand
                {
                    AccountId        = model.AnalysisFriend.AccountId,
                    FriendFacebookId = model.AnalysisFriend.FacebookId,
                    NewStatus        = StatusesFriend.ToDelete
                });

                new RemoveAnalyzedFriendCommandHandler(new DataBaseContext()).Handle(
                    new RemoveAnalyzedFriendCommand
                {
                    AccountId = model.AnalysisFriend.AccountId,
                    FriendId  = model.AnalysisFriend.Id,
                });
            }


            new AddOrUpdateSpyStatisticsCommandHandler(new DataBaseContext()).Handle(
                new AddOrUpdateSpyStatisticsCommand
            {
                CountAnalizeFriends = 1,
                SpyAccountId        = model.SpyAccountId
            });

            Thread.Sleep(5000);
        }
Пример #5
0
 public ActionResult ReaderAnalyze1(int Id)
 {
     return(Json(AnalyzeModel.GetReaderAnalyze(repository, Id)));
 }
Пример #6
0
 public ActionResult FineCount1()
 {
     return(Json(AnalyzeModel.GetFineCount(repository)));
 }
Пример #7
0
 public ActionResult CategoryCount1()
 {
     return(Json(AnalyzeModel.GetCategoryCount(repository)));
 }
 public AnalyzerWindowViewModel(string fileName)
 {
     _model = new AnalyzeModel(fileName);
     _model.PropertyChanged += OnModelPropertyChanged;
 }