/// <summary> /// Binds the profile. /// </summary> /// <param name="profileId">The profile id.</param> protected void BindGivingProfile(int profileId) { DateTime currentDate = DateTimeOffset.Now.DateTime; var accountService = new FinancialAccountService(); var activeAccounts = accountService.Queryable().Where(f => f.IsActive && (f.StartDate == null || f.StartDate <= currentDate) && (f.EndDate == null || f.EndDate <= currentDate) && f.PublicName != null && f.PublicName != ""); var accountGuids = GetAttributeValues("DefaultAccounts").Select(Guid.Parse).ToList(); var scheduledTransactionService = new FinancialScheduledTransactionService(); var transactionList = new Dictionary <FinancialAccount, decimal>(); FinancialScheduledTransaction scheduledTransaction; if (profileId != 0 && scheduledTransactionService.TryGet(profileId, out scheduledTransaction)) { // Retrieve Transaction btnFrequency.SelectedValue = scheduledTransaction.TransactionFrequencyValue.Id.ToString(); divFrequency.Visible = true; dtpStartDate.SelectedDate = scheduledTransaction.StartDate; divRecurrence.Visible = true; divLimitGifts.Visible = true; if (scheduledTransaction.NumberOfPayments != null) { chkLimitGifts.Checked = true; txtLimitNumber.Text = scheduledTransaction.NumberOfPayments.ToString(); divLimitNumber.Visible = true; } foreach (var details in scheduledTransaction.ScheduledTransactionDetails) { transactionList.Add(details.Account, details.Amount); } } else { // New Transaction IQueryable <FinancialAccount> selectedAccounts = activeAccounts; if (accountGuids.Any()) { selectedAccounts = selectedAccounts.Where(a => accountGuids.Contains(a.Guid)); } var campusId = btnCampusList.SelectedValueAsInt(); selectedAccounts = selectedAccounts.Where(f => f.CampusId == campusId || (f.CampusId == null && f.ChildAccounts.Count() == 0)); foreach (var account in selectedAccounts) { transactionList.Add(account, 0M); } } if (activeAccounts.Count() > transactionList.Count() && Convert.ToBoolean(GetAttributeValue("ShowAdditionalAccounts"))) { var unselectedAccounts = activeAccounts.Where(a => !accountGuids.Contains(a.Guid)).ToList(); if (unselectedAccounts.Any()) { btnAddAccount.DataTextField = "PublicName"; btnAddAccount.DataValueField = "Id"; btnAddAccount.DataSource = unselectedAccounts.ToList(); btnAddAccount.DataBind(); } } else { divAddAccount.Visible = false; } Session["CachedAmounts"] = transactionList; Session["CachedProfileId"] = profileId; rptAccountList.DataSource = transactionList; rptAccountList.DataBind(); spnTotal.InnerText = transactionList.Sum(d => d.Value).ToString("f2"); }