Ejemplo n.º 1
0
 /// <summary>
 /// Validace údajů ve formuláři a přihlášení uživatele
 /// </summary>
 private bool login()
 {
     UserResponse response = app.login(txtLogin.Text, txtPassword.Text);
     this.user = response.user;
     this.message = response.message;
     return response.success;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Privátní konstruktor aplikace, je volán pouze jednou, inicializuje datové modely
 /// </summary>
 /// <exception cref="CarExpensesException">Při chybě aplikace</exception>
 private CarExpensesApp()
 {
     user = null;
     connection = null;
     userDAO = new UserDAO(getConnection());
     carDAO = new CarDAO(getConnection());
     gasDAO = new GasDAO(getConnection());
     serviceDAO = new ServiceDAO(getConnection());
     otherExpenseDAO = new OtherExpenseDAO(getConnection());
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Konstruktor okna
        /// </summary>
        /// <param name="carExpensesApp">Instance jádra aplikace</param>
        /// <param name="user">Aktuálně přihlášený uživatel</param>
        public ExpensesForm(CarExpensesApp carExpensesApp, User user)
        {
            InitializeComponent();

            this.carExpensesApp = carExpensesApp;
            this.user = user;
            this.selectedCar = null;

            disableElements();
            reloadUserCars();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Přihlášení uživatele pomocí jména a hesla v parametrech <paramref name="login">login</paramref>
        /// a <paramref name="password">password</paramref>. Heslo musí být již zahashované, musí být
        /// obstaráno již business logikou.
        /// </summary>
        /// <param name="login">Přihlašovací jméno uživatele.</param>
        /// <param name="password">Zahashované heslo uživatele</param>
        /// <returns>Objekt přihlášeného uživatele při úspěchu, null při chybě</returns>
        /// <exception cref="CarExpensesDatabaseException">Při chybě práce s databází</exception>
        public User login(string login, string password)
        {
            User user = null;

            using (OracleCommand cmdSelect = new OracleCommand())
            {
                try
                {
                    cmdSelect.Connection = connection;
                    cmdSelect.CommandText = "SELECT * FROM \"users\" WHERE \"login\" = '" + login + "' AND \"password\" = '" + password + "'";
                    cmdSelect.CommandType = System.Data.CommandType.Text;

                    using (OracleDataReader dr = cmdSelect.ExecuteReader())
                    {
                        if (dr.HasRows)
                        {
                            dr.Read();
                            user = new User();
                            user.id = Convert.ToInt32(dr["id"].ToString());
                            user.login = dr["login"].ToString();
                            user.email = dr["email"].ToString();
                            user.bornYear = Convert.ToInt32(dr["born_year"].ToString());
                            user.regionId = Convert.ToInt32(dr["region_id"].ToString());
                        }
                        else
                        {
                            throw new CarExpensesDatabaseException("Unknown login or password.");
                        }
                    }
                }
                catch (OracleException ex)
                {
                    switch (ex.Number)
                    {
                        case 12545:
                            throw new CarExpensesDatabaseException("The database is unavailable.");
                        default:
                            throw new CarExpensesDatabaseException("Database error: " + ex.Message.ToString());
                    }
                }
                catch (CarExpensesDatabaseException ex)
                {
                    throw new CarExpensesDatabaseException(ex.Message.ToString());
                }
                catch (Exception ex) // catches any other error
                {
                    throw new CarExpensesDatabaseException("Unexpected error: " + ex.Message.ToString());
                }
            }

            return user;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Odhlášení uživatele
 /// </summary>
 static bool logout()
 {
     Response response = application.logout();
     if (response.success == true)
     {
         user = null;
     }
     Console.WriteLine(response.message);
     keyToContinue();
     return response.success;
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Přihlášení uživatele
        /// </summary>
        static bool login()
        {
            Console.Write("login: "******"password: ");
            string password = readPassword();

            UserResponse response = application.login(login, password);
            Console.WriteLine(response.message);

            user = response.user;

            if (response.success == false)
            {
                keyToContinue();
            }

            return response.success;
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Registrace nového uživatele. O neduplicitu loginů se stará integrití omezení databáze
        /// a v případě duplicity je vyvolána výjimka. ID uživatele a časový otisk (timestamp) jsou automaticky
        /// generovány databází a i když jsou v objektu přiřazeny, jsou při vkládání ignorovány.
        /// </summary>
        /// <param name="user">Objekt nového uživatele pro registraci</param>
        /// <returns>True při úspěchu, false při chybě</returns>
        /// <exception cref="CarExpensesDatabaseException">Při chybě práce s databází</exception>
        public bool register(User user)
        {
            using (OracleCommand cmdInsert = new OracleCommand())
            {
                try
                {
                    string sqlInsert = "INSERT INTO \"users\" (\"login\", \"email\", \"password\", \"region_id\", \"born_year\") ";
                    sqlInsert += "values (:p_login, :p_email, :p_password, :p_region_id, :p_born_year)";

                    cmdInsert.CommandText = sqlInsert;
                    cmdInsert.Connection = connection;

                    OracleParameter pLogin = new OracleParameter();
                    pLogin.Value = user.login;
                    pLogin.ParameterName = "p_login";

                    OracleParameter pEmail = new OracleParameter();
                    pEmail.Value = user.email;
                    pEmail.ParameterName = "p_email";

                    OracleParameter pPassword = new OracleParameter();
                    pPassword.Value = user.password;
                    pPassword.ParameterName = "p_password";

                    OracleParameter pRegionId = new OracleParameter();
                    pRegionId.OracleDbType = OracleDbType.Decimal;
                    pRegionId.Value = user.regionId;
                    pRegionId.ParameterName = "p_region_id";

                    OracleParameter pBornYear = new OracleParameter();
                    pBornYear.OracleDbType = OracleDbType.Decimal;
                    pBornYear.Value = user.bornYear;
                    pBornYear.ParameterName = "p_born_year";

                    cmdInsert.Parameters.Add(pLogin);
                    cmdInsert.Parameters.Add(pEmail);
                    cmdInsert.Parameters.Add(pPassword);
                    cmdInsert.Parameters.Add(pRegionId);
                    cmdInsert.Parameters.Add(pBornYear);

                    if ( cmdInsert.ExecuteNonQuery() > 0 )
                    {
                        return true;
                    }
                    else return false;
                }
                catch (OracleException ex)
                {
                    switch (ex.Number)
                    {
                        case 1:
                            throw new CarExpensesDatabaseException("User " + user.login + " already exists.");
                        case 2291:
                            throw new CarExpensesDatabaseException("Region ID " + user.regionId + " doesn't exist.");
                        case 12545:
                            throw new CarExpensesDatabaseException("The database is unavailable.");
                        default:
                            throw new CarExpensesDatabaseException("Database error: " + ex.Message.ToString());
                    }
                }
                catch (CarExpensesDatabaseException ex)
                {
                    throw new CarExpensesDatabaseException(ex.Message.ToString());
                }
                catch (Exception ex) //catches any other error
                {
                    throw new CarExpensesDatabaseException("Unexpected error: " + ex.Message.ToString());
                }
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Konstruktor struktury
 /// </summary>
 public UserResponse(bool success = false, String message = "", User user = null)
 {
     this.success = success;
     this.message = message;
     this.user = user;
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Registrace nového uživatele
        /// </summary>
        /// <param name="login">Přihlašovací jméno uživatele</param>
        /// <param name="password">Heslo uživatele</param>
        /// <param name="email">Email uživatele</param>
        /// <param name="bornYear">Rok narození uživatele</param>
        /// <param name="regionId">Identifikace regionu, kde uživatel žije</param>
        /// <returns>Objekt <see cref="Response"/>, kde je uložen stav akce a zpráva.</returns>
        /// <exception cref="CarExpensesException">Při chybě aplikace</exception>
        public Response register(string login, string password, string email, int bornYear, int regionId)
        {
            password = MD5(password);
            Response response = new Response(false, "Registration failed.");

            if (bornYear < (DateTime.Today.Year-130) || bornYear > DateTime.Today.Year)
            {
                return new Response(false,"Born year must be between " + (DateTime.Today.Year - 130) + " and " + DateTime.Today.Year + ".");
            }

            if (CarExpensesApp.validateEmail(email) == false)
            {
                return new Response(false, "Email is not in valid format.");
            }

            try
            {
                User user = new User();
                user.login = login;
                user.password = password;
                user.email = email;
                user.bornYear = bornYear;
                user.regionId = regionId;

                if (userDAO.register(user) == true)
                {
                    response.message = "User " + user.login + " was successfuly registered.";
                    response.success = true;
                }
            }
            catch (CarExpensesDatabaseException ex)
            {
                response.success = false;
                response.message = ex.Message.ToString();
            }
            return response;
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Odhlášení uživatele
 /// </summary>
 /// <returns>Objekt <see cref="Response"/>, kde je uložen stav akce a zpráva.</returns>
 /// <exception cref="CarExpensesException">Při chybě aplikace</exception>
 public Response logout()
 {
     user = null;
     return new Response(true, "You were successfuly logged out.");
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Přihlášení uživatele
        /// </summary>
        /// <param name="login">Přihlašovací jméno uživatele</param>
        /// <param name="password">Heslo uživatele</param>
        /// <returns>Objekt <see cref="UserResponse"/>, kde je uložen stav akce, zpráva a objekt přihlášeného uživatele (při chybě null).</returns>
        /// <exception cref="CarExpensesException">Při chybě aplikace</exception>
        public UserResponse login(string login, string password)
        {
            password = MD5(password);
            UserResponse response = new UserResponse(false, "You are NOT logged in.");
            try
            {
                user = userDAO.login(login, password);
                if (user != null)
                {
                    User responseUser = new User();
                    responseUser.id = user.id;
                    responseUser.login = user.login;
                    responseUser.region = user.region;
                    responseUser.regionId = user.regionId;

                    response.message = "You were successfuly logged in.";
                    response.success = true;
                    response.user = responseUser;
                }
            }
            catch (CarExpensesDatabaseException ex)
            {
                response.success = false;
                response.message = ex.Message.ToString();
            }
            return response;
        }