Skip to content

S.T.A.R.

Oleg Dutsyak edited this page May 24, 2017 · 4 revisions
  • Situation: Application features.
  • Task: Implement all business application features in a limited time.
  • Action: Trying to implement base CRUD operations and base user inteface.
  • Result: Many features remained unimplemented.

  • Situation: Application GUI.
  • Task: Create simple and user-friendly interface.
  • Action: Used standard Presentation Framework controls.
  • Result: User interface looks simple, old-school and provides necessary features.

  • Situation: Date and time picker.
  • Task: Add control, where administrator can select date and time for creating schedule.
  • Action: Because there is not needed control in WPF base library, it was used DateTimePicker from Extended WPF Toolkit.
  • Result: Administrator can select date and time.

  • Situation: Data consistency.
  • Task: Provide data consistency. Administrator don't be able to delete journey, if there are tickets on it, or delete bus, which is used for trip.
  • Action: Created properties 'HasDependencies' in ViewModels, which returns true if there are releted data to model. If an entity has dependencies, you should first delete related data.
  • Result: Application provides data consistency.

  • Situation: Update DataContext while switching tabs.
  • Task: DataContext for Tab is load during the first opening. So, if you remove entity from one tab, it still remains on the another tab.
  • Action: Used MouseLeftButtonDown event for Labels in Tab's headers. Handlers for this event provides loading DataContext for specified tab during click on it's header.
  • Result: DataContext started correctly updated.

  • Situation: Store admin's password.
  • Task: Create secure storage for administrators passwors, where anyone can view password even if has access to database.
  • Action: Passwords store in SQL Server database table in hashed view. Used SHA1Managed class for hashing passwords, because SHA1 is more secure than MD5.
  • Result: No one can view passwords, even password's owner.

Clone this wiki locally