public ActionResult Login(UserLoginViewModel user)
 {
     if (ValidateUser(user))
     {
         var    tempUser = Users.SingleOrDefault(U => U.UserName == user.UserName);
         string userData = user.UserName + " " + tempUser.UserRole;
         CookieHandler.CreateCookie(user.UserName, userData, "LoginCookie");
         logger.Info(Environment.NewLine + "User logged in: " + user.UserName + " " + DateTime.Now);
         return(RedirectToAction("Index", "Invoice"));
     }
     logger.Warn(Environment.NewLine + "Login failure " + DateTime.Now);
     ModelState.AddModelError("Login", "Incorrect login or password");
     return(View(user));
 }
        private async void VisitorAgentStatistics()
        {
            bool cookieVisitorExist = cookieHandler.CheckIfCookieExist("VisitorCookie");
            bool cookieDeviceExist  = cookieHandler.CheckIfCookieExist("DeviceInfo");

            if (cookieVisitorExist || cookieDeviceExist)
            {
                return;
            }
            cookieHandler.CreateCookie("VisitorCookie", Guid.NewGuid().ToString(), null);
            var          countryName = GetVisitorLocationAsync(Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString());
            var          c           = cookieHandler.GetClientInfo();
            VisitorAgent visitor     = new VisitorAgent();

            visitor.Browser         = c.UA.Family + " " + c.UA.Major;
            visitor.OperatingSystem = c.OS.Family + " " + c.OS.Major;
            visitor.Country         = countryName.Result;
            visitor.VisitTime       = DateTime.UtcNow.ToLocalTime().ToString("yyyy-MM-dd' 'HH:mm:ss");

            await _apiService.CreateUpdateData <VisitorAgent>(visitor);
        }