Ejemplo n.º 1
0
        public void Refresh()
        {
            var opts = SelectedOptions.Split(',');

            var searchName      = opts.Contains("Name");
            var searchLastNames = opts.Contains("Last Names");
            var searchIP        = opts.Contains("IP");
            var searchGuid      = opts.Contains("Guid");
            var searchNotes     = opts.Contains("Notes");
            var searchComment   = opts.Contains("Comment");

            IEnumerable <PlayerDto> result;

            if (!string.IsNullOrEmpty(Filter))
            {
                result = _playerRepository.GetPlayers(x =>
                                                      (searchGuid && (x.GUID == Filter))
                                                      ||
                                                      (searchComment && x.Comment.Contains(Filter))
                                                      ||
                                                      (searchName && x.Name.Contains(Filter))
                                                      ||
                                                      (searchNotes && x.Notes.Any(y => y.Text.Contains(Filter)))
                                                      ||
                                                      (searchIP && x.LastIp.Contains(Filter))
                                                      ||
                                                      (searchLastNames && x.PlayerHistory.Any(y => y.Name.Contains(Filter))));
            }
            else
            {
                result = _playerRepository.GetAllPlayers();
            }

            var r = result.Select(x => new PlayerView
            {
                Id       = x.Id,
                Comment  = x.Comment,
                Guid     = x.GUID,
                Name     = x.Name,
                LastIp   = x.LastIp,
                LastSeen = x.LastSeen
            }).OrderBy(x => x.Name).ToList();

            foreach (var playerView in r)
            {
                playerView.LastSeen = playerView.LastSeen.UtcToLocalFromSettings();
            }

            PlayerCount = r.Count;

            Players = r;


            OnPropertyChanged(nameof(Players));
        }