private void GetDataAsync(int index) { GetDataDelegate d = new GetDataDelegate(GetData); d.BeginInvoke(index, new AsyncCallback(DataLoaded), null); }
public IList <AlertEntity> GetTable2(params String[] s) { DateSelected = DateSelected.AddDays(1).AddHours(-1); IAsyncResult ar1 = d1.BeginInvoke(null, null); IAsyncResult ar2 = d2.BeginInvoke(null, null); IAsyncResult ar3 = d3.BeginInvoke(null, null); while (!ar1.IsCompleted && !ar2.IsCompleted && !ar3.IsCompleted) { Thread.Sleep(50); //wait } IList <AlertTempEntity> l1 = d1.EndInvoke(ar1); IList <AlertTempEntity> l2 = d2.EndInvoke(ar2); IList <AlertTempEntity> l3 = d3.EndInvoke(ar3); IList <AlertTempEntity> l4 = new List <AlertTempEntity>(); foreach (AlertTempEntity AmntRes in l3) { int AmtResCi = l2.Where(p => p.rsTime <= AmntRes.rsTime && p.rentLoc == AmntRes.rentLoc && p.crGrp == AmntRes.crGrp).Sum(p => p.Amnt); int AmntFea = l1.Where(p => p.rsTime <= AmntRes.rsTime && p.rentLoc == AmntRes.rentLoc && p.crGrp == AmntRes.crGrp).Sum(p => p.Amnt); if ((AmntFea - AmntRes.Amnt + AmtResCi) < 0) { l4.Add(new AlertTempEntity { rsTime = AmntRes.rsTime, crGrp = AmntRes.crGrp, rentLoc = AmntRes.rentLoc, Amnt = AmntFea + AmtResCi - AmntRes.Amnt }); } } l4 = l4.OrderBy(d => d.Amnt).ThenBy(d => d.rentLoc).ThenBy(d => d.crGrp).ToList(); AlertEntity[] ax = _alertsRetQ.GetQueryable(l4).ToArray(); var lx = new List <AlertEntity>(); String[] a1 = ax.Where(p => !String.IsNullOrEmpty(p.NextHour)).Select(p => p.NextHour).ToArray(); String[] a2 = ax.Where(p => !String.IsNullOrEmpty(p.Follow4Hours)).Select(p => p.Follow4Hours).ToArray(); String[] a3 = ax.Where(p => !String.IsNullOrEmpty(p.RestOfDay)).Select(p => p.RestOfDay).ToArray(); String[] a4 = ax.Where(p => !String.IsNullOrEmpty(p.Custom)).Select(p => p.Custom).ToArray(); Boolean b = true; Int32[] i = { 0, 0, 0, 0 }; while (b) { string s1 = String.Empty, s2 = String.Empty, s3 = String.Empty, s4 = string.Empty; b = false; if (i[0] < a1.Length) { s1 = a1[i[0]++]; b = true; } if (i[1] < a2.Length) { s2 = a2[i[1]++]; b = true; } if (i[2] < a3.Length) { s3 = a3[i[2]++]; b = true; } if (i[3] < a4.Length) { s4 = a4[i[3]++]; b = true; } if (b) { lx.Add(new AlertEntity { NextHour = s1, Follow4Hours = s2, RestOfDay = s3, Custom = s4, }); } } return(lx); }