public virtual void DocumentForReviewGroupAdded(Sungero.Workflow.Interfaces.AttachmentAddedEventArgs e) { var document = OfficialDocuments.As(e.Attachment); // Задать тему. using (TenantInfo.Culture.SwitchTo()) _obj.Subject = Docflow.PublicFunctions.Module.TrimSpecialSymbols(DocumentReviewTasks.Resources.Consideration, document.Name); // Задать адресата. if (IncomingDocumentBases.Is(document)) { _obj.Addressee = IncomingDocumentBases.As(document).Addressee; } if (Memos.Is(document)) { _obj.Addressee = Memos.As(document).Addressee; } // Задать срок рассмотрения. var addressee = _obj.Addressee ?? Users.Current; _obj.Deadline = Docflow.PublicFunctions.DocumentKind.GetConsiderationDate(document.DocumentKind, addressee) ?? Calendar.Now.AddWorkingDays(addressee, Functions.Module.Remote.GetDocumentReviewDefaultDays()); if (!_obj.State.IsCopied) { Docflow.PublicFunctions.Module.SynchronizeAddendaAndAttachmentsGroup(_obj.AddendaGroup, _obj.DocumentForReviewGroup.OfficialDocuments.FirstOrDefault()); } Docflow.PublicFunctions.OfficialDocument.DocumentAttachedInMainGroup(document, _obj); // Добавить вложения. Docflow.PublicFunctions.OfficialDocument.AddRelatedDocumentsToAttachmentGroup(document, _obj.OtherGroup); }
/// <summary> /// Проверить адресата. /// </summary> /// <param name="document">Документ.</param> /// <param name="task">Задача на согласование.</param> /// <returns>True, если адресат совпадает.</returns> private Structures.ConditionBase.ConditionResult CheckAddressee(IOfficialDocument document, IApprovalTask task) { if (Memos.Is(document)) { var addressee = Memos.As(document).Addressee; if (addressee != null) { return(Structures.ConditionBase.ConditionResult.Create(_obj.Addressees.Any(c => Equals(c.Addressee, addressee)), string.Empty)); } else { return(Structures.ConditionBase.ConditionResult.Create(null, Conditions.Resources.MemoAddresseeIsEmpty)); } } return(Structures.ConditionBase.ConditionResult.Create(null, Conditions.Resources.CheckAddresseePossibleOnlyToMemo)); }