public static IQueryable <IIncomingLetter> GetDuplicates(IIncomingLetter letter, Docflow.IDocumentKind documentKind, Company.IBusinessUnit businessUnit, string inNumber, DateTime?dated, Parties.ICounterparty correspondent) { return(IncomingLetters.GetAll() .Where(l => documentKind != null && Equals(documentKind, l.DocumentKind)) .Where(l => dated.HasValue && dated == l.Dated) .Where(l => businessUnit != null && Equals(businessUnit, l.BusinessUnit)) .Where(l => !string.IsNullOrWhiteSpace(inNumber) && inNumber == l.InNumber) .Where(l => correspondent != null && Equals(correspondent, l.Correspondent)) .Where(l => !Equals(letter, l))); }
/// <summary> /// Проверить письмо на дубликаты. /// </summary> /// <param name="letter">Входящее письмо.</param> /// <param name="documentKind">Вид документа.</param> /// <param name="businessUnit">Наша организация.</param> /// <param name="correspondentNumber">Номер корреспондента.</param> /// <param name="dated">Дата письма.</param> /// <param name="correspondent">Корреспондент.</param> /// <returns>True, если дубликаты имеются, иначе - false.</returns> public static bool HaveDuplicates(IIncomingLetter letter, Sungero.Docflow.IDocumentKind documentKind, Company.IBusinessUnit businessUnit, string correspondentNumber, DateTime?dated, Parties.ICounterparty correspondent) { if (documentKind == null || businessUnit == null || string.IsNullOrEmpty(correspondentNumber) || !dated.HasValue || correspondent == null) { return(false); } return(Functions.IncomingLetter.Remote.GetDuplicates(letter, documentKind, businessUnit, correspondentNumber, dated, correspondent).Any()); }