コード例 #1
0
        public void ShouldBeChronological_IfProcessingWithDelay()
        {
            //Arrange
            var fileName = $"testlog{Guid.NewGuid()}";
            var logDir   = _logDir;

            _fileLoggerProvider = new FileLoggerProvider(new OptionsManager <FileLoggerOptions>(new List <IConfigureOptions <FileLoggerOptions> >()
            {
                new ConfigureOptions <FileLoggerOptions>(
                    (x) =>
                {
                    x.FileName     = fileName;
                    x.LogDirectory = logDir;
                })
            }));
            var logger = _fileLoggerProvider.CreateLogger();
            var guid   = Guid.NewGuid();
            var guid2  = Guid.NewGuid();

            //Act
            logger.Log(Severity.Debug, new Exception($"Simple debug {guid}"));
            Thread.Sleep(1000);
            logger.Log(Severity.Info, new Exception($"Simple info {guid2}"));

            //Assert
            Thread.Sleep(5000); //to ensure that async processing of messages finished
            var lastLine = File.ReadLines(GetFullName(fileName, (DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day))).Last();

            Assert.True(lastLine.Contains(guid2.ToString()));//last info
        }
コード例 #2
0
        public void ShouldConsiderPriority()
        {
            //Arrange
            var fileName = $"testlog{Guid.NewGuid()}";
            var logDir   = _logDir;

            _fileLoggerProvider = new FileLoggerProvider(new OptionsManager <FileLoggerOptions>(new List <IConfigureOptions <FileLoggerOptions> >()
            {
                new ConfigureOptions <FileLoggerOptions>(
                    (x) =>
                {
                    x.FileName     = fileName;
                    x.LogDirectory = logDir;
                })
            }));
            var logger = _fileLoggerProvider.CreateLogger();
            var guid   = Guid.NewGuid();
            var guid2  = Guid.NewGuid();
            var guid3  = Guid.NewGuid();

            //Act
            logger.Log(Severity.Debug, new Exception($"Simple debug error {guid}"));
            logger.Log(Severity.Debug, new Exception($"Simple debug error2 {guid2}"));
            logger.Log(Severity.Critical, new Exception($"Simple critical error {guid3}"));

            //Assert
            Thread.Sleep(5000);
            var lastLine = File.ReadLines(GetFullName(fileName, (DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day))).Last();

            Assert.True(lastLine.Contains(guid2.ToString()));
        }
コード例 #3
0
        public IActionResult Results(string stringQuery)
        {
            var posts    = _postService.SeachPost(stringQuery);
            var noResult = (!String.IsNullOrEmpty(stringQuery) && !posts.Any());
            var result   = posts
                           .Select(post => new PostViewModel
            {
                Id           = post.Id,
                Title        = post.Title,
                Content      = post.Content,
                AuthorName   = GetFullName.FullName(post.User.LastName, post.User.FirstName),
                AuthorRating = post.User.Rating,
                Created      = post.Created,
                RepliesCount = post.Replies.Count(),
                Forum        = BuildForum(post)
            });
            var model = new ResultViewModel
            {
                Posts            = result,
                SearchQuery      = stringQuery,
                EmptySearchQuery = noResult
            };

            return(View(model));
        }
コード例 #4
0
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }
            var userId = _userService.GetById(user.Id);

            Username = user.UserName;

            Input = new InputModel
            {
                Email        = user.Email,
                PhoneNumber  = user.PhoneNumber,
                FullName     = GetFullName.FullName(user.LastName, user.FirstName),
                Department   = user.Regency.Name,
                Gender       = user.Gender,
                DataOfBirth  = user.DayOfBirth.ToDate(),
                ImageProfile = user.ProfileImageUrl,
                PostCount    = user.Posts.Count()
            };
            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);

            return(Page());
        }
コード例 #5
0
 private IEnumerable <PostViewReplyModel> BuildPostReplies(IEnumerable <PostReply> replies)
 {
     return(replies.OrderByDescending(r => r.Created).Select(r => new PostViewReplyModel
     {
         AuthorId = r.User.Id,
         AuthorName = GetFullName.FullName(r.User.LastName, r.User.FirstName),
         AuthorRating = r.User.Rating,
         AuthorImageUrl = r.User.ProfileImageUrl,
         Created = r.Created,
         ReplyContent = r.Content
     }).ToList());
 }
コード例 #6
0
        public void ShouldConsiderPriority_ForAllMessageTypes_Concurrent()
        {
            //Arrange
            var fileName = $"testlog{Guid.NewGuid()}";
            var logDir   = _logDir;

            _fileLoggerProvider = new FileLoggerProvider(new OptionsManager <FileLoggerOptions>(new List <IConfigureOptions <FileLoggerOptions> >()
            {
                new ConfigureOptions <FileLoggerOptions>(
                    (x) =>
                {
                    x.FileName     = fileName;
                    x.LogDirectory = logDir;
                })
            }));
            var logger = _fileLoggerProvider.CreateLogger();
            var guid   = Guid.NewGuid();
            var guid2  = Guid.NewGuid();
            var guid3  = Guid.NewGuid();
            var guid4  = Guid.NewGuid();
            var guid5  = Guid.NewGuid();

            //Act
            new Thread(() => logger.Log(Severity.Debug, new Exception($"Simple debug error {guid}"))).Start();
            new Thread(() => logger.Log(Severity.Info, new Exception($"Simple info error {guid2}"))).Start();
            new Thread(() => logger.Log(Severity.Error, new Exception($"Simple error error {guid4}"))).Start();
            new Thread(() => logger.Log(Severity.Critical, new Exception($"Simple critical error {guid5}"))).Start();
            new Thread(() => logger.Log(Severity.Warn, new Exception($"Simple warn error {guid3}"))).Start();

            //Assert
            Thread.Sleep(5000);
            var lastLines = File.ReadLines(GetFullName(fileName, (DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)))
                            .TakeLast(10).ToArray(); //10 - because every log puts 2 lines into log file

            Assert.True(lastLines[0].Contains(guid5.ToString()));
            Assert.True(lastLines[2].Contains(guid4.ToString()));
            Assert.True(lastLines[4].Contains(guid3.ToString()));
            Assert.True(lastLines[6].Contains(guid2.ToString()));
            Assert.True(lastLines[8].Contains(guid.ToString()));
        }
コード例 #7
0
        public async Task <IActionResult> Profile()
        {
            var userId = _userManager.GetUserId(HttpContext.User);
            var user   = await _userManager.FindByIdAsync(userId);

            var model = new ProfileViewModel {
                Id           = user.Id,
                Name         = GetFullName.FullName(user.LastName, user.FirstName),
                ImageProfile = user.ProfileImageUrl,
                Created      = user.MemberSince
            };

            return(View(model));
        }
コード例 #8
0
        public async Task <IActionResult> Index(int?pageIndex)
        {
            var accounts = _userManager.Users.Include(p => p.Regency).Select(user => new AccountViewModel
            {
                Id           = user.Id,
                UserName     = user.UserName,
                Email        = user.Email,
                FullName     = GetFullName.FullName(user.LastName, user.FirstName),
                Created      = user.MemberSince,
                ImageProfile = user.ProfileImageUrl,
                Regency      = user.Regency.Name
            });
            int pageSize = 10;
            var result   = await PaginatedList <AccountViewModel> .CreateAsync(accounts, pageIndex ?? 1, pageSize);

            var model = new AccountIndexModel()
            {
                Accounts = result.AsQueryable()
            };

            return(View(model));
        }
コード例 #9
0
        public IActionResult Index(int Id, int?pageIndex)
        {
            var post    = _postService.GetById(Id);
            var replies = BuildPostReplies(post.Replies);
            var model   = new PostViewModel {
                Id           = post.Id,
                Title        = post.Title,
                Content      = post.Content,
                Created      = post.Created,
                AuthorId     = post.User.Id,
                NumberRead   = post.NumberRead,
                AuthorName   = GetFullName.FullName(post.User.LastName, post.User.FirstName),
                ImageProfile = post.User.ProfileImageUrl,
                FileUrl      = post.FileUrl,
                AuthorRating = post.User.Rating,
                RepliesCount = post.Replies.Count(),
                UrlHttp      = HttpContext.Request.PathBase,
                Replies      = replies
            };

            _postService.ViewPost(Id);
            return(View(model));
        }