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);
            }
        }
Exemple #2
0
        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);
        }