public static async Task <decimal> GetBalance(Guid customerId) { try { decimal balance = 0; await Task.Run(() => { using (LawnProEntities dc = new LawnProEntities()) { var parameters = new SqlParameter { ParameterName = "customerId", SqlDbType = System.Data.SqlDbType.UniqueIdentifier, Value = customerId }; var results = dc.Set <spGetCustomerBalanceResult>().FromSqlRaw("exec spGetCustomerBalance @customerId", parameters); foreach (var r in results) { balance = r.Balance; } } }); return(balance); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void GetCustomerBalanceTest() { tblInvoice invoice = dc.tblInvoices.Where(i => i.Status == "Issued").FirstOrDefault(); tblCustomer customer = dc.tblCustomers.Where(c => c.Id == invoice.CustomerId).FirstOrDefault(); decimal expected = invoice.ServiceRate * customer.PropertySqFt; decimal actual = 0; var customerId = new SqlParameter { ParameterName = "customerId", SqlDbType = System.Data.SqlDbType.UniqueIdentifier, Value = customer.Id }; var results = dc.Set <spGetCustomerBalanceResult>().FromSqlRaw("exec spGetCustomerBalance @customerId", customerId).ToList(); foreach (var r in results) { actual = r.Balance; } Assert.AreEqual(expected, actual); }