SITUATION: All repositories used the similar quering logic to database.
TASK: Use class abstraction which implements repeatable code in general.
ACTION: I decided to create SqlCommandWrapper, where repeatable methods are implemented and Parser which convert input data from database to some model.
RESULTS: Convenient and clear repositories using.
Make user interface more convenient
SITUATION: At main form as result at some action should have been created many other forms.For better usebility, they should be created one over others.
TASK: Solve tis problem without creating new obsessive forms.
ACTION: I use such container as FlowLayoutPanel , which contain needed panels ,and swap them using methods SetChildIndex(z-index).
RESULTS: Compacted and functional powerful interface.
Passing hashed passwords
SITUATION: Application works with user account , so the problem of safe storing them at database arised.
TASK: Implement some of encryption algorithms for passwords hashing.
ACTION: I have used SHA256 hashing algorithm.
RESULTS: Passwords are stored at database as hashing strings.
Buying film transaction
SITUATION: There is situation when user buy some film , so the actions of adding new order and user`s balance decrising should have been simultaneous.
TASK: Choose the way of doing these operations synchronously.
ACTION: I create procedure MakeOrder , which using transaction guarantees adding new order and decrising of user balance at one time.
RESULTS: Correct buying operations.
Make application interface more friendly
SITUATION: As I decided to write project as Windows Form addplication, so there was the problem how to change boring design of standard controls.
TASK: Make application interface more friendly without using special designing libraries.
ACTION: I decided, that the most appropriate way to solve this problem without excessive complications was using picture boxes and label instead of standard button and text boxes.