type OrgCalendarYears = {
startDate: '2018-1-01T00:00:00',
endDate: '2020-8-29T00:00:00',
startDate: '2018-1-01T00:00:00',
endDate: '2020-8-29T00:00:00',
startDate: '2018-9-01T00:00:00',
endDate: '2020-8-29T00:00:00',
calendarYears: [2018,2019,2020],
fiscalYears: [2018,2019,2020]
calendarYears: [2018,2019,2020],
fiscalYears: [2018,2019,2020,2021]
calendarYears: [2018,2019,2020],
let expectedObj = JsonConvert.DeserializeObject<List<OrgCalendarYears>> output
let expectedJson = JsonConvert.SerializeObject expectedObj
let getOrgCalendarYearsList orgDatesList =
|> List.map (fun orgDates ->
let fyStart = if (orgDates.startDate.Month > orgDates.fiscalYearEnd) then orgDates.startDate.Year+1 else orgDates.startDate.Year
let fyEnd = if orgDates.endDate.Month > orgDates.fiscalYearEnd then orgDates.endDate.Year+1 else orgDates.endDate.Year
calendarYears = [orgDates.startDate.Year .. orgDates.endDate.Year]
fiscalYears = [fyStart .. fyEnd] })
let orgCalendarYearsList =
JsonConvert.DeserializeObject<List<OrgDates>> inputJSON
|> getOrgCalendarYearsList
printfn "Objects Equal: %b" (orgCalendarYearsList = expectedObj)
let serial = JsonConvert.SerializeObject orgCalendarYearsList
printfn "Json Equal: %b" (serial = expectedJson)