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 }
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())); }
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)); }
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()); }
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()); }
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())); }
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)); }
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)); }
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)); }