public void ApplyValues(ClientReport cr, int?monthsToAdd) { //primitives go here this.Amount = cr.Amount; this.Rate = cr.Rate; foreach (var ar in cr.ClientAmountReports) { var newDate = ar.ReportDate.AddMonths(monthsToAdd ?? 0); var own = this.ClientAmountReports.SingleOrDefault(f => f.ReportDate == newDate); if (own == null) { own = new ClientAmountReport(); } own.Quantity = ar.Quantity; own.ReportDate = newDate; this.ClientAmountReports.Add(own); } }
private void FixupClientReport(ClientReport previousValue) { if (previousValue != null && previousValue.ClientAmountReports.Contains(this)) { previousValue.ClientAmountReports.Remove(this); } if (ClientReport != null) { if (!ClientReport.ClientAmountReports.Contains(this)) { ClientReport.ClientAmountReports.Add(this); } if (ClientReportId != ClientReport.Id) { ClientReportId = ClientReport.Id; } } }