private Resume CreateResume(Candidate candidate) { var resume = new Resume(); // Set last two job details. var currentJob = new Job { Dates = new PartialDateRange(PartialDate.Parse("January 2005")), Title = "Coder", Description = "description", Company = "LinkMe" }; var previousJob = new Job { Dates = new PartialDateRange(PartialDate.Parse("January 2004"), PartialDate.Parse("January 2005")), Title = "Developer", Description = "old description", Company = "OC" }; resume.Jobs = new List <Job> { currentJob, previousJob }; // Set education section. var school = new School { CompletionDate = new PartialCompletionDate(PartialDate.Parse("January 2004")), Institution = "LinkMe Mental Asylum", Degree = "Bachelor of Boredom", Major = "Meetings", Description = "description", City = "Melbourne", Country = "Australia" }; resume.Schools = new List <School> { school }; // Affiliations. resume.Affiliations = "What's this?"; resume.Interests = Interests; _candidateResumesCommand.CreateResume(candidate, resume); return(resume); }
private static string convertToXmlString(object value) { return(value switch { bool bl => XmlConvert.ToString(bl), Byte by => XmlConvert.ToString(by), // Not used in FHIR serialization Char cr => XmlConvert.ToString(cr), // Not used in FHIR serialization DateTime dt => XmlConvert.ToString(dt, FMT_FULL), // Obsolete: use DateTimeOffset instead!! decimal dec => XmlConvert.ToString(dec), Double dbl => XmlConvert.ToString(dbl), Int16 i16 => XmlConvert.ToString(i16), Int32 i32 => XmlConvert.ToString(i32), Int64 i64 => XmlConvert.ToString(i64), // Not used in FHIR serialization SByte sb => XmlConvert.ToString(sb), // Not used in FHIR serialization Single sing => XmlConvert.ToString(sing), // Not used in FHIR serialization UInt16 uint16 => XmlConvert.ToString(uint16), // Not used in FHIR serialization UInt32 uint32 => XmlConvert.ToString(uint32), // Not used in FHIR serialization UInt64 uint64 => XmlConvert.ToString(uint64), // Not used in FHIR serialization byte[] barr => System.Convert.ToBase64String(barr), DateTimeOffset dto => XmlConvert.ToString(dto, FMT_FULL), Uri uri => uri.ToString(), PartialDateTime pdt => pdt.ToString(), PartialTime pt => pt.ToString(), PartialDate pd => pd.ToString(), Enum en => en.GetLiteral(), BigInteger bi => bi.ToString(), Quantity q => q.ToString(), _ => throw Error.NotSupported($"Cannot convert '{value.GetType().Name}' value '{value}' to string"), });
/// <summary> /// FhirPath toDate() function. /// </summary> /// <param name="focus"></param> /// <returns></returns> public static PartialDate?ToDate(this ITypedElement focus) { var val = focus?.Value; if (val == null) { return(null); } switch (val) { case PartialDate pt: return(pt); case string s: return(convertString(s)); default: return(null); } PartialDate?convertString(string si) { return(PartialDate.TryParse(si, out var result) ? result : (PartialDate?)null); } }
protected override void Update(Member member, Candidate candidate, Resume resume, ref bool sendSuggestedJobs, ref int?referralSourceId, bool resumeUploaded) { var newDate = new PartialDate(1972, 8); Assert.AreNotEqual(member.DateOfBirth, newDate); member.DateOfBirth = newDate; }
public MockLifeSpan(DateTime begin, DateTime?end = null) { Begin = new PartialDate(begin.Year, begin.Month, begin.Day); if (end.HasValue) { End = new PartialDate(end.Value.Year, end.Value.Month, end.Value.Day); } }
public ISearchBuilder FilterByPartialNotificationDate(PartialDate partialNotificationDate) { if (!(partialNotificationDate == null || partialNotificationDate.IsEmpty())) { partialNotificationDate.TryConvertToDateTimeRange(out DateTime? dateRangeStart, out DateTime? dateRangeEnd); notificationIQ = notificationIQ.Where(s => s.NotificationDate >= dateRangeStart && s.NotificationDate < dateRangeEnd); } return(this); }
public ISearchBuilder FilterByPartialDob(PartialDate partialDob) { if (!(partialDob == null || partialDob.IsEmpty())) { partialDob.TryConvertToDateTimeRange(out DateTime? dateRangeStart, out DateTime? dateRangeEnd); notificationIQ = notificationIQ.Where(s => s.PatientDetails.Dob >= dateRangeStart && s.PatientDetails.Dob < dateRangeEnd); } return(this); }
void accept(string testInput, int?y, int?m, int?d, PartialPrecision?p, TimeSpan?o) { Assert.IsTrue(PartialDate.TryParse(testInput, out PartialDate parsed), "TryParse"); Assert.AreEqual(y, parsed.Years, "years"); Assert.AreEqual(m, parsed.Months, "months"); Assert.AreEqual(d, parsed.Days, "days"); Assert.AreEqual(o, parsed.Offset, "offset"); Assert.AreEqual(p, parsed.Precision, "precision"); Assert.AreEqual(testInput, parsed.ToString(), "ToString"); }
private static PartialDate?ValidateDate(string month, string year) { PartialDate?date; if (string.IsNullOrEmpty(month)) { return(PartialDate.TryParse("Jan " + year, out date) ? date : null); } return(PartialDate.TryParse(month + " " + year, out date) ? date : null); }
public void CheckPartialDateAttributeReturnsFalseForNoYear() { var partialDate = new PartialDate() { Day = "1", Month = "2", Year = null }; var attribute = new ValidPartialDateAttribute(); var result = attribute.IsValid(partialDate); Assert.False(result); }
public void ParseableYearOnlyDate_CanConvertReturnsTrueAndDateTimeRange(PartialDate partialDate, DateTime expectedResultRangeStart, DateTime expectedResultRangeEnd) { // Arrange // Act var canConvert = partialDate.TryConvertToDateTimeRange(out DateTime? resultRangeStart, out DateTime? resultRangeEnd); // Assert Assert.True(canConvert); Assert.Equal(expectedResultRangeStart, resultRangeStart); Assert.Equal(expectedResultRangeEnd, resultRangeEnd); }
public void CheckPartialDateAttributeReturnsFalseForDayButNoMonth() { var partialDate = new PartialDate() { Day = "1", Month = null, Year = "1990" }; var attribute = new ValidPartialDateAttribute(); var result = attribute.IsValid(partialDate); Assert.False(result); }
public ISearchBuilder FilterByPartialDob(PartialDate partialDob) { if (!(partialDob == null || partialDob.IsEmpty())) { partialDob.TryConvertToDateTimeRange(out var dateRangeStart, out var dateRangeEnd); AppendCondition("dmg.DateOfBirth >= @dobDateRangeStart AND dmg.DateOfBirth < @dobDateRangeEnd"); parameters.dobDateRangeStart = dateRangeStart; parameters.dobDateRangeEnd = dateRangeEnd; } return(this); }
public void NextReleaseDate_Ok() { var releaseDate = new PartialDate { Day = "01" }; var release = new Release { NextReleaseDate = releaseDate }; Assert.Equal(releaseDate, release.NextReleaseDate); }
public void NextReleaseDate_Ok() { var releaseDate = new PartialDate { Year = "2021", Month = "1" }; var release = new Release { NextReleaseDate = releaseDate }; Assert.Equal(releaseDate, release.NextReleaseDate); }
public ISearchBuilder FilterByPartialNotificationDate(PartialDate partialNotificationDate) { if (!(partialNotificationDate == null || partialNotificationDate.IsEmpty())) { partialNotificationDate.TryConvertToDateTimeRange(out var dateRangeStart, out var dateRangeEnd); AppendCondition("n.NotificationDate >= @notificationDateRangeStart AND n.NotificationDate < @notificationDateRangeEnd"); parameters.notificationDateRangeStart = dateRangeStart; parameters.notificationDateRangeEnd = dateRangeEnd; } return(this); }
public void CheckOrdering() { Assert.AreEqual(0, PartialDate.Parse("2010-06-04").CompareTo(PartialDate.Parse("2010-06-04"))); Assert.AreEqual(0, PartialDate.Parse("2010-06").CompareTo(PartialDate.Parse("2010-06"))); Assert.AreEqual(0, PartialDate.Parse("2010").CompareTo(PartialDate.Parse("2010"))); Assert.AreEqual(1, PartialDate.Parse("2010-06-04").CompareTo(PartialDate.Parse("2010-06-03"))); Assert.AreEqual(1, PartialDate.Parse("2010-07").CompareTo(PartialDate.Parse("2010-06"))); Assert.AreEqual(1, PartialDate.Parse("2017").CompareTo(PartialDate.Parse("2015"))); Assert.AreEqual(-1, PartialDate.Parse("2010-06-04").CompareTo(PartialDate.Parse("2010-06-05"))); Assert.AreEqual(-1, PartialDate.Parse("2010-05").CompareTo(PartialDate.Parse("2010-06"))); Assert.AreEqual(-1, PartialDate.Parse("2010").CompareTo(PartialDate.Parse("2015"))); }
public void ToDateTimeOffset() { var plusOne = new TimeSpan(1, 0, 0); var plusTwo = new TimeSpan(2, 0, 0); var partialDate = PartialDate.Parse("2010-06-04"); var dateTimeOffset = partialDate.ToDateTimeOffset(12, 3, 4, 5, plusOne); Assert.AreEqual(2010, dateTimeOffset.Year); Assert.AreEqual(06, dateTimeOffset.Month); Assert.AreEqual(04, dateTimeOffset.Day); Assert.AreEqual(12, dateTimeOffset.Hour); Assert.AreEqual(3, dateTimeOffset.Minute); Assert.AreEqual(4, dateTimeOffset.Second); Assert.AreEqual(5, dateTimeOffset.Millisecond); Assert.AreEqual(plusOne, dateTimeOffset.Offset); partialDate = PartialDate.Parse("2010-06-04+02:00"); dateTimeOffset = partialDate.ToDateTimeOffset(12, 3, 4, 5, plusOne); Assert.AreEqual(2010, dateTimeOffset.Year); Assert.AreEqual(06, dateTimeOffset.Month); Assert.AreEqual(04, dateTimeOffset.Day); Assert.AreEqual(12, dateTimeOffset.Hour); Assert.AreEqual(3, dateTimeOffset.Minute); Assert.AreEqual(4, dateTimeOffset.Second); Assert.AreEqual(5, dateTimeOffset.Millisecond); Assert.AreEqual(plusTwo, dateTimeOffset.Offset); partialDate = PartialDate.Parse("2010-06"); dateTimeOffset = partialDate.ToDateTimeOffset(12, 3, 4, 5, plusOne); Assert.AreEqual(2010, dateTimeOffset.Year); Assert.AreEqual(06, dateTimeOffset.Month); Assert.AreEqual(1, dateTimeOffset.Day); Assert.AreEqual(12, dateTimeOffset.Hour); Assert.AreEqual(3, dateTimeOffset.Minute); Assert.AreEqual(4, dateTimeOffset.Second); Assert.AreEqual(5, dateTimeOffset.Millisecond); Assert.AreEqual(plusOne, dateTimeOffset.Offset); partialDate = PartialDate.Parse("2010"); dateTimeOffset = partialDate.ToDateTimeOffset(12, 3, 4, 5, plusOne); Assert.AreEqual(2010, dateTimeOffset.Year); Assert.AreEqual(1, dateTimeOffset.Month); Assert.AreEqual(1, dateTimeOffset.Day); Assert.AreEqual(12, dateTimeOffset.Hour); Assert.AreEqual(3, dateTimeOffset.Minute); Assert.AreEqual(4, dateTimeOffset.Second); Assert.AreEqual(5, dateTimeOffset.Millisecond); Assert.AreEqual(plusOne, dateTimeOffset.Offset); }
public void GetToday() { var today = PartialDate.Today(); var today2 = DateTimeOffset.Now; // just don't run this unit test a split second before midnight Assert.AreEqual(today2.Year, today.Years); Assert.AreEqual(today2.Month, today.Months); Assert.AreEqual(today2.Day, today.Days); Assert.AreEqual(PartialPrecision.Day, today.Precision); Assert.IsFalse(today.HasOffset); today = PartialDate.Today(includeOffset: true); Assert.IsTrue(today.HasOffset); }
public void IfDateHasNoYear_CanConvertReturnsFalse() { // Arrange var partialDate = new PartialDate() { Day = null, Month = "2", Year = null }; // Act var canConvert = partialDate.TryConvertToDateTimeRange(out _, out _); // Assert Assert.False(canConvert); }
public void DateComparison() { Assert.IsTrue(PartialDate.Parse("2010-06-03") > PartialDate.Parse("2010-05-03")); Assert.IsTrue(PartialDate.Parse("2010-06-03") < PartialDate.Parse("2010-07-03")); Assert.IsTrue(PartialDate.Parse("2010-12-05") > PartialDate.Parse("2010-12-04")); Assert.IsTrue(PartialDate.Parse("2010-12-03") < PartialDate.Parse("2010-12-04")); Assert.IsTrue(PartialDate.Parse("2011") > PartialDate.Parse("2010")); Assert.IsTrue(PartialDate.Parse("2011") < PartialDate.Parse("2013")); Assert.IsTrue(PartialDate.Parse("2011-03") > PartialDate.Parse("2011-02")); Assert.IsTrue(PartialDate.Parse("2011-03") < PartialDate.Parse("2011-04")); Assert.IsTrue(PartialDate.Parse("2010-12-03+02:00") < PartialDate.Parse("2010-12-04+02:00")); Assert.IsTrue(PartialDate.Parse("2010-12-05+02:00") > PartialDate.Parse("2010-12-04+02:00")); Assert.IsTrue(PartialDate.Parse("2010-12-03+06:00") < PartialDate.Parse("2010-12-04+02:00")); Assert.IsTrue(PartialDate.Parse("2010-12-05+08:00") > PartialDate.Parse("2010-12-04+02:00")); }
private static bool TryGetDate(string dateString, bool isStart, out PartialDate?date) { dateString = Clean(dateString); if (string.Compare(dateString, CurrentDateText, StringComparison.InvariantCultureIgnoreCase) == 0 || string.Compare(dateString, PresentDateText, StringComparison.InvariantCultureIgnoreCase) == 0 || string.IsNullOrEmpty(dateString)) { date = null; return(true); } // Try to parse as DateTime directly. Only interested in month and year. DateTime datetime; if (DateTime.TryParse(dateString, out datetime)) { if (datetime.Year <= SentinelYear) { date = null; return(true); } date = new PartialDate(datetime.Year, datetime.Month); return(true); } // May be just a year so try to parse that. int year; if (int.TryParse(dateString, out year)) { if (year <= SentinelYear) { date = null; return(true); } date = new PartialDate(year, isStart ? 1 : 12); return(true); } date = null; return(false); }
public void FhirPath_Lex_Date() { var parser = Lexer.Date.End(); accept("@2018-04-05"); accept("@2018-04"); accept("@2018"); reject("@2018-04-05T"); reject("@2018-04-05TZ"); reject("@2018-04-05Z"); reject("@2018-04-05T10:00:00"); reject("@2018-04-05T10:00:00Z"); void accept(string s) => AssertParser.SucceedsMatch(parser, s, PartialDate.Parse(s.Substring(1))); void reject(string s) => AssertParser.FailsMatch(parser, s); }
public void FhirPath_Gramm_Literal() { var parser = Grammar.Literal.End(); AssertParser.SucceedsMatch(parser, "'hi there'", new ConstantExpression("hi there")); AssertParser.SucceedsMatch(parser, "3", new ConstantExpression(3L)); AssertParser.SucceedsMatch(parser, "3.14", new ConstantExpression(3.14m)); AssertParser.SucceedsMatch(parser, "@2013-12", new ConstantExpression(PartialDate.Parse("2013-12"))); AssertParser.SucceedsMatch(parser, "@2013-12T", new ConstantExpression(PartialDateTime.Parse("2013-12"))); AssertParser.SucceedsMatch(parser, "@T12:23:34", new ConstantExpression(PartialTime.Parse("12:23:34"))); AssertParser.SucceedsMatch(parser, "true", new ConstantExpression(true)); AssertParser.SucceedsMatch(parser, "@2014-12-13T12:00:00+02:00", new ConstantExpression(PartialDateTime.Parse("2014-12-13T12:00:00+02:00"))); AssertParser.FailsMatch(parser, "%constant"); AssertParser.FailsMatch(parser, "`quotedstring`"); AssertParser.FailsMatch(parser, "A23identifier"); }
protected override PartialDate?GetDateOfBirth(XmlDocument xmlDoc) { var dob = Get(xmlDoc, "//contact/personal/dob"); if (string.IsNullOrEmpty(dob)) { dob = Get(xmlDoc, "//resume/statements/personal/dob"); if (string.IsNullOrEmpty(dob)) { return(null); } } PartialDate?date; PartialDate.TryParse(dob, out date); return(date); }
protected CachedReleaseViewModel( Guid id, string title, string yearTitle, string coverageTitle, string releaseName, PartialDate nextReleaseDate, DateTime?published, string slug, ReleaseTypeViewModel type, List <ReleaseNoteViewModel> updates, List <ContentSectionViewModel> content, ContentSectionViewModel summarySection, ContentSectionViewModel headlinesSection, ContentSectionViewModel keyStatisticsSection, ContentSectionViewModel keyStatisticsSecondarySection, List <FileInfo> downloadFiles, string metaGuidance, string preReleaseAccessList, List <LinkViewModel> relatedInformation, DateTime?dataLastPublished) { Id = id; Title = title; YearTitle = yearTitle; CoverageTitle = coverageTitle; ReleaseName = releaseName; NextReleaseDate = nextReleaseDate; Published = published; Slug = slug; Type = type; Updates = updates; Content = content; SummarySection = summarySection; HeadlinesSection = headlinesSection; KeyStatisticsSection = keyStatisticsSection; KeyStatisticsSecondarySection = keyStatisticsSecondarySection; DownloadFiles = downloadFiles; MetaGuidance = metaGuidance; PreReleaseAccessList = preReleaseAccessList; RelatedInformation = relatedInformation; DataLastPublished = dataLastPublished; }
public void FhirPath_Gramm_Term() { var parser = Grammar.Term.End(); AssertParser.SucceedsMatch(parser, "childname", new ChildExpression(AxisExpression.This, "childname")); AssertParser.SucceedsMatch(parser, "$this", AxisExpression.This); AssertParser.SucceedsMatch(parser, "doSomething()", new FunctionCallExpression(AxisExpression.This, "doSomething", TypeSpecifier.Any)); AssertParser.SucceedsMatch(parser, "doSomething('hi', 3.14)", new FunctionCallExpression(AxisExpression.This, "doSomething", TypeSpecifier.Any, new ConstantExpression("hi"), new ConstantExpression(3.14m))); AssertParser.SucceedsMatch(parser, "%external", new VariableRefExpression("external")); AssertParser.SucceedsMatch(parser, "@2013-12", new ConstantExpression(PartialDate.Parse("2013-12"))); AssertParser.SucceedsMatch(parser, "@2013-12T", new ConstantExpression(PartialDateTime.Parse("2013-12"))); AssertParser.SucceedsMatch(parser, "3", new ConstantExpression(3L)); AssertParser.SucceedsMatch(parser, "true", new ConstantExpression(true)); AssertParser.SucceedsMatch(parser, "(3)", new ConstantExpression(3L)); AssertParser.SucceedsMatch(parser, "{}", NewNodeListInitExpression.Empty); AssertParser.SucceedsMatch(parser, "@2014-12-13T12:00:00+02:00", new ConstantExpression(PartialDateTime.Parse("2014-12-13T12:00:00+02:00"))); AssertParser.SucceedsMatch(parser, "78 'kg'", new ConstantExpression(new Quantity(78m, "kg"))); AssertParser.SucceedsMatch(parser, "10.1 'mg'", new ConstantExpression(new Quantity(10.1m, "mg"))); }
private void CreateFriends(Guid memberId, PersonalVisibility firstDegree, int start, int count, out IList <Member> friends, out IList <Candidate> candidates, out IList <Resume> resumes) { friends = new List <Member>(); candidates = new List <Candidate>(); resumes = new List <Resume>(); for (var index = start; index < start + count; index++) { var friend = _memberAccountsCommand.CreateTestMember(index); var candidate = _candidatesCommand.GetCandidate(friend.Id); // Set values. candidate.Status = CandidateStatus.OpenToOffers; var resume = new Resume { Jobs = new List <Job> { new Job { Dates = new PartialDateRange(PartialDate.Parse("01/01/1970")), Title = string.Format(CurrentJobsTemplate, index) } } }; _locationQuery.ResolvePostalSuburb(friend.Address.Location, Australia, Suburb + " " + Postcode + " " + CountrySubdivision); friend.VisibilitySettings.Personal.FirstDegreeVisibility = firstDegree; // Save. _memberAccountsCommand.UpdateMember(friend); _candidatesCommand.UpdateCandidate(candidate); _candidateResumesCommand.CreateResume(candidate, resume); friends.Add(friend); candidates.Add(candidate); resumes.Add(resume); _networkingCommand.CreateFirstDegreeLink(memberId, friend.Id); } }
private static PartialDateRange GetDateTimeRange(string startDate, string endDate) { var start = string.IsNullOrEmpty(startDate) ? null : startDate == "N/A" ? (PartialDate?)null : PartialDate.Parse(startDate); if (string.IsNullOrEmpty(endDate) || endDate == "N/A") { return(null); } if (endDate == "Current") { return(start == null ? new PartialDateRange() : new PartialDateRange(start.Value)); } return(new PartialDateRange(start, PartialDate.Parse(endDate))); }
public void FromDateTimeOffset() { var plusOne = new TimeSpan(1, 0, 0); var dateTimeOffset = new DateTimeOffset(2019, 7, 23, 13, 45, 56, 567, plusOne); var partialDate = PartialDate.FromDateTimeOffset(dateTimeOffset); Assert.AreEqual(2019, partialDate.Years); Assert.AreEqual(7, partialDate.Months); Assert.AreEqual(23, partialDate.Days); Assert.IsNull(partialDate.Offset); partialDate = PartialDate.FromDateTimeOffset(dateTimeOffset, includeOffset: true); Assert.AreEqual(2019, partialDate.Years); Assert.AreEqual(7, partialDate.Months); Assert.AreEqual(23, partialDate.Days); Assert.AreEqual(plusOne, partialDate.Offset); partialDate = PartialDate.FromDateTimeOffset(dateTimeOffset, prec: PartialPrecision.Year, includeOffset: true); Assert.AreEqual(2019, partialDate.Years); Assert.IsNull(partialDate.Months); Assert.AreEqual(PartialPrecision.Year, partialDate.Precision); Assert.AreEqual(plusOne, partialDate.Offset); }