/// <summary> /// Попытка заполнения объекта данными из SSR DOCS строки /// </summary> /// <param name="docsString">SSR DOCS строка</param> /// <param name="supplier">Поставщик, из которого была получена SSR DOCS строка</param> public static bool TryCreateDocumentInfoDataItem(string docsString, AviaSuppliers supplier, out DocumentInfoDataItem document) { document = null; if (!docsFormatRegex.IsMatch(docsString)) { return(false); } //ибо только Сэйбр на данный момент добавляет в SSR строку статус SSRки var index = supplier == AviaSuppliers.Sabre ? 1 : 0; var docsParts = docsString.Split('/'); document = new DocumentInfoDataItem(); document.Type = (DocTypes)Enum.Parse(typeof(DocTypes), docsParts[index]); document.IssueCountryCode = docsParts[index + 1]; document.Number = docsParts[index + 2]; var elapsedTime = DateTime.Parse(docsParts[index + 6], Locale.UsCulture); if (elapsedTime < DateTime.Now) { elapsedTime = elapsedTime.AddYears(100); } document.ElapsedTime = new DateTimeEx(elapsedTime, Formats.DATE_FORMAT); document.AddedAsDOCS = true; return(true); }
public DocumentInfoDataItem Copy() { var result = new DocumentInfoDataItem(); result.Type = Type; result.Number = Number; result.IssueCountryCode = IssueCountryCode; result.AddedAsDOCS = AddedAsDOCS; result.AddedAsFOID = AddedAsFOID; result.ElapsedTime = ElapsedTime?.Copy(); return(result); }