Prizm.Main.Forms.PipeMill.Heat.SaveHeatCommand.Execute C# (CSharp) Method

Execute() private method

private Execute ( ) : void
return void
        public void Execute()
        {
            var heat = viewModel.Heat;
            try
            {
                heat.Number = heat.Number.ToUpper();

                repo.BeginTransaction();
                repo.HeatRepo.SaveOrUpdate(heat);
                var filesViewModel = viewModel.FilesFormViewModel;

                //saving attached existingDocuments
                bool fileCopySuccess = true;
                if (null != filesViewModel)
                {
                    filesViewModel.FileRepo = repo.FileRepo;
                    viewModel.FilesFormViewModel.Item = viewModel.Heat.Id;
                    if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Heat))
                    {
                        fileCopySuccess = false;
                        repo.Rollback();
                    }
                }

                if (fileCopySuccess)
                {
                    repo.Commit();
                }

                repo.HeatRepo.Evict(viewModel.Heat);

                if (fileCopySuccess)
                {
                    if (null != filesViewModel)
                    {
                        filesViewModel.DetachFileEntities();
                    }
                }
                else
                {
                    notify.ShowError(Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied),
                        Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied_Header));
                    log.Info(string.Format("File for entity #{0}, id:{1} hasn't been saved", viewModel.Heat.Number,
                        viewModel.Heat.Id));
                }

                repo.HeatRepo.Evict(heat);

                log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.",
                    viewModel.Heat.Number,
                    viewModel.Heat.Id));
            }
            catch (RepositoryException ex)
            {
                log.Error(ex.Message);
            }
        }