Exemplo n.º 1
0
        public async Task<ActionResult> TenDollarPromo()
        {
            try
            {
                var accountStatement = new AccountStatementRepository();

                var promo = new AccountStatement 
                { 
                    User = User.Identity.Name,
                    Credit = 10,
                    CurrentBalance = 10,
                    TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                    Description = "Early adopter $10 promo"                    
                };

                accountStatement.Create(promo);
                return Json(new { success = true, responseText = "Added." }, JsonRequestBehavior.AllowGet);
                
            }
            catch(Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return Json(new { success = false, responseText = ex.Message }, JsonRequestBehavior.AllowGet);
            }
        }
Exemplo n.º 2
0
        public async Task <bool> Withdraw(decimal amountToWithdraw, string accountNumber, string user)
        {
            var accountBalanceRepo = new AccountStatementRepository();
            var currentBalance     = await accountBalanceRepo.GetCurrentBalance(user);

            var returnValue = false;

            var withdrawalRepo = new WithdrawalRepository();

            var charges      = Decimal.Multiply(amountToWithdraw, (decimal)0.10);
            var actualAmount = amountToWithdraw - (charges);

            currentBalance = currentBalance - charges;
            returnValue    = await accountBalanceRepo.CreateSync(new AccountStatement
            {
                User            = user,
                Debit           = charges,
                CurrentBalance  = currentBalance,
                TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                Description     = "parkSmartly transaction fee"
            });

            if (returnValue)
            {
                currentBalance = currentBalance - actualAmount;
                await accountBalanceRepo.CreateSync(new AccountStatement
                {
                    User            = user,
                    Debit           = actualAmount,
                    CurrentBalance  = currentBalance,
                    TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                    Description     = "Actual withdrawn amount"
                });
            }
            else
            {
                return(returnValue);
            }

            if (returnValue)
            {
                await withdrawalRepo.CreateSync(new Withdrawal
                {
                    User             = user,
                    AccountNumber    = accountNumber,
                    AmountToWithdraw = amountToWithdraw,
                    ActualAmount     = actualAmount,
                    DateWithdrawal   = Helper.SetDateForMongo(DateTime.Now)
                });
            }
            else
            {
                return(returnValue);
            }

            return(false);
        }
Exemplo n.º 3
0
        public async Task<bool> Withdraw(decimal amountToWithdraw, string accountNumber, string user)
        {
            var accountBalanceRepo = new AccountStatementRepository();
            var currentBalance = await accountBalanceRepo.GetCurrentBalance(user);

            var returnValue = false;
            
            var withdrawalRepo = new WithdrawalRepository();

            var charges = Decimal.Multiply(amountToWithdraw, (decimal)0.10);
            var actualAmount = amountToWithdraw - (charges);

            currentBalance = currentBalance - charges;
            returnValue = await accountBalanceRepo.CreateSync(new AccountStatement
            {
                User = user,
                Debit = charges,
                CurrentBalance = currentBalance,
                TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                Description = "cordovaBuild transaction fee"
            });

            if (returnValue)
            {
                currentBalance = currentBalance - actualAmount;
                await accountBalanceRepo.CreateSync(new AccountStatement
                {
                    User = user,
                    Debit = actualAmount,
                    CurrentBalance = currentBalance,
                    TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                    Description = "Actual withdrawn amount"
                });
            }
            else
            {
                return returnValue;
            }

            if (returnValue)
            {
                await withdrawalRepo.CreateSync(new Withdrawal
                {
                    User = user,
                    AccountNumber = accountNumber,
                    AmountToWithdraw = amountToWithdraw,
                    ActualAmount = actualAmount,
                    DateWithdrawal = Helper.SetDateForMongo(DateTime.Now)
                });
            }
            else
            {
                return returnValue;
            }

            return false;
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Account()
        {
            var accountStatementRepo = new AccountStatementRepository();
            var model = await accountStatementRepo.GetStatement(User.Identity.Name);

            var currentBalance = await accountStatementRepo.GetCurrentBalance(User.Identity.Name);

            ViewBag.CurrentBalance = currentBalance;
            return(View(model));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> TenDollarPromo()
        {
            try
            {
                var accountStatement = new AccountStatementRepository();

                var promo = new AccountStatement
                {
                    User            = User.Identity.Name,
                    Credit          = 10,
                    CurrentBalance  = 10,
                    TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                    Description     = "Early adopter $10 promo"
                };

                accountStatement.Create(promo);
                return(Json(new { success = true, responseText = "Added." }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(Json(new { success = false, responseText = ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }
Exemplo n.º 6
0
 public async Task<ActionResult> Account()
 {
     var accountStatementRepo = new AccountStatementRepository();
     var model = await accountStatementRepo.GetStatement(User.Identity.Name);
     var currentBalance = await accountStatementRepo.GetCurrentBalance(User.Identity.Name);
     ViewBag.CurrentBalance = currentBalance;
     return View(model);
 }
Exemplo n.º 7
0
        public async Task<ActionResult> Post(Space space)
        {
            try
            {
                var postRepo = new PostRepository();

                switch (space.AvailabilityType)
                {
                    case "Specific Date" :
                        if (space.Availability.SpecificDate == DateTime.MinValue)
                        {
                            Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                            return Json(new { success = false, responseText = "Invalid specific date." }, JsonRequestBehavior.AllowGet);
                        }
                        break;
                    case "Date Range":
                        if (space.Availability.DateFrom == DateTime.MinValue || space.Availability.DateTo == DateTime.MinValue)
                        {
                            Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                            return Json(new { success = false, responseText = "Invalid date range." }, JsonRequestBehavior.AllowGet);
                        }
                        break;
                }
                space.Availability.DateFrom = DateTime.SpecifyKind(space.Availability.DateFrom, DateTimeKind.Utc);
                space.Availability.DateTo = DateTime.SpecifyKind(space.Availability.DateTo, DateTimeKind.Utc);
                space.Availability.SpecificDate = DateTime.SpecifyKind(space.Availability.SpecificDate, DateTimeKind.Utc);

                var data = new Data.Model.Space
                {
                    User = User.Identity.Name,
                    Address = space.Address,
                    latitude = space.latitude,
                    longitude = space.longitude,
                    VehicleType = space.VehicleType,
                    NumberOfSlot = space.NumberOfSlot,
                    AvailabilityType = space.AvailabilityType,
                    Availability = space.Availability,
                    Price = space.Price,
                    Instructions = space.Instructions,
                    DatePosted = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc)
                };

                await postRepo.CreateSync(data);

                

                var accountStatement = new AccountStatementRepository();
                var amount = await accountStatement.GetCurrentBalance(User.Identity.Name) + 10;
                var promo = new AccountStatement
                {
                    User = User.Identity.Name,
                    Credit = 10,
                    CurrentBalance = amount,
                    TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                    Description = "Early adopter $10 promo"
                };

                accountStatement.Create(promo);


                return Json(new { success = true, responseText = "Added.", id = data.Id.ToString() }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return Json(new { success = false, responseText = ex.Message }, JsonRequestBehavior.AllowGet);
            }

        }
Exemplo n.º 8
0
        public async Task <ActionResult> Post(Space space)
        {
            try
            {
                var postRepo = new PostRepository();

                switch (space.AvailabilityType)
                {
                case "Specific Date":
                    if (space.Availability.SpecificDate == DateTime.MinValue)
                    {
                        Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                        return(Json(new { success = false, responseText = "Invalid specific date." }, JsonRequestBehavior.AllowGet));
                    }
                    break;

                case "Date Range":
                    if (space.Availability.DateFrom == DateTime.MinValue || space.Availability.DateTo == DateTime.MinValue)
                    {
                        Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                        return(Json(new { success = false, responseText = "Invalid date range." }, JsonRequestBehavior.AllowGet));
                    }
                    break;
                }
                space.Availability.DateFrom     = DateTime.SpecifyKind(space.Availability.DateFrom, DateTimeKind.Utc);
                space.Availability.DateTo       = DateTime.SpecifyKind(space.Availability.DateTo, DateTimeKind.Utc);
                space.Availability.SpecificDate = DateTime.SpecifyKind(space.Availability.SpecificDate, DateTimeKind.Utc);

                var data = new Data.Model.Space
                {
                    User             = User.Identity.Name,
                    Address          = space.Address,
                    Country          = space.Country,
                    City             = space.City,
                    latitude         = space.latitude,
                    longitude        = space.longitude,
                    VehicleType      = space.VehicleType,
                    NumberOfSlot     = space.NumberOfSlot,
                    AvailabilityType = space.AvailabilityType,
                    Availability     = space.Availability,
                    Price            = space.Price,
                    Instructions     = space.Instructions,
                    DatePosted       = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc)
                };

                await postRepo.CreateSync(data);



                var accountStatement = new AccountStatementRepository();
                var amount           = await accountStatement.GetCurrentBalance(User.Identity.Name) + 10;

                var promo = new AccountStatement
                {
                    User            = User.Identity.Name,
                    Credit          = 10,
                    CurrentBalance  = amount,
                    TransactionDate = Helper.SetDateForMongo(DateTime.Now),
                    Description     = "Early adopter $10 promo"
                };

                accountStatement.Create(promo);


                return(Json(new { success = true, responseText = "Added.", id = data.Id.ToString() }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(Json(new { success = false, responseText = ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }