public bool GenrateRegistration(ISequenceMaster sequenceMaster, IConsolidatorProfile consolidatorProfile, DBContext context) { DateTime CurrentDatetime = DateTime.Now; //Validate Sponsor int? SpNid = null; List <int> AllSpNid = new List <int>(); if (this.SpTcId != null && this.SpTcId.Length > 0) { SpNid = consolidatorProfile.GetNId(this.SpTcId, true); if (SpNid == 0) { throw new Exception("Invalid Sponsor Nid"); } AllSpNid = consolidatorProfile.GetAllSpNid(SpNid.Value); AllSpNid.Add(SpNid.Value); } this.TcId = sequenceMaster.GenrateSequence(this.state_id); tblRegistration tr = new tblRegistration() { Id = TcId, FirstName = first_name, MiddleName = middle_name ?? "", LastName = last_name, Husband_father_name = husband_father_name, Gender = gender, Dob = this.Dob.Value, JoiningState = state_id, SpNid = SpNid, SpId = SpTcId, Isblock = false, IsTerminate = false, is_active = (enmApprovalType)8, IsKycUpdated = enmIsKycUpdated.No, JoiningDt = CurrentDatetime, SpLegNumber = SpNid.HasValue?(consolidatorProfile.GetNidLegCount(SpNid.Value) + 1):1, TCRanks = enmTCRanks.Level1 }; context.tblRegistration.Add(tr); context.SaveChanges(); TcNId = tr.Nid; context.tblTree.AddRange(AllSpNid.Select(p => new tblTree { TcNid = TcNId, TcSpNid = p }).ToList()); tblTcAddressDetail tblTcAddressDetail = new tblTcAddressDetail() { AddressType = enmAddressType.Permanent, address_line1 = this.address_line1, address_line2 = this.address_line2, StateId = this.state_id, CountryId = this.country_id, TcNid = TcNId, IsDeleted = false, CityId = null, CreatedBy = 0, CreatedDt = CurrentDatetime, ModifiedBy = 0, ModifiedDt = CurrentDatetime }; context.tblTcAddressDetail.Add(tblTcAddressDetail); context.SaveChanges(); tblTcRanksDetails tblTcRanksDetails = new tblTcRanksDetails() { TCRanks = enmTCRanks.Level1, TcNid = TcNId, QualifyDate = CurrentDatetime, PPRequired = 0, PPDone = 0, Isdeleted = false }; context.tblTcRanksDetails.Add(tblTcRanksDetails); context.SaveChanges(); tblTcEmail tblTCEmail = new tblTcEmail() { EmailID = this.EmailAddress, TcNid = TcNId, Isdeleted = false, CreatedBy = 0, CreatedDt = CurrentDatetime, lastModifiedBy = 0, LastModifieddate = CurrentDatetime }; context.TblTcEmail.Add(tblTCEmail); context.SaveChanges(); tblTcContact tblTCContact = new tblTcContact() { MobileNo = this.PhoneNo, TcNid = TcNId, Isdeleted = false, CreatedBy = 0, CreatedDt = CurrentDatetime, lastModifiedBy = 0, LastModifieddate = CurrentDatetime }; context.TblTcContact.Add(tblTCContact); context.SaveChanges(); return(true); }
public async Task <IActionResult> AddWalletAsync([FromServices] ICurrentUsers currentUsers, mdlWallet mdl, [FromServices] IConsolidatorProfile consolidator) { if (ModelState.IsValid) { int TcNiD = 0; if (mdl.SpTcId != null && mdl.SpTcId.Length > 0) { TcNiD = consolidator.GetNId(mdl.SpTcId, true); if (TcNiD == 0) { ModelState.AddModelError("", "Invalid TC ID !!!"); } } decimal credit_amt = mdl.TransactionType == (enmWalletTransactiontype)1 ? mdl.WalletAmt : 0; decimal debit_amt = mdl.TransactionType == (enmWalletTransactiontype)2 ? mdl.WalletAmt : 0; DateTime todaydate = Convert.ToDateTime(DateTime.Now.ToString("dd-MMM-yyyy")); var data = _context.tblTCwalletlog.Where(p => p.TcNid == TcNiD && p.credit == credit_amt && p.debit == debit_amt && p.createddatetime >= todaydate && p.createddatetime <= todaydate.AddDays(1)).FirstOrDefault(); if (data != null) { ModelState.AddModelError("", "Same Date with same Amount entry already exists !!!"); return(View(mdl)); } var ExistingData = _context.tblTCwallet.FirstOrDefault(p => p.TcNid == TcNiD); if (ExistingData != null) { ExistingData.TcNid = TcNiD; ExistingData.walletamt = ExistingData.walletamt + mdl.WalletAmt; _context.tblTCwallet.Update(ExistingData); } else { _context.tblTCwallet.Add(new tblTCWallet { TcNid = TcNiD, walletamt = mdl.WalletAmt, }); } _context.tblTCwalletlog.Add(new tblTCWalletLog() { TcNid = TcNiD, credit = credit_amt, debit = debit_amt, createdby = currentUsers.EmpId, createddatetime = DateTime.Now, remarks = mdl.Remarks, reqno = 0, groupid = 0, }); await _context.SaveChangesAsync(); return(RedirectToAction("AddWallet", new { _enmSaveStatus = enmSaveStatus.success, _enmMessage = enmMessage.SaveSucessfully })); } return(View(mdl)); }