public void RemoveRow(TypeOfAddRows rezhim, int ind) { try { if (revL != null) { if (rezhim == TypeOfAddRows.AddRevision) { int revision = revL[ind].Revision; var removeItems = revL.Where(r => r.Revision == revision).OrderByDescending(r => r); foreach (var r in removeItems) { revL.Remove(r); } var groupRev = revL.GroupBy(r => r.Revision); int revn = 1; foreach (var gr in groupRev) { foreach (var g in gr) { g.Revision = revn; } revn += 1; } } else if (rezhim == TypeOfAddRows.AddEtap) { int etap = revL[ind].Etap; var removeItems = revL.Where(r => r.Etap == etap).OrderByDescending(r => r); foreach (var r in removeItems) { revL.Remove(r); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); MessageBox.Show(ex.StackTrace); } }
public void InsterRow(TypeOfAddRows rezhim, int ind) { try { if (revL != null) { if (rezhim == TypeOfAddRows.AddRevision) { int maxRev = revL.Max(r => r.Revision) + 1; var lastRev = revL.Where(r => r.Revision == maxRev - 1).Select(r => { var rCopy = r.Copy(); rCopy.Revision = maxRev; return(rCopy); }).ToList(); foreach (var rev in lastRev) { revL.Add(rev); } } else if (rezhim == TypeOfAddRows.AddEtap) { RevisionCl rCopy = (revL[ind] as RevisionCl).Copy(); rCopy.Etap += 1; var gr = revL.GroupBy(r => r.Revision); if (gr != null) { if (gr.First().Any(r => r.Etap == rCopy.Etap) == true) { rCopy.Etap = gr.First().Max(r => r.Etap); rCopy.Etap += 1; } List <int> index = new List <int>(); foreach (var g in gr) { index.Add(0); if (g != null) { var findf = g.LastOrDefault(gig => gig.Etap <= rCopy.Etap); if (findf != null) { index[index.Count - 1] = revL.IndexOf(findf) + 1; } } } if (index != null) { for (int i = index.Count - 1; i >= 0; i--) { RevisionClWithEvent newrow = new RevisionClWithEvent(rCopy); newrow.Revision = i + 1; revL.Insert(index[i], newrow); } } } } // RevisionCl.EtapChange += new Action<RevisionCl, int>(Sorting); // AllowdToSort = true; } } catch (Exception ex) { MessageBox.Show(ex.Message); MessageBox.Show(ex.StackTrace); } }