예제 #1
0
 public string GetProducts()
 {
     using(var db = new SimpsonGroupEntities())
     {
         string json;
         try
         {
             var products = (from p in db.Products
                             select p).ToList();
             json = new JavaScriptSerializer().Serialize(products);
         }
         catch (Exception e)
         {
             Error dberror = new Error();
             dberror.DateTime = DateTime.Now;
             dberror.Errorid = e.HResult;
             dberror.Message = e.Message;
             dberror.Type = "Database query error";
             db.Errors.Add(dberror);
             db.SaveChanges();
             json = new JavaScriptSerializer().Serialize("false");
         }
         return json;
     }
 }
예제 #2
0
 public void AddError(string type, string message)
 {
     using (var db = new SimpsonGroupEntities())
     {
         db.Errors.Add(new Error { Type = type, Message = message, DateTime = DateTime.Now});
     }
 }
예제 #3
0
 bool RemoveProduct(int prodid)
 {
     using (var db = new SimpsonGroupEntities())
     {
         return true;
     }
     return true;
 }
예제 #4
0
 List<Simpson_Group_Store_Database.DataBase.Product> GetProducts()
 {
     using (var db = new SimpsonGroupEntities())
     {
         List<Simpson_Group_Store_Database.DataBase.Product> products = (from p in db.Products
                                                                         select p).ToList();
         return products;
     }
 }
예제 #5
0
 Simpson_Group_Store_Database.DataBase.Product GetProduct(int prodid)
 {
     using (var db = new SimpsonGroupEntities())
     {
         Simpson_Group_Store_Database.DataBase.Product product = (from p in db.Products
                                                                  where p.Productid == prodid
                                                                  select p).First();
         return product;
     }
 }
예제 #6
0
 public static int GetUserid(string username)
 {
     using (var db = new SimpsonGroupEntities())
     {
         var query = from n in db.Users
                     where n.Username == username
                     select n;
         if (query.Count() == 0)
             return 0;
         else
             return query.First().Userid;
     }
 }
예제 #7
0
 public void AddLoginResult(bool result, string username, string ip, int userid)
 {
     using (var db = new SimpsonGroupEntities())
     {
         db.LoginResults.Add(new LoginResult { Userid = userid, Result = result, ipaddress = ip, DateTime = DateTime.Now });
         try
         {
             db.SaveChanges();
         }
         catch (Exception e)
         {
             AddError("Database Error", e.Message);
         }
     }
 }
예제 #8
0
        public bool Login(string username, string password, string rememberme, string ip)
        {
            if (username == null)
                return false;
            if (password == null)
                return false;
            if (rememberme == null)
                return false;
            if (ip == null)
                return false;

            int userid = GetUserid(username);

            if (userid == 0)
            {
                AddLoginResult(false, username, ip, userid);
                return false;
            }
            using (var db = new SimpsonGroupEntities())
            {
                var passwordquery = from n in db.Passwords
                                    where n.Userid == userid
                                    select n;
                if (passwordquery.Count() == 0)
                {
                    AddLoginResult(false, username, ip, userid);
                    return false;
                }

                Encryption encrypter = new Encryption();
                string encriptedpassword = encrypter.sha256encrypt(password + passwordquery.First().Salt);

                var loginquery = from n in db.Users
                                 where n.Username == username && n.Password.UserPassword == encriptedpassword
                                 select n;
                if (loginquery.Count() == 0)
                {
                    AddLoginResult(false, username, ip, userid);
                    return false;
                }

                //Checking that the cookie hasent been deleted if deleted remove the session from database issue new one
                var cookiequery = from n in db.Sessions
                                  where n.Userid == userid
                                  select n;
                if (cookiequery.Count() > 0)
                {
                    db.Sessions.Remove(db.Sessions.Find(userid));
                    db.SaveChanges();
                }
            }

            return true;
        }
예제 #9
0
        // Register
        // Checks the inputs then adds them to a database
        // INPUTS: Userame, Password, Email, dob
        // OUTPUT: bool (Sucsessfull registration)
        public bool Register(string username, string password, string email, string dob)
        {
            //Checking the inputs are not empty
            if (username == null)
                return false;
            if (password == null)
                return false;
            if (email == null)
                return false;
            if (dob == null)
                return false;

            //Checking the username exists
            if (GetUserid(username) != 0)
                return false;

            //Generating the salt and encripting the password with the salt
            Encryption encrypter = new Encryption();
            string salt = encrypter.sha256encrypt(username + saltKey + email);
            string encriptedpassword = encrypter.sha256encrypt(password + salt);

            username = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(username);

            //Adding account details to the database
            using (var db = new SimpsonGroupEntities())
            {
                db.Users.Add(new User { Username = username, Email = email, DoB = Convert.ToDateTime(dob), Registered = DateTime.Now });
                db.Passwords.Add(new Password { UserPassword = encriptedpassword, Salt = salt, LastLogin = DateTime.Now, LastPasswordChange = DateTime.Now });

                //Try to save the database
                try
                {
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    AddError("Database Error", e.Message);
                }

                return true;
            }
        }