Всем привет. Я пытаюсь проинициализировать поля и во всех случаях получаю такую ошибку ( System.NullReferenceException : Object reference not set to an instance of an object.), подскажите что я делаю неверно? Это мои поля:
public DateRange BookedOnDate { get; set; }
/*
public class DateRange
{
public LocalDate Start { get; set; }
public LocalDate End { get; set; }
}
*/
public IncludedReservationType IncludedReservationType { get; set; }
/*
public enum IncludedReservationType
{
[EnumMember(Value = "All Reservation")]
AllReservation = 1,
[EnumMember(Value = "Arrivals")]
Arrivals = 2
}
*/
public IEnumerable<ReservationCategories> ReservationCategories { get; set; }
/*
public enum ReservationCategories
{
[EnumMember(Value = "Unpaid")]
UnpaidBalance = 1,
[EnumMember(Value = "Unassigned")]
UnassignedRoom = 2,
[EnumMember(Value = "No Payment Method")]
NoPaymentMethod = 3
}
*/
А это я пытаюсь инициализировать, поправьте, где я ошибаюсь, пожалуйста:
DateRange bookedOnDateRange = new DateRange();
bookedOnDateRange.Start = new NodaTime.LocalDate(2021, 04, 02);
bookedOnDateRange.End = new NodaTime.LocalDate(2021, 04, 04);
BookedOnDate = bookedOnDateRange; //Object reference not set to an instance of an object
IncludedReservationType = IncludedReservationType.AllReservation; //Object reference not set to an instance of an object
var reservationCategories = new List<ReservationCategories> {
ReservationCategories.UnpaidBalance };
reportRequest.AdvancedInput.ReservationCategories = reservationCategories; //Object reference not set to an instance of an object
UPD: На данный момент я пытаюсь создать unit test для repository, где я получаю данные из БД и там же применяю необходимую фильтрацию. Для того чтобы вызвать требуемый метод, мне необходимо отправить туда входные данные, и тут я занимаюсь заполнением этих полей в ручную и затем пытаюсь вызвать метод из repository.
using Microsoft.EntityFrameworkCore;
using System;
namespace innRoad.Reports.Data.Tests.Repository
{
public partial class ReservationCardsRepositoryTests
{
private readonly TestBuilder _testBuilder = new TestBuilder();
[Fact]
public async Task GetReservationsWithUnPaidBalance_ShouldReturnRequiredReservations()
{
var clientId = xxx;
var propertyId = yyy;
DateRange stayedOnDateRange = new DateRange();
stayedOnDateRange.Start = new NodaTime.LocalDate(2021, 04, 01);
stayedOnDateRange.End = new NodaTime.LocalDate(2021, 04, 03);
DateRange bookedOnDateRange = new DateRange();
bookedOnDateRange.Start = new NodaTime.LocalDate(2021, 04, 02);
bookedOnDateRange.End = new NodaTime.LocalDate(2021, 04, 04);
var reportRequest = new ReportRequest();
reportRequest.StayOnDate = stayedOnDateRange;
reportRequest.AdvancedInput.BookedOnDate.Start = new NodaTime.LocalDate();
reportRequest.AdvancedInput.BookedOnDate.End = new NodaTime.LocalDate();
// bookedOnDateRange;
//reportRequest.AdvancedInput.BookedOnDate.End = bookedOnDateRange.End;
reportRequest.Input.IncludedReservationType = IncludedReservationType.AllReservation;
reportRequest.ClientId = clientId;
reportRequest.PropertyId = propertyId;
var reservationCategories = new List<ReservationCategories> { ReservationCategories.UnpaidBalance };
reportRequest.AdvancedInput.ReservationCategories = reservationCategories;
var repository = _testBuilder.Build();
var filteredByReservationCategories = repository.GetReservationBaseQueryAsync(reportRequest);
//var baseReservations = filteredByReservationCategories;
Assert.NotNull(filteredByReservationCategories);
}
}
}
А это я пытаюсь инициализироватьгде этот код находится?Это мои поля:- это на самом деле свойства, а не поля. Не видно, часть чего эти совйства, и где вы это что-то создаете например с помощьюnew. – aepot Apr 23 '21 at 11:47