public static double CalculateTotalBalance(Guid reservationId) { double dblTotalBalance = 0; ReservationRepository reservationRepository = new ReservationRepository(); var reservation = reservationRepository.GetReservationById(reservationId, LogInManager.LoggedInUserId).FirstOrDefault(); ReservationChargeRepository reservationChargeRepository = new ReservationChargeRepository(); if (reservation != null) { if (reservation.IsCheckIn == true) { //Reservation Charges var reservationCharges = reservationChargeRepository.GetReservationCharges(reservationId, null, LogInManager.LoggedInUserId); if (reservationCharges != null && reservationCharges.Count > 0) { var totalReservationCharges = reservationCharges.Where(m => m.Amount.HasValue) .Sum(m => (m.Amount.Value * (m.Qty.HasValue ? m.Qty.Value : 1))); dblTotalBalance += totalReservationCharges; dblTotalBalance = CurrencyManager.ConvertAmountToBaseCurrency(dblTotalBalance, LogInManager.CurrencyCode); } } else { double totalRoomRentCharge = 0; //totalRoomRentCharge = CalculateRoomRentCharges(reservation.NoOfNight, (reservation.Rate.HasValue ? reservation.Rate.Value : 0), reservation.NoOfChildren, reservation.DiscountAmount, reservation.DiscountPercentage, (reservation.DiscountPercentage.HasValue ? true : false)); totalRoomRentCharge = CalculateReservationTotalPrice(reservation.Id); dblTotalBalance = totalRoomRentCharge; ////Package Price //var packageDetails = reservationRepository.GetReservationPackageMapping(reservation.Id, null); //if (packageDetails != null && packageDetails.Count > 0) //{ // var totalPackagePrice = packageDetails.Where(m => m.PackagePrice.HasValue).Sum(m => m.PackagePrice); // dblTotalBalance += (totalPackagePrice.HasValue) ? totalPackagePrice.Value : 0; //} } } return(Math.Round(dblTotalBalance, 2)); }