public async Task <User> SignUp(string username, string password, string email) { var user = new User { Username = username.ToLower(), Email = email }; var checkUsername = await _ctx.Users .Where(u => u.Username == username.ToLower()) .FirstOrDefaultAsync(); if (!(checkUsername == null)) { return(null); } _ctx.Users.Add(user); await _ctx.SaveChangesAsync(); var hasher = new PasswordHasher(user); user.Password = hasher.HashPassword(password); _ctx.Users.Update(user); _ctx.UserProfiles.Add(UserProfile.CreateUserProfile(user)); await _ctx.SaveChangesAsync(); return(user); }
public async Task Invoke(HttpContext httpContext, IUserAgentService userAgentService, WrinkMeDataContext context) { var uaHeader = StringValues.Empty; httpContext.Request.Headers.TryGetValue("User-Agent", out uaHeader); var parsedUserAgent = userAgentService.ParseUserAgent(uaHeader); if (httpContext.Request.Path.ToString().Length == 9) { var token = httpContext.Request.Path.ToString().Substring(1); var shortUrl = context.ShortUrls .Include(s => s.Requests) .FirstOrDefault(su => su.Token == token); if (shortUrl != null) { shortUrl.Requests.Add(parsedUserAgent); await context.SaveChangesAsync(); httpContext.Response.Redirect(shortUrl.OriginalUrl.ToString()); } else { httpContext.Response.Redirect(httpContext.Request.Host.ToString()); } } await _next(httpContext); }
public async Task Run([TimerTrigger("15 1 * * * *")] TimerInfo myTimer, ILogger log) { var requestNumber = await _ctx.Requests .Where(r => r.Device.IsBot == true).CountAsync(); var totalRequest = await _ctx.Requests.CountAsync(); var requests = await _ctx.Requests .Where(r => r.Device.IsBot == true).ToArrayAsync(); _ctx.Requests.RemoveRange(requests); await _ctx.SaveChangesAsync(); log.LogInformation($"Deleted {requestNumber} requests at {DateTime.UtcNow}"); log.LogInformation($"{requestNumber * 100 / totalRequest}% of requests were bots"); }