public void UpdateReturnInterest(ReturnInterest upd) { _uow.Repository <ReturnInterest>().Update(upd); }
public ActionResult Approve(int?UserPackageId) { EJState result = EJState.Unknown; try { var userPackage = _investmentService.GetUserPackage(UserPackageId.Value); var package = _investmentService.GetEntitledPackage(userPackage.TotalAmount); //Activate User Package userPackage.ApprovedBy = User.Identity.Name; userPackage.EffectiveDate = DateTime.UtcNow; userPackage.StatusId = (int)EStatus.Active; userPackage.ModifiedBy = User.Identity.Name; userPackage.ModifiedTimestamp = DateTime.UtcNow; _investmentService.UpdateUserPackage(userPackage); //Create Return Interest Records List <ReturnInterest> RIList = new List <ReturnInterest>(); for (int i = 0; i < DBCPackageLifetime.Month; i++) { ReturnInterest ri = new ReturnInterest { UserPackageId = userPackage.UserPackageId, EffectiveDate = DateTime.UtcNow.AddMonths(i + 1).AddDays(1), Amount = userPackage.TotalAmount * userPackage.InterestRate, StatusId = (int)EStatus.Pending, }; _investmentService.InsertReturnInvestment(ri); } //Create Matching Bonus Records List <MatchingBonus> MBList = new List <MatchingBonus>(); User referralUser = _userService.GetReferralBy(User.Identity.GetUserId <int>()); var Rate = MatchingBonusSetting.StartingRate; for (int i = 1; i <= DBConstant.MatchingBonusSetting.Level; i++) { //Find upper level user if (referralUser == null || referralUser.UserProfile.Role.Description == DBConstant.DBCRole.Admin || referralUser.UserProfile.Role.Description == DBConstant.DBCRole.SuperAdmin) { break; } for (int y = 0; y < DBCPackageLifetime.Month; y++) { MatchingBonus mb = new MatchingBonus { UserPackageId = userPackage.UserPackageId, ReferralId = referralUser.UserId, UserId = User.Identity.GetUserId <int>(), Generation = i, Rate = Rate, ReturnDate = DateTime.UtcNow.AddMonths(y + 1).AddDays(1), BonusAmount = userPackage.TotalAmount * userPackage.InterestRate * Rate, StatusId = (int)EStatus.Pending }; _investmentService.InsertMatchingBonus(mb); } referralUser = _userService.GetReferralBy(referralUser.UserId); Rate -= MatchingBonusSetting.DecreaseRate; } //Activate user from pending if not already. var newUser = _userService.GetUserBy(userPackage.UserId); if (newUser.StatusId == (int)EStatus.Pending) { newUser.StatusId = (int)EStatus.Active; newUser.ModifiedTimestamp = DateTime.UtcNow; _userService.UpdateUser(newUser); } if (_investmentService.SaveChange(User.Identity.GetUserId <int>())) { result = EJState.Success; } else { result = EJState.Failed; } } catch (Exception ex) { Log.Error(ex.Message, ex); result = EJState.Failed; } return(Json(result, JsonRequestBehavior.AllowGet)); }
public void InsertReturnInvestment(ReturnInterest returnInterest) { _uow.Repository <ReturnInterest>().Insert(returnInterest); }