public List <PropertyAccountViewModel> All() { try { var payoutMethods = new PayoutMethodProvider(_context).GetAll().ToList(); SqlParameter[] sqlParams = new SqlParameter[1]; var accounts = _context.Database.SqlQuery <PropertyAccountViewModel>("RetrievePropertyAccounts", sqlParams).ToList(); foreach (var account in accounts) { string[] payoutMethodIds = account.CurrentPayoutMethodIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string idString in payoutMethodIds) { var id = Int32.Parse(idString.Trim()); account.SelectedPayoutMethods.Add(new SelectListItem { Text = payoutMethods.Where(m => m.PayoutMethodId == id).Select(m => m.PayoutMethodName).FirstOrDefault(), Value = idString.Trim(), }); } } return(accounts); } catch { throw; // let caller handle the error } }
public int Update(PropertyCodeViewModel model) { try { // 3 relation tables to update: PropertyPayoutMethods, PropertyCodePropertyEntities, and PropertyAccountPayoutMethods var payoutMethodProvider = new PayoutMethodProvider(_context); int updateCount = payoutMethodProvider.UpdatePropertyCodeByName(model.PayoutMethod, model.PropertyCode); var entityProvider = new PropertyEntityProvider(_context); updateCount += entityProvider.UpdatePropertyCodeByName(model.PayoutEntity, model.PropertyCode); var accountProvider = new PropertyAccountProvider(_context); updateCount += accountProvider.UpdatePayoutMethodByOwner(model.PropertyOwner, model.PayoutMethod); return(updateCount); } catch { throw; } }