public IActionResult MyPackage() { CustomerCard card = _cardService.GetCurrentUserCard(_userManager.GetUserId(HttpContext.User)); Package package = _packageService.GetById(card.Package.Id); SetBox SetBox = _sbService.GetById(card.SetBox.Id); Customer cus = _cusService.GetByUser(_userManager.GetUserId(HttpContext.User)); DateTime expire = _cpService.GetExpirationTime(cus.Id); CustomerPackage cp = _cpService.GetByCardId(card.Id); string status = UpdatePakageStatus(cp, expire); MyPackageViewModel model = new MyPackageViewModel { MyPackage = new PackageDetailViewModel { PackageName = package.PackageName, NoOfChannels = package.NoOfChannels, Charges = package.Charges, ImageUrl = package.ImageUrl }, MySetBox = new SetBoxDetailModel { Name = SetBox.Name, Specification = SetBox.Specification, Price = SetBox.Price, ImageUrl = SetBox.ImageUrl }, GetExpiration = expire, State = status }; return(View(model)); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var card = _cardService.GetCardByNumber(model.Customercard); if (!_customerService.IsCustomer(card.Id)) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { Customer cus = new Customer { ApplicationUser = user, CustomerCard = card, CustomerName = card.OwnerName }; _customerService.Add(cus); CustomerPackage cp = _customerPackage.GetByCardId(card.Id); cp.Customer = cus; _customerPackage.Update(cp); await _userManager.AddToRoleAsync(user, "User"); } if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created a new account with password."); return(RedirectToLocal(returnUrl)); } AddErrors(result); } ModelState.AddModelError(model.Customercard, "User account already exists on this card number"); return(View(model)); } // If we got this far, something failed, redisplay form return(View(model)); }
private string UpdatePakageStatus(CustomerPackage cp, DateTime expire) { if (expire < DateTime.Now) { cp.Status = _statusService.GetByName("Recharged"); _cpService.Update(cp); return(cp.Status.Name); } else { return(cp.Status.Name); } }
public async Task <IActionResult> Create([Bind("Id,OwnerName,ContactNumber,Address,CardNumber,SubscribeDate", "PackageId", "SetBoxId")] CardAddModel model) { if (ModelState.IsValid) { CustomerCard customerCard = new CustomerCard() { Address = model.Address, SubscribeDate = model.SubscribeDate, CardNumber = model.CardNumber, ContactNumber = model.ContactNumber, OwnerName = model.OwnerName, Package = await _context.Packages.FirstOrDefaultAsync(p => p.Id == model.PackageId), SetBox = await _context.SetBoxes.FirstOrDefaultAsync(s => s.Id == model.SetBoxId) }; await _context.CustomerCards.AddAsync(customerCard); CustomerPackage cp = new CustomerPackage { CustomerCard = customerCard, NumberOfMonths = 0, ExpirationDate = DateTime.Now, Package = await _context.Packages.FirstOrDefaultAsync(p => p.Id == model.PackageId), Status = await _context.Status.SingleOrDefaultAsync(s => s.Name == "Recharged") }; await _context.CustomerPackages.AddAsync(cp); NewSetBoxRequest request = new NewSetBoxRequest() { Card = customerCard, Setbox = await _context.SetBoxes.FirstOrDefaultAsync(s => s.Id == model.SetBoxId), Status = await _context.Status.SingleOrDefaultAsync(s => s.Name == "AdminApproved") }; await _context.NewSetBoxRequest.AddAsync(request); var Subscriber = await _context.NewSubscribes. Include(s => s.Package). Include(s => s.SetBox). SingleOrDefaultAsync(s => s.Id == model.Id); _context.Update(Subscriber); Subscriber.Status = await _context.Status.FirstOrDefaultAsync(st => st.Name == "AdminApproved"); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(model)); }
public void Update(CustomerPackage newCp) { _con.Update(newCp); _con.SaveChanges(); }
public void Add(CustomerPackage newCp) { _con.Add(newCp); _con.SaveChanges(); }