Question: We are developing an RetailPOS .net (windows) application. 

One of the customer asks 'What will happen to current data being processed in the application when a power went off suddenly?', 'Will the application able to recover the unsaved data?'

I am wondering, how this feature can be included in the .net application? 

Can some help me, what needs to be done for this?

Answer: 
You can append the current information being received to the file system. It will be a performance hit, but will allow you to get back to the last item being captured. 

When the application starts detect if there is a pending file, and provide the option to recover. Load the data saved in the file appropriately.

Once you have all the information, when you are doing the process that happens when paying, make sure to record any significant changes in the process atomically. If you are hitting external systems, record when you are initiating the operation and when it comes back right away. In the above there is always a window of time when it can fail, but you want to keep it as short as possible and to have enough information for the recovery processes. Worst case if the system can't automatically recover, you want it to have enough information to determine where in the process it stopped.
What you really want are atomic on disk transactions. There are many ways to perform these, but often times if you are using an existing database product it will be done for you.

If you rolled your own database or file formats, you have some work cut our for you depending on your file format.