как обновить свойство класса IEnumerable - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть этот код

private IEnumerable<HorasVM> InsertarCalendarioValores(IEnumerable<HorasVM> listaHoras, string proyectoId, DateTime fechaInicio, DateTime fechaFin)
  {
    IEnumerable<ValoresEnFecha> calendarioValoresFULCRUM;
    IEnumerable<ValoresEnFecha> calendarioValoresSERS;
    IEnumerable<ValoresEnFecha> calendarioValoresMATRIZ;
    decimal realizadoSERS;
    decimal realizadoMATRIZ;

    foreach (var item in listaHoras)
    {
      calendarioValoresFULCRUM = GetDesdeHasta(dbFULCRUM, proyectoId, item.EmpleadoId, fechaInicio, fechaFin, item.Type);
      calendarioValoresSERS = GetDesdeHasta(dbSERS, proyectoId, item.EmpleadoId, fechaInicio, fechaFin, item.Type);
      calendarioValoresMATRIZ = GetDesdeHasta(dbMATRIZ, proyectoId, item.EmpleadoId, fechaInicio, fechaFin, item.Type);

      foreach (var mes in calendarioValoresFULCRUM)
      {
        realizadoSERS = calendarioValoresSERS.Where(c => c.Fecha == mes.Fecha).FirstOrDefault().Realizado;
        realizadoMATRIZ= calendarioValoresMATRIZ.Where(c => c.Fecha == mes.Fecha).FirstOrDefault().Realizado;
        mes.Realizado += realizadoSERS + realizadoMATRIZ;
      }

      item.CalendarioValores = calendarioValoresFULCRUM;
    }

    return listaHoras;
  }

HorasVM - это класс

public class HorasVM
{
    public int EmpleadoId { get; set; }
    public string ProyectoId { get; set; }
    public string EmpleadoNombre { get; set; }
    public decimal RealizadoAcumulado { get; set; }
    public decimal PlanificadoAcumulado { get; set; }
    public string Type { get; set; }
    public decimal PrevistoAcumulado => RealizadoAcumulado + PlanificadoAcumulado;

    public IEnumerable<ValoresEnFecha> CalendarioValores { get; set; }

}

И ValoresEnFecha - это класс

public class ValoresEnFecha
{
    public string Fecha { get; set; }
    public decimal Valor { get; set; }
    public decimal Realizado { get; set; }
    public decimal Planificado { get; set; }
}

В моем методе я получаю это listaHoras

listaHoras

, где свойство CalendarioValores каждого элемента равно нулю, и я хочу вычислить его, поэтому для каждого элемента в listaHoras я получаю значения и назначаю их для каждого элемента

item

, но когда я обновляю элемент в listaHoras, этот элемент все еще имеет свойство CalendarioValores, не назначенное.

item.CalendarioValores = calendarioValoresFULCRUM;

не обновляет свойства каждого элемента listaHoras

Есть идеи?

С уважением

1 Ответ

0 голосов
/ 11 февраля 2020

Проблема заключалась в использовании типа IEnumerable только для чтения вместо списка. Спасибо

...