Is there any possible technique to achieve a straight UV unwrap with seams? I have been trying to make it all vertical so it is a lot easier to texture , But in the end result the texture it always rotated randomly.
Hard surfaces are something that Blender's automatic unwraps don't do well sadly, although this can also partly be attributed to your seams. Its hard to tell without a higher quality image, but as the auto-unwrap tries to minimise stretching, it seems that your lack of seams force it to bend disproportionately.
Its hard to suggest where specifically you need to place seams due to the viewport angle of your 3D model, but try placing them around the corners and underneath the mesh so the side-facing areas don't have to bend as much to reduce stretching.
Alternatively, you can use u Unwrap->Project From View on specific areas of the map to get a bend-free UV map. If you select one face on the right side of the model and press Shift+g you can use Select Similar->Normal to select all the other faces that are facing in the same direction as the one you already selected, all faces on the right side should be selected. Now you can use the keyboard number pad buttons to enter the appropriate Ortho view then use Project From View.