public DocumentAttachmentsControl(Document document) { InitializeComponent(); mDocument = document; CompositionInitializer.SatisfyImports(this); mViewModel = new DocumentAttachmentsViewModel(document) { View = this }; mViewModel.UploadComplete += () => { }; mViewModel.Loaded += (s1) => { Utils.ResetOriginalValues(AttachedFilesGridView); Utils.SetUpChangeEvents(AttachedFilesGridView, EventAggregator, document); DataContext = mViewModel; }; mViewModel.ErrorOccurred += (message) => { List<string> errors = new List<string>(); errors.Add(message); this.ValidationPopup.Show(Utils.BuildValidationResultFromServerErrors("", errors)); }; mViewModel.CollectionChanged += (count) => { OnCollectionChanged(count); }; }
/// <summary> /// WE ARE ADDING A NEW DOC VERSION /// </summary> /// <param name="document"> The document. </param> public AddDocumentVersionModel(Document document, AddEditDocumentVersionDialog view) { DialogView = view; ProgressBarView = view as IProgressBarView; mDocument = document; mDocumentId = document.Id; mCurrentEditMode = EditMode.Add; mDocumentVersion = new DocumentVersion { DocumentId = document.Id }; mDocumentVersion.Date = DateTime.Now; OkButtonCommand = new DelegateCommand<object>(OkButtonHandler, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, CanExecuteOkButtonHandler); OpenFileDialogCommand = new DelegateCommand<object>(OpenFileDialogButtonHander, CanExecuteOkButtonHandler); mLatestVersion = (from x in document.DocumentVersions orderby x.Version descending select x).Take(1).FirstOrDefault(); if (mLatestVersion != null) { Version = mLatestVersion.Version; AutoIncrementVersion = false; RaisePropertyChanged("AutoIncrementVersion"); } if (DataModelLoaded != null) { DataModelLoaded(); } }
public AddEditDocumentVersionDialog(Document document, DocumentVersion documentVersion) { // Required to initialize variables InitializeComponent(); Title = "Edit Document Version"; mInEditMode = true; mModel = new AddDocumentVersionModel(document, documentVersion); mModel.DialogView = this; DataContext = mModel; mModel.OKButtonClicked += ModelOkButtonClicked; mModel.CancelButtonClicked += ModelCancelButtonClicked; mModel.TransferCompleted += () => { //busyIndicator.IsBusy = false; this.Close(); }; mModel.ErrorOccurred += (message) => { //busyIndicator.IsBusy = false; List<string> errors = new List<string>(); errors.Add(message); this.ValidationPopup.Show(Utils.BuildValidationResultFromServerErrors("", errors)); }; }
public DocumentRelatedDocumentsView(Document document) { InitializeComponent(); mViewModel = new DocumentRelatedDocumentsViewModel(document); mViewModel.CollectionChanged += count => OnCollectionChanged(count); mViewModel.View = this; mViewModel.Loaded += ViewModelLoaded; }
public AddEditDocumentModel() { Document = new Document(); Document.IsActive = true; //default LoadModel(); OkButtonCommand = new DelegateCommand<object>(OkButtonHander, CanModify); CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, (x) => true); }
public DocumentVersionsViewModel(Document document) { CompositionInitializer.SatisfyImports(this); mDocument = document; SelectDocumentVersionButton = new DelegateCommand<object>(SelectButtonHandler, CanModifyHandler); AddButton = new DelegateCommand<object>(AddButtonHandler, CanAddHandler); EditButton = new DelegateCommand<object>(EditButtonHandler, CanModifyHandler); DeleteButton = new DelegateCommand<object>(DeleteButtonHandler, CanDeleteHandler); }
public DocumentLocationView(Document document) { if (DesignerProperties.IsInDesignTool) { return; } InitializeComponent(); DocumentLocationsViewModel model = new DocumentLocationsViewModel(document); model.CollectionChanged += (count) => OnCollectionChanged(count); DataContext = model; model.View = this; }
public DocumentRelatedIssuesViewModel(Document document) { CompositionInitializer.SatisfyImports(this); mDocument = document; LoadData(); CreateCommand = new DelegateCommand<object>(AddRelatedIssueHandler, CanCreate); LinkCommand = new DelegateCommand<object>(LinkIssueButtonHandler, CanLink); ViewCommand = new DelegateCommand<object>(OpenIssueButtonHandler, CanView); }
public DocumentLocationsViewModel(Document document) { CompositionInitializer.SatisfyImports(this); mDocument = document; CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetDocumentLocationsAsync(document.Id); AddCommand = new DelegateCommand<object>(AddButtonHandler, CanAdd); DeleteCommand = new DelegateCommand<object>(DeleteButtonHandler, CanDelete); }
public DocumentRelatedIssuesControl(Document instrument) { if (DesignerProperties.IsInDesignTool) { return; } InitializeComponent(); DocumentRelatedIssuesViewModel model = new DocumentRelatedIssuesViewModel(instrument); model.CollectionChanged += (count) => { OnCollectionChanged(count); }; model.View = this; DataContext = model; }
public AddEditDocumentVersionDialog(Document document) { // Required to initialize variables InitializeComponent(); mModel = new AddDocumentVersionModel(document, this); DataContext = mModel; mModel.OKButtonClicked += ModelOkButtonClicked; mModel.TransferCompleted += Close; mModel.ErrorOccurred += (message) => { //busyIndicator.IsBusy = false; List<string> errors = new List<string>(); errors.Add(message); ValidationPopup.Show(Utils.BuildValidationResultFromServerErrors("", errors)); }; }
public DocumentViewModel(Document document) { if (document == null) throw new ArgumentNullException("document"); CompositionInitializer.SatisfyImports(this); mDocument = document; SaveButtonCommand = new DelegateCommand<object>(SaveButtonHandler, CanExecuteOkButtonHandler); RemoveButtonCommand = new DelegateCommand<object>(RemoveButtonHandler, CanExecuteDeleteButtonHandler); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetDocumentTypesCompleted += cmsWebServiceClient_GetDocumentTypesCompleted; cmsWebServiceClient.GetDocumentTypesAsync(); Areas = new ObservableCollection<Area>(from x in CMS.Cache.Areas where x.IsActive && x.SiteId == CMS.AppSetting.DefaultSiteId select x); cmsWebServiceClient.GetDocumentAuthorsCompleted += cmsWebServiceClient_GetDocumentAuthorsCompleted; cmsWebServiceClient.GetDocumentAuthorsAsync(); cmsWebServiceClient.GetDocumentDisciplinesCompleted += (s, e) => { DocumentDisciplines = new ObservableCollection<DocumentDiscipline>(e.Result); mDisciplinesLoaded = true; OnDataSourceLoaded(); }; cmsWebServiceClient.GetDocumentDisciplinesAsync(); cmsWebServiceClient.GetDocumentPurchaseOrdersCompleted += (s, e) => { DocumentPurchaseOrders = new ObservableCollection<DocumentPurchaseOrder>(e.Result); DocumentPurchaseOrders.Insert(0, new DocumentPurchaseOrder { Name = BLANK, Id = -1 }); mPurchaseOrdersLoaded = true; OnDataSourceLoaded(); }; cmsWebServiceClient.GetDocumentPurchaseOrdersAsync(); if (mDocument.DocumentVersions != null && mDocument.DocumentVersions.Count > 0) { mSelectedVersion = Document.DocumentVersions[0]; } }
public DocumentEquipmentsViewModel(Document document) { CompositionInitializer.SatisfyImports(this); mDocument = document; CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetDocumentEquipmentsCompleted += (s1, e1) => { mDocument.ModifiedObjects.EquipmentsModified = true; //mark as modified if opened. cmsWebServiceClient.GetEquipmentTypesCompleted += (sender2, e2) => { mEquipmentTypes = e2.Result; DatabaseLoader.GetBuildEquipmentModelList(mEquipmentTypes, e1.Result).ContinueWith(getBuildEquipmentModelListTask => { CMS.UiFactory.StartNew(() => { ModelEquipments = new ObservableCollection<CommonDocumentEquipmentModel>(getBuildEquipmentModelListTask.Result); RaisePropertyChanged("ModelEquipments"); mDocument.DocumentEquipments = DocumentEquipments; TryFireLoadedEvent(); }); }); }; cmsWebServiceClient.GetEquipmentTypesAsync(); }; cmsWebServiceClient.GetDocumentEquipmentsAsync(document.Id); LinkCommand = new DelegateCommand<object>(LinkButtonHandler, CanLinkHandler); DeleteCommand = new DelegateCommand<object>(DeleteButtonHandler, CanDelete); OpenEquipmentCommand = new DelegateCommand<object>(OpenEquipmentHandler, CanOpenEquipment); }
public DocumentRelatedDocumentsViewModel(Document document) { CompositionInitializer.SatisfyImports(this); mDocument = document; CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetDocumentRelatedDocumentsCompleted += (sender, args) => { mDocument.DocumentDocuments = args.Result; RaiseLoaded(); mDictionary = Utils.BuildDictionaryForCollection(mDocument.DocumentDocuments.Select(x => x.DocumentId).ToList()); }; cmsWebServiceClient.GetDocumentRelatedDocumentsAsync(mDocument.Id); AddCommand = new DelegateCommand<object>(AddButtonHandler, CanAdd); DeleteCommand = new DelegateCommand<object>(DeleteButtonHandler, CanDelete); OpenCommand = new DelegateCommand<object>(OpenDocumentHandler, CanView); }
private void InsertData(IList<DocumentDataAdapter> importData) { if (importData.Count == 0) { RaiseMessage(CommonUtils.MessageType.Warning, NoDataFoundForWorkSheetMessage()); return; } for (int i = 0; i < importData.Count; i++) { DocumentDataAdapter adapter = importData[i]; Document document = Cee.Documents.FirstOrDefault(x => string.Compare(x.Name, adapter.Name, true, CultureInfo.CurrentCulture) == 0); if (MetaData.ImportType == CommonUtils.ImportType.CreateDocument) { if (document != null) { RaiseMessage(CommonUtils.MessageType.Error, string.Format(BuildDuplicateNameExistsInDbMessage(adapter.Name, adapter.RowNumber))); continue; } document = new Document(); } if (!adapter.IsValid()) { foreach (string message in adapter.ErrorMessages) { RaiseMessage(CommonUtils.MessageType.Error, message); } continue; } if (!adapter.IsActive.HasValue) { //assume true document.IsActive = true; } else { document.IsActive = adapter.IsActive.Value; } if (GetDocumentType(adapter.DocumentType, document, i)) continue; if (GetAuthor(adapter.Author, document, i)) continue; //AREA int areaId; if (base.GetAreaFailed(adapter.Area, i, out areaId, false)) { continue; } if (areaId > 0) { document.AreaId = areaId; } if (GetDiscipline(adapter.DisciplineName, document, i)) { continue; } if (GetPurchaseOrder(adapter.PurchaseOrderName, document, i)) { continue; } document.Description = adapter.Description.ChangeNullToEmptyString(); document.Name = adapter.Name; document.Notes = adapter.Notes.ChangeNullToEmptyString(); document.VendorReference = adapter.VendorReference.ChangeNullToEmptyString(); document.Originator = adapter.Originator.ChangeNullToEmptyString(); document.MaintSystemId = adapter.MaintSystemId.ChangeNullToEmptyString(); if (MetaData.ImportType == CommonUtils.ImportType.CreateDocument) { Document savedDup = mSavedResults.FirstOrDefault(x => string.Compare(x.Name, adapter.Name, true, CultureInfo.CurrentCulture) == 0); if (savedDup != null) { RaiseMessage(CommonUtils.MessageType.Error, string.Format(BuildDuplicateNameExistsInExcelMessage(adapter.Name, adapter.RowNumber))); continue; } AddRevisionHistory(document); Cee.Documents.Add(document); } mSavedResults.Add(document); } if (mSavedResults.Count == 0) { RaiseMessage(CommonUtils.MessageType.Warning, string.Format("No Documents were processed from worksheet {0}.", WorkSheetName)); } else { //SAVE Cee.SaveChanges(); } }
private bool GetPurchaseOrder(string orderName, Document document, int i) { if (string.IsNullOrEmpty(orderName)) { return false; } if (orderName.ToLower() == "null") { document.PurchaseOrderId = null; return true; } DocumentPurchaseOrder purchaseOrder = (from x in Cee.DocumentPurchaseOrders where x.Name.Equals(orderName, StringComparison.CurrentCultureIgnoreCase) select x).FirstOrDefault(); if (purchaseOrder != null) { document.PurchaseOrderId = purchaseOrder.Id; } else { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}': Could not match orderName '{2}'. Skipping this row.", WorkSheetName, i, orderName)); return true; } return false; }
private bool GetDocumentType(string typeName, Document document, int i) { if (string.IsNullOrEmpty(typeName)) { if (MetaData.ImportType == CommonUtils.ImportType.CreateDocument) { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}': document Type is empty. Skipping this row.", WorkSheetName, i)); return true; } return false; } DocumentType documentType = (from x in mExistingDocumentTypes where string.Compare(x.Name, typeName, true, CultureInfo.CurrentCulture) == 0 select x).FirstOrDefault(); if (documentType == null) { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}': Could not match document Type '{2}'. Skipping this row.", WorkSheetName, i, typeName)); return true; } document.DocumentTypeId = documentType.Id; return false; }
private bool GetDiscipline(string disciplineName, Document document, int i) { if (string.IsNullOrEmpty(disciplineName)) { return false; } if (disciplineName.ToLower() == "null") { document.DisciplineId = null; return false; } DocumentDiscipline discipline = (from x in mExistingDisciplines where string.Compare(x.Name, disciplineName, true, CultureInfo.CurrentCulture) == 0 select x).FirstOrDefault(); if (discipline != null) { document.DisciplineId = discipline.Id; } else { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}': Could not match discipline Name '{2}'. Skipping this row.", WorkSheetName, i, disciplineName)); return true; } return false; }
private void AddRevisionHistory(Document document) { const decimal incrediment = 0.001m; var revision = new decimal(1.000); using (var context = new CmsEntities(5000)) { List<decimal> revisions = (from x in context.DocumentRevisionHistories where x.DocumentId == document.Id orderby x.Revision descending select x.Revision).ToList(); if (revisions.Count > 0) { revision = revisions[0] + incrediment; } var rvh = new DocumentRevisionHistory { Date = DateTime.Now, UserId = MetaData.UserId, Description = BuildRevisionHistoryInsertComment(MetaData.RevisionHistoryComment), Revision = revision, IsSystemMessage = true }; document.DocumentRevisionHistories.Add(rvh); } }
public void ImportDocuments() { mForm.AddMessage(MessageType.Info, "-------------------- Importing Documents --------------------"); List<Document> documents = (from x in mOldIssuesDataContext.Documents select x).ToList(); var authors = ( from x in mCee.DocumentAuthors select x).ToList(); foreach (Document document in documents) { if (!String.IsNullOrEmpty(document.Name)) { int areaId = Int32.Parse(document.Area); var area = (from x in mCee.Areas where x.AreaNumber == areaId select x).FirstOrDefault(); if (area == null) { area = new Area {Name = document.Area, AreaNumber = areaId, SiteId = 1}; mCee.Areas.AddObject(area); mCee.SaveChanges(); } var documentExist = (from x in mCee.Documents where x.Name == document.Name select x).FirstOrDefault(); if (documentExist == null) { CmsEquipmentDatabase.CmsWebService.Document newDocument = new CmsEquipmentDatabase.CmsWebService.Document() { Name = document.Name, Description = document.Description, DocumentTypeId = (from x in mCee.DocumentTypes where x.Name == document.DocumentType.Name select x).FirstOrDefault().Id, AreaId = area.Id, DocumentAuthorId = (from x in authors where x.Name == document.Author select x.Id).FirstOrDefault() }; string message = String.Format("Adding Document '{0}'", newDocument.Name); mForm.AddMessage(MessageType.Info, message); mCee.Documents.AddObject(newDocument); mCee.SaveChanges(); } else { documentExist.AreaId = area.Id; string message = String.Format("Document '{0}' already exist, skipping", document.Name); mForm.AddMessage(MessageType.Warning, message); } } else { string message = String.Format("Document name '{0}' not valid, skipping", document.Name); mForm.AddMessage(MessageType.Warning, message); } } mCee.SaveChanges(); }
private static void BuildRevisonHistoryForMadeInactive(Document document, CmsEntities cee, int userId) { DocumentRevisionHistory rh = new DocumentRevisionHistory(); rh.Description = string.Format("Document was made inactive : {0}", document.Name); rh.DocumentId = document.Id; rh.Date = DateTime.Now; rh.UserId = userId; rh.IsSystemMessage = true; var latestPrh = (from x in cee.DocumentRevisionHistories where x.DocumentId == document.Id select x.Revision).ToList(); if (latestPrh.Count > 0) { rh.Revision = latestPrh.AsQueryable().Max() + VERSIONINCREMENT; } else { rh.Revision = VERSIONINCREMENT; } cee.DocumentRevisionHistories.Add(rh); }
private void SaveDocumentInternal(int userId, Document document, CmsEntities cee) { //detach doc type int documentTypeId = document.DocumentTypeId; document.DocumentType = null; document.DocumentTypeId = documentTypeId; //detach doc author int documentAuthorId = document.DocumentAuthorId; document.DocumentAuthor = null; document.DocumentAuthorId = documentAuthorId; if (document.DisciplineId.HasValue) { //detach doc discipline int disciplineId = document.DisciplineId.Value; document.DocumentDiscipline = null; document.DisciplineId = disciplineId; } if (document.PurchaseOrderId.HasValue && document.PurchaseOrderId < 0) { document.DocumentPurchaseOrder = null; document.PurchaseOrderId = null; } if (document.PurchaseOrderId.HasValue && document.PurchaseOrderId > 0) { //detach doc purchaseOrder int documentPurchaseOrderId = document.PurchaseOrderId.Value; document.DocumentPurchaseOrder = null; document.PurchaseOrderId = documentPurchaseOrderId; } //detach doc Area //JB 21 DEC 2011 int areaId = document.AreaId; document.Area = null; document.AreaId = areaId; Document originalObject = (from x in cee.Documents where x.Id == document.Id select x).FirstOrDefault(); if (originalObject == null) { //Add new cee.Documents.Add(document); } else { originalObject.Name = document.Name; originalObject.AreaId = document.AreaId; originalObject.Description = document.Description; originalObject.DocumentTypeId = documentTypeId; originalObject.DocumentAuthorId = documentAuthorId; originalObject.VendorReference = document.VendorReference; originalObject.DisciplineId = document.DisciplineId; originalObject.PurchaseOrderId = document.PurchaseOrderId; originalObject.IsActive = document.IsActive; originalObject.Originator = document.Originator; originalObject.MaintSystemId = document.MaintSystemId; if (!document.IsActive) { BuildRevisonHistoryForMadeInactive(document, cee, userId); } originalObject.Notes = document.Notes; } }
private void SaveDocumentRelatedDocuments(Document document, CmsEntities cee) { if (document.DocumentDocuments == null) { return; } //Delete originals List<DocumentEquipment> originals = (from x in cee.DocumentEquipments where x.EquipmentId == document.Id && x.EquipmentTypeId == (int)CommonUtils.EquipmentTypeCode.DOC select x).ToList(); originals.ForEach(x => cee.DocumentEquipments.Remove(x)); foreach (DocumentEquipment documentEquipment in document.DocumentDocuments) { DocumentEquipment newObject = new DocumentEquipment { EquipmentId = document.Id, DocumentId = documentEquipment.DocumentId, EquipmentTypeId = (int)CommonUtils.EquipmentTypeCode.DOC }; cee.DocumentEquipments.Add(newObject); DocumentEquipment reverseNewObject = new DocumentEquipment { EquipmentId = documentEquipment.DocumentId, DocumentId = document.Id, EquipmentTypeId = (int)CommonUtils.EquipmentTypeCode.DOC }; cee.DocumentEquipments.Add(reverseNewObject); } }
private DocumentRevisionHistory BuildRevisionHistory(Document document, decimal version, CmsEntities context) { const decimal incrediment = 0.001m; decimal revision = new decimal(1.000); List<decimal> revisions = (from x in context.DocumentRevisionHistories where x.DocumentId == document.Id orderby x.Revision descending select x.Revision).ToList(); if (revisions.Count > 0) { revision = revisions[0] + incrediment; } DocumentRevisionHistory rvh = new DocumentRevisionHistory { Date = DateTime.Now, DocumentId = document.Id, UserId = MetaData.UserId, Description = BuildRevisionHistoryInsertVersionComment(MetaData.RevisionHistoryComment, version), Revision = revision, IsSystemMessage = true }; return rvh; }
/// <summary> /// WE ARE EDITING AN EXISTING DOC VERSION /// </summary> /// <param name="document"> The document. </param> /// <param name="documentVersion"> The document version. </param> public AddDocumentVersionModel(Document document, DocumentVersion documentVersion) { mDocument = document; mDocumentId = documentVersion.DocumentId; mCurrentEditMode = EditMode.Edit; mDocumentVersion = documentVersion; mOriginalVersionNumber = documentVersion.Version; mLatestVersion = (from x in document.DocumentVersions orderby x.Version descending select x).Take(1).FirstOrDefault(); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetDocumentVersionCompleted += GetDocumentVersionCompleted; cmsWebServiceClient.GetDocumentVersionAsync(documentVersion.Id); OkButtonCommand = new DelegateCommand<object>(OkButtonHandler, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, CanExecuteOkButtonHandler); OpenFileDialogCommand = new DelegateCommand<object>(OpenFileDialogButtonHander, CanExecuteOkButtonHandler); if (DataModelLoaded != null) { DataModelLoaded(); } }
public DbOperationResult<QuickDocument> SaveDocument(Document document, int userId) { try { QuickDocument quickDocument; using (CmsEntities cee = new CmsEntities()) { //Save only changed objects if (document.ModifiedObjects != null) { if (document.ModifiedObjects.RelatedIssuesModified) { SaveDocumentRelatedIssues(document, cee); } if (document.ModifiedObjects.DocumentAttachementsModified) { SaveDocumentAttachments(document.DocumentAttachments); } if (document.ModifiedObjects.RelatedDocumentsModified) { SaveDocumentRelatedDocuments(document, cee); } } SaveDocumentInternal(userId, document, cee); SaveDocumentEquipments(document, cee); string docLocations = SaveDocumentLocations(document, cee); cee.SaveChanges(); quickDocument = (from x in cee.Documents where x.Id == document.Id select new QuickDocument { Id = x.Id, Name = x.Name, Description = x.Description, IsActive = x.IsActive }).FirstOrDefault(); //quickDocument = (from x in cee.Documents // where x.Id == document.Id // select new QuickDocument // { // Id = x.Id, // Name = x.Name, // Description = x.Description, // CheckedOutStatus = x.DocumentVersions.Any() == false // ? "NoVersions" // : x.DocumentVersions.All(p => p.CheckedOut) // ? "Checked Out" // : x.DocumentVersions.All(p => p.CheckedOut == false) ? "Checked In" : "Mixed", // DocumentType = x.DocumentType.Name, // FormattedDocumentType = x.DocumentType.Name + " (" + x.DocumentType.Description + ")", // FormattedDocumentDiscipline = x.DisciplineId.HasValue ? x.DocumentDiscipline.Name + " (" + x.DocumentDiscipline.Description + ")" : // x.DocumentDiscipline.Name, // DocumentTypeCode = x.DocumentType.Code, // Area = x.Area.Name, // Author = x.DocumentAuthor.Name, // VendorRef = x.VendorReference, // MaintSystemId = x.MaintSystemId, // Originator = x.Originator, // Notes = x.Notes, // DocumentDiscipline = x.DisciplineId.HasValue ? x.DocumentDiscipline.Name : "", // DocumentPurchaseOrder = x.PurchaseOrderId.HasValue ? x.DocumentPurchaseOrder.Name : "", // VersionFilter = x.DocumentVersions.Any() // ? x.DocumentVersions.Any(n => !n.Native) == false // ? (int)CommonUtils.DocumentVersionFilter.Latest //was All // : x.DocumentVersions.Max(v => v.Version) > 0 // ? x.DocumentVersions.Max(v => v.Version) - Math.Floor(x.DocumentVersions.Max(v => v.Version)) > 0 // ? (int)CommonUtils.DocumentVersionFilter.RequireDrafting // : (int)CommonUtils.DocumentVersionFilter.All // : x.DocumentVersions.Max(v => v.Version) - Math.Ceiling(x.DocumentVersions.Max(v => v.Version)) > 0 // ? (int)CommonUtils.DocumentVersionFilter.RequireDrafting // : (int)CommonUtils.DocumentVersionFilter.All // : (int)CommonUtils.DocumentVersionFilter.NoVersions, // NoNativeExist = x.DocumentVersions.Any() && x.DocumentVersions.All(v => v.Native == false), // NoPdfExist = x.DocumentVersions.Any() && x.DocumentVersions.All(v => v.Native), // DocumentLocations = docLocations, // IsActive = x.IsActive // }).FirstOrDefault(); //RequireDrafting is a Document which latest DocumentVersion version number is not 0 and it is not native } return new DbOperationResult<QuickDocument> { EntityResult = quickDocument }; } catch (Exception ex) { log.Error("", ex, ex.ToString()); return BuildOperationalErrorResults<QuickDocument>(ex); } }
public DocumentPanel(QuickDocument document) { InitializeComponent(); TabChanges = new List<string>(); CompositionInitializer.SatisfyImports(this); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetDocumentCompleted += (s, e) => { mDocument = e.Result; mDocumentViewModel = new DocumentViewModel(mDocument); mDocumentViewModel.View = this; mDocumentViewModel.DataSourceLoaded += (s1) => { DataContext = mDocumentViewModel; LoadedDocument = mDocument; //This will hook up change events on all controls Utils.SetUpChangeEvents(Content, EventAggregator, mDocument); DocumentControl.LoadedDocument = mDocument; //Versions mDocumentVersionsControl = new DocumentVersionsControl(mDocument, this); mDocumentVersionsControl.CollectionChanged += (count) => { mDocument.DocumentRelatedItemsCount.Versions = count; SetTabHeadersText(); }; VersionsTab.Content = mDocumentVersionsControl; //Issues mDocumentRelatedIssuesControl = new DocumentRelatedIssuesControl(mDocument); mDocumentRelatedIssuesControl.CollectionChanged += (count) => { mDocument.DocumentRelatedItemsCount.Issues = count; SetTabHeadersText(); }; IssuesTab.Content = mDocumentRelatedIssuesControl; if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.ElectricalTab.CanView || CMS.EffectivePrivileges.MechanicalTab.CanView || CMS.EffectivePrivileges.InstrumentTab.CanView || CMS.EffectivePrivileges.MobilePlantTab.CanView || CMS.EffectivePrivileges.PipeTab.CanView ) { DocumentEquipmentsTab.Visibility = Visibility.Visible; //DocumentEquipments DocumentEquipmentsView documentEquipmentsView = new DocumentEquipmentsView(mDocument); documentEquipmentsView.CollectionChanged += (count) => { mDocument.DocumentRelatedItemsCount.RelatedEquipments = count; SetTabHeadersText(); }; DocumentEquipmentsTab.Content = documentEquipmentsView; } //HardCopyLocations DocumentLocationView documentLocationView = new DocumentLocationView(mDocument); documentLocationView.CollectionChanged += (count) => { mDocument.DocumentRelatedItemsCount.HardCopyLocations = count; SetTabHeadersText(); }; DocumentLocationsTab.Content = documentLocationView; //Document Related Documents DocumentRelatedDocumentsView documentRelatedDocumentsView = new DocumentRelatedDocumentsView(mDocument); documentRelatedDocumentsView.CollectionChanged += (count) => { mDocument.DocumentRelatedItemsCount.RelatedDocuments = count; SetTabHeadersText(); }; RoutedEventHandler docsloaded = null; docsloaded += (s6, e6) => { //This will hook up change events on all controls Utils.SetUpChangeEvents((UIElement)RelatedDocumentsTab.Content, EventAggregator, mDocument); RelatedDocumentsTab.Loaded -= docsloaded; }; RelatedDocumentsTab.Content = documentRelatedDocumentsView; RelatedDocumentsTab.Loaded += docsloaded; //Attachments DocumentAttachmentsControl documentAttachmentsControl = new DocumentAttachmentsControl(mDocument); documentAttachmentsControl.CollectionChanged += (count) => { mDocument.DocumentRelatedItemsCount.Attachments = count; SetTabHeadersText(); }; AttachmentsTab.Content = documentAttachmentsControl; //GET Tab Counts -------------------------------------------------- cmsWebServiceClient.GetDocumentRelatedItemsCountCompleted += (s2, e2) => { mDocument.DocumentRelatedItemsCount = e2.Result; SetTabHeadersText(); }; cmsWebServiceClient.GetDocumentRelatedItemsCountAsync(mDocument.Id); }; }; cmsWebServiceClient.GetDocumentAsync(document.Id); //Load Revision History RevisionHistory.LoadRevisionHistory(CommonUtils.TabId.Documents, document.Id); }
// private List<QuickDocument> GetDocuments(string documentCodeName) // { // using (CmsEntities cee = new CmsEntities()) // { // var documentTypeId = (from x in cee.DocumentTypes where x.Code.ToLower() == documentCodeName.ToLower().Trim() select x.Id).FirstOrDefault(); //#if DEBUG // Stopwatch sw = new Stopwatch(); // sw.Start(); //#endif // var documents = (from x in cee.Documents // where x.DocumentTypeId == documentTypeId // orderby x.Name // select new QuickDocument // { // Id = x.Id, // Name = x.Name, // Description = x.Description // }).ToList(); //#if DEBUG // sw.Stop(); //#endif // return documents; // } // } private void SaveDocumentRelatedIssues(Document document, CmsEntities cee) { //Delete IssueRelatedDocuments var originalIssueRelatedDocuments = (from x in cee.IssueRelatedDocuments where x.DocumentId == document.Id select x).ToList(); originalIssueRelatedDocuments.ForEach(x => cee.IssueRelatedDocuments.Remove(x)); //Save IssueRelatedDocuments foreach (var issueRelatedDocument in document.IssueRelatedDocuments.ToList()) { issueRelatedDocument.Issue = null; issueRelatedDocument.Document = null; if (issueRelatedDocument.Documented) { if (issueRelatedDocument.DocumentedByUser != null) { int documentedById = issueRelatedDocument.DocumentedByUser.Id; issueRelatedDocument.DocumentedByUser = null; issueRelatedDocument.DocumentedById = documentedById; } } else { issueRelatedDocument.DocumentedByUser = null; } cee.IssueRelatedDocuments.Add(issueRelatedDocument); } }