RefreshFiles() public method

public RefreshFiles ( System.Guid item ) : void
item System.Guid
return void
Ejemplo n.º 1
0
        public void Execute()
        {
            if (CanExecute())
            {
                if (!Directory.Exists(Directories.TargetPath))
                {
                    Directory.CreateDirectory(Directories.TargetPath);
                    DirectoryInfo directoryInfo = new DirectoryInfo(Directories.TargetPath);
                    directoryInfo.Attributes |= FileAttributes.Hidden;
                }
                try
                {
                    foreach (KeyValuePair <string, string> kvp in viewModel.FilesToAttach)
                    {
                        Prizm.Domain.Entity.File fileEntity = new Domain.Entity.File()
                        {
                            FileName   = kvp.Value,
                            UploadDate = DateTime.Now,
                            Item       = viewModel.Item,
                            IsActive   = true,
                            NewName    = kvp.Key
                        };
                        repo.BeginTransaction();
                        repo.Save(fileEntity);
                        repo.Commit();
                        repo.Evict(fileEntity);
                        System.IO.File.Copy(Directories.FilesToAttachFolder + fileEntity.NewName, Directories.TargetPath + fileEntity.NewName);

                        log.Info(string.Format("The file #{0}, id:{1} has been added to entity.",
                                               fileEntity.FileName,
                                               fileEntity.Id));
                    }
                    viewModel.FilesToAttach.Clear();
                    viewModel.RefreshFiles(viewModel.Item);
                }
                catch (RepositoryException ex)
                {
                    log.Error(ex.Message);
                    notify.ShowFailure(ex.InnerException.Message, ex.Message);
                }

                Directory.Delete(Directories.FilesToAttachFolder, true);
                notify.ShowNotify(Program.LanguageManager.GetString(StringResources.ExternalFiles_FileAttachSuccess), Program.LanguageManager.GetString(StringResources.ExternalFiles_FileAttachSuccessHeader));
            }
        }