Exemple #1
0
        public async Task <JsonResult> AjaxTravelToStation(string entry, string exit)
        {
            using (var db = new QLessEntities())
            {
                var item = db.TransportCards.FirstOrDefault(x => x.TransportCardId == TransportCardId);

                decimal priceOfTravel = db.getMRT2TravelPriceFromPointAtoPointB(entry, exit);
                decimal discount      = 0.0M;
                if (item.TodaysNumberOfTravel <= 4)
                {
                    discount = (decimal)item.TransportCardRole.TransportCardRoleDiscount;
                }
                else
                {
                    discount = 0.0M;
                }

                decimal priceToDeduct = priceOfTravel - (priceOfTravel * discount);


                item.CurrentLoad = (int)priceToDeduct;

                item.TodaysNumberOfTravel = item.TodaysNumberOfTravel + 1;

                await db.SaveChangesAsync();

                return(Json(new ReturnValue {
                    CurrentLoad = (int)item.CurrentLoad, DeductedAmount = (int)priceToDeduct
                }));
            }
        }
Exemple #2
0
        public static QLessTransportCardManager Create(IdentityFactoryOptions <QLessTransportCardManager> options, IOwinContext context)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            QLessEntities             db      = context.Get <QLessEntities>();
            QLessTransportCardManager manager = new QLessTransportCardManager(new TransportCardStore(db));

            // Configure validation logic for usernames
            manager.UserValidator = new UserValidator <TransportCard, int>(manager)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail             = true
            };
            manager.UserLockoutEnabledByDefault          = true;
            manager.DefaultAccountLockoutTimeSpan        = TimeSpan.FromMinutes(5);
            manager.MaxFailedAccessAttemptsBeforeLockout = 5;


            IDataProtectionProvider dataProtectionProvider = options.DataProtectionProvider;

            if (dataProtectionProvider != null)
            {
                manager.UserTokenProvider =
                    new DataProtectorTokenProvider <TransportCard, int>(dataProtectionProvider.Create("ASP.NET Identity"));
            }
            return(manager);
        }
Exemple #3
0
        public async Task <IList <string> > GetRolesAsync(TransportCard user)
        {
            IList <string> roles = new List <string>();

            using (var q = new QLessEntities())
            {
                roles.Add(q.TransportCardRoles
                          .FirstOrDefault(x => x.TransportCardRoleId == user.TransportCardRoleId).TransportCardRoleName);
            }

            return(await Task.FromResult(roles));
        }
Exemple #4
0
        public async Task <JsonResult> AjaxLoadTransportCard(int loadValue)
        {
            using (var db = new QLessEntities())
            {
                var item = db.TransportCards.FirstOrDefault(x => x.TransportCardId == TransportCardId);
                item.CurrentLoad += loadValue;

                await db.SaveChangesAsync();
            }

            return(Json(true));
        }
Exemple #5
0
 private void Dispose(bool disposing)
 {
     if (!_disposed)
     {
         _disposed = true;
         if (disposing)
         {
             if (Db != null)
             {
                 Db.Dispose();
                 Db = null;
             }
         }
     }
 }
Exemple #6
0
        public ActionResult Index()
        {
            HomeViewModel viewModel;

            using (var db = new QLessEntities())
            {
                var transportCard = db.TransportCards.FirstOrDefault(x => x.TransportCardId == TransportCardId);

                var transportRoleName = transportCard.TransportCardRole.TransportCardRoleName;
                var currentLoad       = transportCard.CurrentLoad;

                viewModel = new HomeViewModel
                {
                    TransportCardType = transportRoleName,
                    CurrentLoad       = (decimal)currentLoad
                };
            }
            return(View(viewModel));
        }
Exemple #7
0
        public async Task <ActionResult> RegisterDiscounted(DiscountRegistrationViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    using (var db = new QLessEntities())
                    {
                        var transportCard = db.TransportCards.FirstOrDefault(x => x.TransportCardId == TransportCardId);

                        transportCard.IsPWD           = model.IsPWD;
                        transportCard.IsSeniorCitizen = model.IsSeniorCitizen;
                        if (model.IsPWD)
                        {
                            transportCard.IsSeniorCitizen = model.IsSeniorCitizen;
                        }
                        if (model.IsSeniorCitizen)
                        {
                            transportCard.SeniorCitizenNumber = model.SeniorCitizenControlNumber;
                        }

                        await db.SaveChangesAsync();
                    }
                }
                catch (DbEntityValidationException dbEntityEx)
                {
                    foreach (DbEntityValidationResult ex in dbEntityEx.EntityValidationErrors)
                    {
                        foreach (DbValidationError validationError in ex.ValidationErrors)
                        {
                            ModelState.AddModelError("", $"{validationError.PropertyName} - {validationError.ErrorMessage}");
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.ToString());
                }
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #8
0
 public TransportCardStore(QLessEntities db)
 {
     _db = db;
 }
Exemple #9
0
 public GenericRepository(QLessEntities db)
 {
     Db = db;
 }