public List <AffiliateReferral> FindByCriteria(AffiliateReferralSearchCriteria criteria, int pageNumber, int pageSize, ref int rowCount) { IQueryable <Data.EF.bvc_AffiliateReferral> items = repository.Find().Where(y => y.StoreId == context.CurrentStore.Id); if (criteria.AffiliateId > 0) { items = items.Where(y => y.AffiliateId == criteria.AffiliateId); } if (criteria.StartDateUtc.HasValue && criteria.EndDateUtc.HasValue) { items = items.Where(y => y.TimeOfReferralUtc >= criteria.StartDateUtc.Value && y.TimeOfReferralUtc <= criteria.EndDateUtc.Value); } if (items != null) { rowCount = items.Count(); var x2 = items.OrderBy(y => y.Id).Skip((pageNumber - 1) * pageSize).Take(pageSize); return(ListPoco(x2)); } return(new List <AffiliateReferral>()); }
protected void AffiliatesDataList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem) { if (e.Item.DataItem != null) { OrderSearchCriteria orderCriteria = new OrderSearchCriteria(); AffiliateReferralSearchCriteria referralCriteria = new AffiliateReferralSearchCriteria(); Affiliate affiliate = (Affiliate)e.Item.DataItem; orderCriteria.AffiliateId = affiliate.ReferralId; DateTime zonedStart = new DateTime(int.Parse(YearDropDownList.SelectedValue), int.Parse(MonthDropDownList.SelectedValue), 1, 0, 0, 0, 0); orderCriteria.StartDateUtc = TimeZoneInfo.ConvertTimeToUtc(zonedStart, MTApp.CurrentStore.Settings.TimeZone); orderCriteria.EndDateUtc = orderCriteria.StartDateUtc.AddMonths(1); orderCriteria.EndDateUtc = orderCriteria.EndDateUtc.AddSeconds(-1); referralCriteria.AffiliateId = affiliate.Id; referralCriteria.StartDateUtc = orderCriteria.StartDateUtc; referralCriteria.EndDateUtc = orderCriteria.EndDateUtc; List<OrderSnapshot> affiliateOrders = MTApp.OrderServices.Orders.FindByCriteria(orderCriteria); Label currLabel = (Label)e.Item.FindControl("ReferralsLabel"); int totalCount = 0; List<AffiliateReferral> referrals = MTApp.ContactServices.AffiliateReferrals.FindByCriteria(referralCriteria, 1, int.MaxValue, ref totalCount); currLabel.Text = referrals.Count.ToString(); currLabel = (Label)e.Item.FindControl("SalesLabel"); currLabel.Text = affiliateOrders.Count.ToString(); currLabel = (Label)e.Item.FindControl("ConversionLabel"); double conversion = (double)affiliateOrders.Count / (double)referrals.Count; currLabel.Text = string.Format("{0:p}", conversion); decimal total = 0; foreach (OrderSnapshot order in affiliateOrders) { total += order.TotalOrderBeforeDiscounts; } currLabel = (Label)e.Item.FindControl("CommissionLabel"); decimal commission = 0; string commissionText = string.Empty; if (affiliate != null) { if (affiliate.CommissionType == AffiliateCommissionType.FlatRateCommission) { commission = Math.Round(affiliate.CommissionAmount * (decimal)affiliateOrders.Count, 2); commissionText = string.Format("{0:c}", affiliate.CommissionAmount) + " per"; } else { commission = Math.Round((affiliate.CommissionAmount / (decimal)100) * total, 2); commissionText = string.Format("{0:p}", (affiliate.CommissionAmount / (decimal)100)); } currLabel.Text = commissionText + " = " + string.Format("{0:c}", commission); } GridView gv = (GridView)e.Item.FindControl("OrdersGridView"); if (gv != null) { gv.DataSource = affiliateOrders; gv.DataKeyNames = new string[] { "bvin" }; gv.DataBind(); } Literal openDiv = (Literal)e.Item.FindControl("openDiv"); Literal closeDiv = (Literal)e.Item.FindControl("closeDiv"); if ((openDiv != null) & (closeDiv != null)) { openDiv.Text = "<a href=\""; openDiv.Text += "javascript:toggle('aff" + affiliate.Id + "');"; openDiv.Text += "\"><img id=\"aff" + affiliate.Id + "Carrot\" name=\"aff" + affiliate.Id + "Carrot\" src=\"../../../BVAdmin/Images/Buttons/Details.png\" border=\"0\" alt=\"Details\"></a></img><div style=\"display:none\" id=\"aff" + affiliate.Id + "\" class=\"hidden\">"; closeDiv.Text = "</div>"; } } } }