Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 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));
        }
Esempio n. 5
0
 public void Update(CustomerPackage newCp)
 {
     _con.Update(newCp);
     _con.SaveChanges();
 }
Esempio n. 6
0
 public void Add(CustomerPackage newCp)
 {
     _con.Add(newCp);
     _con.SaveChanges();
 }