コード例 #1
0
        public IActionResult FetchMaitenanceRequest()
        {
            try
            {
                int tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);

                var activeRequest   = new List <MaintenanceRequest>();
                var inactiveRequest = new List <MaintenanceRequest>();
                var tenant          = Methods.Methods.GetTenant(tenantID);
                var Requests        = Methods.Methods.RetrieveMaitenanceRequests(tenant.PropertyID);

                foreach (var request in Requests)
                {
                    if (request.ActiveRequest)
                    {
                        activeRequest.Add(request);
                    }
                    else
                    {
                        inactiveRequest.Add(request);
                    }
                }
                return(Json(new { active = activeRequest, inactive = inactiveRequest }));
            }
            catch (Exception ex)
            {
                return(Ok(ex));
            }
        }
コード例 #2
0
        public IActionResult GetPaymentInfo()
        {
            var tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
            var tenant   = Methods.Methods.GetTenant(tenantID);

            //New tenants with no previous payment method
            if (tenant.StripeID == "")
            {
                return(Json(new { success = false }));
            }

            //Tenants who has a payment method on file, but needs to verify a bank account
            if (tenant.StripeIsVerified == false)
            {
                BankAccount bank = StripeService.GetBankAccount(tenant);
                return(Json(new { success = true, isVerified = false, paymentInfo = bank }));
            }

            //Tenant who has payment method on file, and ready to make payments.
            if (tenant.StripeIsVerified == true)
            {
                BankAccount bank = StripeService.GetBankAccount(tenant);
                return(Json(new { success = true, isVerified = true, paymentInfo = bank }));
            }
            return(BadRequest());
        }
コード例 #3
0
        public IActionResult VerifyBankAccount(string first, string second)
        {
            var tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
            var tenant   = Methods.Methods.GetTenant(tenantID);

            var deposits = new List <string>();

            deposits.Add(first);
            deposits.Add(second);
            try
            {
                if (StripeService.VerifyBankAccount(tenant, deposits))
                {
                    return(Json(new { success = true }));
                }
                else
                {
                    return(Json(new { success = false, error = "Could not verify bank." }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, error = ex.Message }));
            }
        }
コード例 #4
0
        public IActionResult GetInvoices()
        {
            try
            {
                var            tenantID       = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
                List <Invoice> paidInvoices   = new List <Invoice>();
                List <Invoice> unPaidInvoices = new List <Invoice>();
                var            tenant         = Methods.Methods.GetTenant(tenantID);
                var            invoices       = Methods.Methods.GetInvoices(tenant.PropertyID);

                foreach (var invoice in invoices)
                {
                    if (invoice.PaidInFull)
                    {
                        paidInvoices.Add(invoice);
                    }
                    else
                    {
                        unPaidInvoices.Add(invoice);
                    }
                }

                return(Json(new { success = true, paidInvoices = paidInvoices, unPaidInvoices = unPaidInvoices }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, error = ex.Message }));
            }
        }
コード例 #5
0
        public IActionResult GetEmploymentInfo()
        {
            var tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);

            var details = SQLStatements.GetEmploymentDetails(tenantID);

            return(Json(new { success = true, data = details }));
        }
コード例 #6
0
        public IActionResult GetPersonalInfo()
        {
            var tenantID     = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
            var personalInfo = SQLStatements.GetPersonalInformation(tenantID);

            if (personalInfo != null)
            {
                return(Json(new { success = true, data = personalInfo }));
            }
            else
            {
                return(Json(new { success = false, error = "No personal info found." }));
            }
        }
コード例 #7
0
        public IActionResult GetLastPayment()
        {
            var tenantId = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
            var tenant   = Methods.Methods.GetTenant(tenantId);

            if (tenant == null || tenant.PropertyID == 10 || tenant.PropertyID == 0)
            {
                return(Json(new { success = false, error = "invalid tenant" }));
            }

            var payment = SQL.SQLStatements.GetLastPayment(tenant.TenantID);

            return(Json(new { success = true, data = payment }));
        }
コード例 #8
0
 public IActionResult CountRequests()
 {
     try
     {
         var tenantId = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
         var tenant   = Methods.Methods.GetTenant(tenantId);
         var Count    = SQL.SQLStatements.CountMtnceRequests(tenant.PropertyID);
         return(Json(new { success = true, data = Count }));
     }
     catch (Exception ex)
     {
         return(Ok(ex));
     }
 }
コード例 #9
0
 public IActionResult NewInvoicePayment(decimal payment, decimal fee, int invoiceID)
 {
     try
     {
         var tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
         InvoiceService.PayInvoice(invoiceID, tenantID, payment, fee);
         return(Json(new { success = true }));
     }
     catch (Exception ex)
     {
         Console.Write(ex.Message);
         return(Json(new { success = false, error = ex.Message }));
     }
 }
コード例 #10
0
        public IActionResult GetWidgetInfo()
        {
            try
            {
                var      tenantId      = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
                Tenant   CurrentTenant = Methods.Methods.GetTenant(tenantId);
                Property FillWidget    = SQL.SQLStatements.GetWidgetInfo(CurrentTenant.PropertyID); //hardcoded TenantID

                return(Json(new { success = true, Data = FillWidget }));
            }

            catch
            {
                return(Json(new { success = false, error = "Bad TenantID" }));
            }
        }
コード例 #11
0
        public IActionResult UpdatePersonalInfo(string firstName, string lastName, string emailAddress, string phoneNumber)
        {
            var tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);

            if (firstName != null && lastName != null && emailAddress != null && phoneNumber != null)
            {
                PersonalInformation info = Methods.Methods.UserInputPersonalInformation(tenantID, firstName, lastName, phoneNumber, emailAddress);

                if (SQLStatements.UpdatePersonalInformation(info))
                {
                    return(Json(new { success = true }));
                }

                return(Json(new { success = false, error = "DB Error" }));
            }
            else
            {
                return(Json(new { success = false, error = "Invalid URL input" }));
            }
        }
コード例 #12
0
        public IActionResult UpdateBillingInfo(string StripeToken)
        {
            //FIRST: check if Stripe customer exists,
            // If true: get stripe customer ID, send token, and store bank_id in DB
            // If false: Create stripe customer and send token (one call), then store bank_id in DB

            var tenantID   = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
            var isTypeBank = true; //hardcoded type
            var isVerified = false;

            if (isTypeBank)
            {
                isVerified = false;
            }

            if (StripeToken == null)
            {
                return(Json(new { success = false, error = "No Stripe Token provided." }));
            }

            var currentTenant = Methods.Methods.GetTenant(tenantID);

            //Check if Stripe customer doesnt exist, create one. Else, update customer in Stripe.
            if (currentTenant.StripeID == "" || currentTenant.StripeID == null)
            {
                if (StripeService.CreateCustomer(currentTenant, StripeToken, isVerified))
                {
                    return(Json(new { success = true }));
                }
                return(Json(new { success = false, error = "Could not create Stripe customer." }));
            }
            else
            {
                var tenant = Methods.Methods.GetTenant(tenantID);
                StripeService.UpdateCustomer(tenant.TenantID, tenant.StripeID, StripeToken, isVerified);

                return(Json(new { success = true, isVerified = isVerified, hasBillingInfo = true }));
            }
        }
コード例 #13
0
        public IActionResult UpdateEmploymentInfo(string employer, string jobTitle)
        {
            var tenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);
            EmploymentDetails details = new EmploymentDetails();

            details.TenantID = tenantID;
            details.Employer = employer;
            details.JobTitle = jobTitle;

            bool success = false;

            success = SQLStatements.UpdateEmploymentDetails(details);

            if (success)
            {
                return(Json(new { success = true, }));
            }
            else
            {
                return(Json(new { success = false, error = "An unknown error occured." }));
            }
        }
コード例 #14
0
        public IActionResult MakeMaintenanceRequest(string summary, string description)
        {
            int TenantID = CookieHandler.GetCurrentUserID(Request.Cookies["AuthToken"]);

            MaintenanceRequest MaintenanceRequest = new MaintenanceRequest();

            if (summary != null && description != null)
            {
                MaintenanceRequest = Methods.Methods.CreateMaintenanceRequest(TenantID, summary, description);

                if (SQL.SQLStatements.AddMaintenanceRequest(MaintenanceRequest))
                {
                    EmailService.SendEmail(MaintenanceRequest);
                    return(Json(new { success = true }));
                }

                return(Json(new { success = false, error = "DB Error" }));
            }
            else
            {
                return(Json(new { success = false, error = "Request must have a description and summary" }));
            }
        }