-3

Why Can't add object to list "ListOfMachines" coming up null reference exeption:

An exception of type 'System.NullReferenceException' occurred in SFC.Terminal.dll but was not handled in user code. Why Can't add no object to list "ListOfMachines" coming up exeption

The object with I trying to add:

Model "MachineModel":

public class MachineModel
    {
        public List<MachinesModelForList> ListOfMachines { get; set; }
        public int QtyOfWorkerActivities { get; set; }
    }

Model "MachinesModelForList":

public class MachinesModelForList  
{
    public int ID;
    public string Name { get; set; }
    public string Description { get; set; }
    public string UserName { get; set; }
    public string OrderId { get; set; }
    public string Index { get; set; }
    public int Operation { get; set; }
    public byte Shift { get; set; }
    public int Status { get; set; }
    public string StatusColor { get; set; }
    public string StatusName { get; set; }
    public int UserId { get; set; }
    public int Slots { get; set; }
    public DateTime? EndDate {get; set;}
    public int MachineActivity { get; set;}
}

The function:

  public MachineModel LoggedWorkerActivity()
    {
        var userloggeduserID = HttpContext.Current.User.Identity.GetUserId();
        var DB = new TerminalDBContext();

        var workerListOfMachinesID = DB.MachineActivity.Where(p => p.UserID.ToString() == userloggeduserID & p.EndDate == null).Select(p => p.MachineID).ToList();

        var machineModel = new MachineModel();
        foreach (int i in workerListOfMachinesID)
        {
            var ob = DB.Machine.Where(p => p.ID == i)

                .Select(m => new MachinesModelForList
                {
                    Status = DB.MachineActivity.Where(x => x.MachineID == m.ID).Select(p => p.StatusReason.Status.ID).FirstOrDefault(),
                    Description = m.Description,
                    Name = m.Name,
                    Slots = m.Slots,
                    ID = DB.MachineActivity.Where(x => x.MachineID == m.ID).Select(p => p.MachineID).FirstOrDefault(),
                    UserId = DB.MachineActivity.Where(x => x.MachineID == m.ID).Select(p => p.UserID).FirstOrDefault(),
                    EndDate = DB.MachineActivity.Where(x => x.MachineID == m.ID).Select(p => p.EndDate).FirstOrDefault(),
                    MachineActivity = DB.MachineActivity.Where(p => p.MachineID == m.ID & p.EndDate == null).Count()
                }).FirstOrDefault();

            machineModel.ListOfMachines.Add(ob);
            machineModel.QtyOfWorkerActivities++;

        }

        return machineModel;
    }
Marek
  • 111
  • 3
  • 12

1 Answers1

1

Just create instance of list

machineModel.ListOfMachines = new List<MachinesModelForList>();
machineModel.ListOfMachines.Add(ob);
Roman Marusyk
  • 23,328
  • 24
  • 73
  • 116