/// <summary> /// Удаление подпись документа /// </summary> /// <param name="signId">Идентификатор подписи</param> /// <returns>Результат операции</returns> public bool RemoveSign(int signId) { var sign = _docPage.Doc.DocSigns.First(i => i.Id == signId.ToString()); if (sign == null || sign.Unavailable) { // Подпись недоступна, возможно она уже удалена. _docPage.ShowMessage(_docPage.Resx.GetString("msgDelSignUnavaible")); return(false); } try { if (sign.SignType == 1) { var docTrans = Transaction.GetTransactionsByDocId(_docPage.Doc.DocId); if (docTrans.Count > 0) { Transaction.RemoveTrans(_docPage.Doc.Id); } } DocSign.RemoveSign(sign.Id); _docPage.Doc.GetSignsFromDb(); } catch (Exception e) { Logger.WriteEx(e); _docPage.ShowMessage(e.Message); return(false); } return(true); }
/// <summary> /// Удалить все подписи документа /// </summary> /// <returns></returns> public bool RemoveSignsAll() { _docPage.Doc.GetSignsFromDb(); // кешируются в свойствах объекта var singsSorted = _docPage.Doc.DocSigns.AsEnumerable().OrderByDescending(o => o.Date).ToList(); foreach (var s in singsSorted) { DocSign.RemoveSign(s.Id); } _docPage.Doc.GetSignsFromDb(); if (!_docPage.Doc.Signed) { return(true); } _docPage.ShowMessage(_docPage.Resx.GetString("msgDelSignAll"), _docPage.Resx.GetString("CONFIRM_StdTitle")); return(false); }