public Operation <User> LoginUser(string UserName, string Password)
        {
            Operation <User> op_ = new Operation <User>();

            try
            {
                //string openPassword = DataIO.Cryptor.Decrypt(Password);
                string   openPassword = new RijndaelCrypt("D8903F7F075E4877A6C5F62EC68A2018").Decrypt(Password);
                BaseUser baseUser     = connection.Query <BaseUser>(" select * From [BaseUser] where UserName = @UserName AND PassHash = @PassHash ", new { UserName = UserName, PassHash = Password }).FirstOrDefault();
                if (baseUser == null)
                {
                    op_.Fail = "istifadəçi adı və ya şifrə yanlışdır";
                    return(op_);
                }
                if (baseUser.IsActive == false)
                {
                    op_.Fail = "istifadəçi adı passivdir";
                    return(op_);
                }
                LoginSession loginSession = connection.Query <LoginSession>("EXECUTE [dbo].[SP_GetSessionGuid] " + baseUser.Id.ToString()).FirstOrDefault();
                if (loginSession == null)
                {
                    op_.Fail = "Unable to get login session";
                    return(op_);
                }

                List <PermissionDetail> permissionDetails = GetPermissionDetailsByUserId(baseUser.Id).Value;
                if (permissionDetails == null)
                {
                    op_.Fail = "Unable to get login permissions";
                    return(op_);
                }

                User user = baseUser.GetEligibleOjbect <User>();
                user.PermissionDetails = permissionDetails;
                user.LoginSession      = loginSession;
                op_.Value      = user;
                op_.Successful = true;
            }
            catch (Exception ex)
            {
                op_.Fail = ex.Message;
            }

            return(op_);
        }
        public Operation <UserView> LoginUser(LoginData loginData)//string Login, string PassHash)
        {
            Operation <UserView> operation = new Operation <UserView>();

            try
            {
                string openPassword = new RijndaelCrypt("D8903F7F075E4877A6C5F62EC68A2018").Decrypt(loginData.PassHash);
                User   baseUser     = connection.Query <User>(" select * From [User] where Login = @Login AND PassHash = @PassHash ", loginData).FirstOrDefault();
                if (baseUser == null)
                {
                    operation.Fail = "istifadəçi adı və ya şifrə yanlışdır";
                    return(operation);
                }
                if (baseUser.IsActive == false)
                {
                    operation.Fail = "istifadəçi passivdir";
                    return(operation);
                }
                LoginSession loginSession = new LoginSession();
                loginSession.CreatedDate = DateTime.Now;
                loginSession.UserId      = baseUser.Id;
                loginSession.Guid        = Guid.NewGuid().ToString();
                connection.Insert(loginSession);

                UserView user = baseUser.GetEligibleOjbect <UserView>();
                user.PermissionDetails = connection.Query <PermissionDetail>("SELECT * FROM PermissionDetail WHERE UserId = " + user.Id.ToString()).ToList();
                user.CardPermissions   = connection.Query <CardPermission>("SELECT * FROM CardPermission WHERE UserId = " + user.Id.ToString()).ToList();
                user.LoginSession      = loginSession;
                operation.Value        = user;
                operation.Successful   = true;
            }
            catch (Exception ex)
            {
                operation.Fail = ex.Message;
            }

            return(operation);
        }