public void OnActionExecuting(ActionExecutingContext context)
        {
            string c;

            context.HttpContext.Request.Cookies.TryGetValue(".AspNetCore.Identity.Application", out c); //to jest taka metoda outer string więc ten string c sam zostanie wypełniony, tak na podpowiedziało w nawiasi "out string value"

            UserLogger userLogged = new UserLogger();

            userLogged.DateExecuted = DateTime.Now;
            userLogged.Message      = context.Controller.ToString();
            userLogged.CookieInfo   = c;
            userLogged.UserId       = _mgr.GetUserId(_IHttpContextAccessor.HttpContext.User);

            _db.Add(userLogged);
            _db.SaveChanges();

            var view = context.ActionDescriptor.RouteValues.ElementAt(0).Value;

            if (view == "About")
            {
                context.Result = new ViewResult {
                    ViewName = "AccesDenied"
                };
            }

            _emailSender.SendEmailAsync("*****@*****.**", "title", "helloMessage");
        }
예제 #2
0
        static void Main(string[] args)
        {
            var allUsers = UserService.GetAllUsers();

            //foreach (var user in allUsers)
            //{
            //    Console.WriteLine(user.FirstName);
            //}
            try
            {
                //var userById = UserService.GetUserById(4);
                var usersFriends = UserService.GetAllUsersFriends(null);
                foreach (var user in usersFriends)
                {
                    Console.WriteLine(user.FirstName);
                }
                //Console.WriteLine(userById.FirstName);
            }
            catch (UserServiceException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (Exception ex)
            {
                var logger = new UserLogger();
                logger.LogException(ex);
                Console.WriteLine(ex.Message);
            }
            Console.WriteLine("I proced to work");

            Console.ReadLine();
        }
예제 #3
0
        public async Task AdminSendHeartbeatRequest()
        {
            await this.Clients.All.SendAsync("RequestHeartbeat");

            _ = Task.Run(async() =>
            {
                System.Threading.Thread.Sleep(10000);
                long heartbeatTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
                // Creates a shallow copy of the HubUser list and operates on that to avoid running into errors with
                // foreach() on a changed IEnumerable
                foreach (KeyValuePair <string, HubUser> userMapping in new Dictionary <string, HubUser>(UserHandler.UserMappings))
                {
                    // If the last heartbeat time was more than 15s ago, should give some headroom with the 10s delay
                    if (heartbeatTime - userMapping.Value.LastHeartbeatTime > 15)
                    {
                        try
                        {
                            await this.Clients.Client(userMapping.Key).SendAsync("ForceDisconnect");
                        }
                        finally
                        {
                            UserLogger.WriteLog(UserHandler.UserMappings[userMapping.Key].AspNetUsername, userMapping.Key, UserLogger.ConnectionStatus.Disconnected);

                            lock (UserHandler.ConnectedIds)
                            {
                                UserHandler.ConnectedIds.Remove(userMapping.Key);
                            }
                            UserHandler.UserMappings.TryRemove(userMapping.Key, out _);
                            await this.Clients.Others.SendAsync("ViewerDisconnected");
                        }
                    }
                }
            });
        }
예제 #4
0
    protected void Start()
    {
        tank   = GetComponent <Tank>();
        logger = userLogger;
        tank.StartScripting(logger);
        StaticStart();

        StartCoroutine(FlexPanel.DelayAction(0.1f, FillInScriptTemplate));
    }
예제 #5
0
        /// <summary>
        /// The method used to override the default connection handler to add user state tracking.
        /// </summary>
        /// <returns>A Task representing the state of the request.</returns>
        public override Task OnDisconnectedAsync(Exception e)
        {
            UserLogger.WriteLog(Context.User.Identity.Name, Context.ConnectionId, UserLogger.ConnectionStatus.Disconnected);

            lock (UserHandler.ConnectedIds)
            {
                UserHandler.ConnectedIds.Remove(Context.ConnectionId);
            }
            UserHandler.UserMappings.TryRemove(Context.ConnectionId, out _);
            // Notify other clients of user disconnection.
            this.Clients.Others.SendAsync("ViewerDisconnected");
            return(base.OnDisconnectedAsync(e));
        }
예제 #6
0
        public async Task <bool> UserLoginTracker(int userid)
        {
            var userDetails = await _tcContext.Users.SingleOrDefaultAsync(x => x.UserId == userid);

            userDetails.LastLoginDate = DateTime.Now;

            UserLogger userloger = new UserLogger();

            userloger.UserId     = userid;
            userloger.LoginDate  = DateTime.Now;
            userloger.ExpiryDate = DateTime.Now.AddDays(1);

            _tcContext.UserLoggers.Add(userloger);

            return(await SaveAllAsync());
        }
        /// <summary>
        /// The main method that initializes the needed instances and starts the HealthWatcher Management Server.
        /// </summary>
        /// <param name="args">The program expects no command line arguments.</param>
        private static void Main(string[] args)
        {
            string firebaseDbToken      = "KXdQfwlci2Cytgg8tOJzUAJA0zgK9tflQ5Qit720";
            string realtimeDatabaseLink = "https://healthwatcher-f04bf-default-rtdb.firebaseio.com";
            string decryptionKey        = "HealthWatcherKey";
            string EIMDictionaryPath    = "EIMDictionary.bin";

            IDecryptionServiceProvider decryptionServiceProvider = new DecryptionServiceProvider(decryptionKey);
            IFirebaseClient            firebaseClient            = new FirebaseClient(realtimeDatabaseLink, firebaseDbToken);
            IExceptionLogger           devLogger  = new DeveloperLogger();
            IExceptionLogger           userLogger = new UserLogger();
            Controller controller = new Controller(EIMDictionaryPath, firebaseClient, decryptionServiceProvider, devLogger);
            MainView   mainView   = new MainView(controller, userLogger);

            mainView.StartView();
        }
예제 #8
0
        private void Read(IModbusMaster master)
        {
            var watch       = new Stopwatch();
            var isFirstRead = true;

            try
            {
                while (true)
                {
                    _cancellationTokenSource.Token.ThrowIfCancellationRequested();
                    watch.Start();
                    try
                    {
                        ReadByFunction(master, isFirstRead);
                        isFirstRead = false;
                    }
                    catch (Exception e)
                    {
                        UserLogger.WriteLine(e.Message, _cancellationTokenSource);
                    }

                    _cancellationTokenSource.Token.ThrowIfCancellationRequested();
                    if (_configurationSettings.Timeout - watch.ElapsedMilliseconds > 0)
                    {
                        Thread.Sleep(
                            TimeSpan.FromMilliseconds(
                                _configurationSettings.Timeout - watch.ElapsedMilliseconds));
                    }
                    _cancellationTokenSource.Token.ThrowIfCancellationRequested();
                    watch.Stop();
                    watch.Reset();
                }
            }
            catch (OperationCanceledException)
            {
                throw;
            }
            catch (Exception e)
            {
                UserLogger.WriteLine(e.Message, _cancellationTokenSource);
            }
        }
예제 #9
0
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            var email    = txtemail.Text.Trim();
            var password = txtpassword.Password.Trim();

            using (var db = new PointsOfInterestContext())
            {
                var existUser = db.Users.SingleOrDefault(x => x.Email == email);

                if (existUser == null)
                {
                    MessageBox.Show("Invalid email or password");
                }
                else
                {
                    var checkPassword = BCrypt.Net.BCrypt.Verify(password, existUser.Password);
                    if (checkPassword)
                    {
                        UserLogger.Save(email, existUser.Name);

                        ConfigurationManager.AppSettings["CurrentUser"] = existUser.Email;

                        var isAdmin      = existUser.IsAdmin ?? false;
                        var adminMessage = "";
                        if (isAdmin)
                        {
                            adminMessage = "with admin permissions";
                        }
                        MessageBox.Show($"You have succesfully logged in with {existUser.Email} {adminMessage}");

                        var page = new Home();
                        page.Show();
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Invalid email or password");
                    }
                }
            }
        }
예제 #10
0
        public void CallFactoryGetUserLogMethod()
        {
            // arrange
            string   command  = "command";
            string   username = "******";
            DateTime date     = new DateTime(2017, 6, 12);

            var repositoryMock = new Mock <IRepository <UserLog> >();

            repositoryMock.Setup(x => x.Add(It.IsAny <UserLog>()));

            var unitOfWorkMock = new Mock <IUnitOfWork>();

            unitOfWorkMock.Setup(x => x.SaveChanges());

            var userMock = new User()
            {
                Username = username
            };
            var userProviderMock = new Mock <IUserProvider>();

            userProviderMock.Setup(x => x.LoggedUser).Returns(userMock);

            var dateProviderMock = new Mock <IDateProvider>();

            dateProviderMock.Setup(x => x.GetDate()).Returns(date);
            DateProvider.Provider = dateProviderMock.Object;

            var factoryMock = new Mock <ILogsFactory>();

            factoryMock.Setup(x => x.GetUserLog(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>()));

            var userLogger = new UserLogger(repositoryMock.Object, unitOfWorkMock.Object, userProviderMock.Object, factoryMock.Object);

            // act
            userLogger.Log(command);

            // assert
            factoryMock.Verify(x => x.GetUserLog(
                                   It.Is <string>(y => y == username), It.Is <string>(y => y == command), It.Is <DateTime>(y => y == date)), Times.Once);
        }
예제 #11
0
        /// <summary>
        /// The method used to override the default connection handler to add user state tracking.
        /// </summary>
        /// <returns>A Task representing the state of the request.</returns>
        public override Task OnConnectedAsync()
        {
            lock (UserHandler.ConnectedIds)
            {
                UserHandler.ConnectedIds.Add(Context.ConnectionId);
            }

            HubUser user = new HubUser
            {
                AspNetUsername = Context.User.Identity.Name,
                HasDiscordInfo = null
            };

            UserHandler.UserMappings.TryAdd(Context.ConnectionId, user);

            UserLogger.WriteLog(Context.User.Identity.Name, Context.ConnectionId, UserLogger.ConnectionStatus.Connected);

            this.Clients.All.SendAsync("ViewerConnected");

            return(base.OnConnectedAsync());
        }
예제 #12
0
 public WebControllerBase()
 {
     _adminLogger = new AdminLogger();
     _errorLogger = new ErrorLogger();
     _userLogger  = new UserLogger();
 }
 public void Warning(Exception exception, string format, params object[] args)
 {
     UserLogger?.Warning(exception, format, args);
 }
 public void Fatal(Exception exception, string format, params object[] args)
 {
     UserLogger?.Fatal(exception, format, args);
 }
예제 #15
0
 public UserService()
 {
     _userRepository = new UserRepository();
     _logger         = new UserLogger();
 }
 public void Fatal(string message)
 {
     UserLogger?.Fatal(message);
 }
 public void Fatal(string format, params object[] args)
 {
     UserLogger?.Fatal(format, args);
 }
 public void Trace(Exception exception, string format, params object[] args)
 {
     UserLogger?.Trace(exception, format, args);
 }
 public void Error(Exception exception, string format, params object[] args)
 {
     UserLogger?.Error(exception, format, args);
 }
 public void Trace(string message)
 {
     UserLogger?.Trace(message);
 }
 public void Debug(string message)
 {
     UserLogger?.Debug(message);
 }
 public void Debug(string format, params object[] args)
 {
     UserLogger?.Debug(format, args);
 }
 public void Warning(string message)
 {
     UserLogger?.Warning(message);
 }
 public void Information(Exception exception, string format, params object[] args)
 {
     UserLogger?.Information(exception, format, args);
 }
 public void Information(string format, params object[] args)
 {
     UserLogger?.Information(format, args);
 }
 public void Information(string message)
 {
     UserLogger?.Information(message);
 }
 public void Error(string message)
 {
     UserLogger?.Error(message);
 }
 public void Error(string format, params object[] args)
 {
     UserLogger?.Error(format, args);
 }
 public void Warning(string format, params object[] args)
 {
     UserLogger?.Warning(format, args);
 }
 public void Trace(string format, params object[] args)
 {
     UserLogger?.Trace(format, args);
 }