public MainWindow(IFileNameChangerService fileNameChangerService)
 {
     _fileNameChangerService = fileNameChangerService;
     InitializeComponent();
     Version.Content = String.Format("UI version: {0}, Service version: {1}", Assembly.GetExecutingAssembly().GetName().Version.ToString(), Assembly.GetAssembly(typeof(IFileNameChangerService)).GetName().Version.ToString());
     ClearLogs();
 }
        private async void Start_ButtonClick(object sender, RoutedEventArgs e)
        {
            try
            {
                ExecutionBar.Value = 0;

                SetEnableToAllControls(false);

                AddLog(String.Format("Start execution time: {0}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")));

                _fileNameChangerService = new FileNameChangerService();

                LogInputs();

                int countofFiles = await GetNumberOfFilesAsync();

                AddLog("Number of files to proceed: " + countofFiles);

                ExecutionBar.Maximum = countofFiles;

                ICollection<IMapEntry> map = await ChangeNamesAsync();

                if (!aborted)
                {
                    SaveMappingFile(map);
                    AddLog("**Application execution finished successfully**");
                }
            }
            catch(Exception ex)
            {
                AddLog("!!EXCEPTION: ");
                AddLog(ex.Message);

                while(ex.InnerException!=null && !String.IsNullOrEmpty(ex.InnerException.Message))
                {
                    AddLog("!INNER EXCEPTION: ");
                    AddLog(ex.Message);
                    ex=ex.InnerException;
                }
            }
            finally
            {
                SaveLogsToFile();

                AddLog(String.Format("Finish execution time: {0}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")) + 
                    Environment.NewLine + Environment.NewLine + "------------------------");
                SetEnableToAllControls(true);
            }
        }