예제 #1
0
        public static bool Insert(UserInfo paramObject)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var representativeId = paramObject.Representante;

            if (PrimaveraEngine.Engine.Comercial.Vendedores.Existe(representativeId) == false)
            {
                throw new NotFoundException("vendedor", false);
            }

            using (var sqlCommand = new SQLiteCommand(registerUser, PrimaveraEngine.getAuthenticationService()))
            {
                sqlCommand.Parameters.Add(new SQLiteParameter("username", paramObject.Username));
                sqlCommand.Parameters.Add(new SQLiteParameter("password", paramObject.Password));
                sqlCommand.Parameters.Add(new SQLiteParameter("representative", representativeId));
                sqlCommand.ExecuteNonQuery();
            }

            return(true);
        }
        public static Representative Update(string sessionUsername, UserInfo userInfo)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var sqlQuery = new SqlBuilder()
                           .FromTable(tableUsers)
                           .Column(fieldPassword)
                           .Where(fieldUsername, Comparison.Equals, sessionUsername);

            using (var queryResult = PrimaveraEngine.ConsultaSQLite(sqlQuery))
            {
                int    changedFields = 0;
                string queryPassword = "******";

                if (queryResult.Read())
                {
                    var currentPassword = queryResult.GetString(queryResult.GetOrdinal(fieldPassword));

                    if (userInfo.Password.Equals(currentPassword))
                    {
                        return(null);
                    }

                    if (userInfo.Password == null)
                    {
                        queryPassword += "password = :password";
                        changedFields++;
                    }

                    if (userInfo.Representante != null)
                    {
                        if (changedFields > 0)
                        {
                            queryPassword += " AND ";
                        }

                        queryPassword += "representative = :representative";
                        changedFields++;
                    }

                    if (changedFields < 1)
                    {
                        return(null);
                    }

                    queryPassword += "WHERE username = :username";

                    using (var sqlCommand = new SQLiteCommand(queryPassword, PrimaveraEngine.getAuthenticationService()))
                    {
                        sqlCommand.Parameters.Add(new SQLiteParameter(fieldUsername, sessionUsername));

                        if (userInfo.Password != null)
                        {
                            sqlCommand.Parameters.Add(new SQLiteParameter(fieldPassword, userInfo.Password));
                        }

                        if (userInfo.Representante != null)
                        {
                            sqlCommand.Parameters.Add(new SQLiteParameter(fieldRepresentative, userInfo.Representante));
                        }

                        sqlCommand.ExecuteNonQuery();
                    }
                }
                else
                {
                    return(null);
                }
            }

            return(UserIntegration.View(userInfo.Representante));
        }