Prizm.Main.Forms.ExternalFile.ExternalFilesViewModel.RefreshFiles C# (CSharp) Method

RefreshFiles() public method

public RefreshFiles ( System.Guid item ) : void
item System.Guid
return void
        public void RefreshFiles(Guid item)
        {
            if (item != Guid.Empty)
            {
                IList<Prizm.Domain.Entity.File> fileList = new List<Prizm.Domain.Entity.File>();
                try
                {
                    fileList = repos.FileRepo.GetByItem(item);
                }
                catch(RepositoryException ex)
                {
                    log.Warn("ExternalFilesViewModel " + ex.ToString());
                    notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
                }
                

                foreach (var dictItem in this.FilesToAttach)
                {
                    Prizm.Domain.Entity.File file = new Domain.Entity.File() 
                    { 
                        FileName = dictItem.Value,
                        UploadDate = DateTime.Now,
                        NewName = string.Format("{0}{1}", Directories.FilesToAttachFolder, dictItem.Key)
                    };
                    fileList.Add(file);
                }

                if (fileList != null)
                {
                    files = new BindingList<Prizm.Domain.Entity.File>(fileList);
                }
                else
                {
                    log.Warn(string.Format("List of attached files for Entity id:{0} is NULL", item));
                }
            }
            else
            {
                if (files == null)
                {
                    files = new BindingList<Prizm.Domain.Entity.File>();
                }
            }
           
        }

Usage Example

Beispiel #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));
            }
        }