コード例 #1
0
        public ActionResult CreateCustomer([Bind(Include = "Id,Name,Email,Contact1,Contact2,Remarks")] Customer customer)
        {
            if (ModelState.IsValid)
            {
                db.Customers.Add(customer);
                db.SaveChanges();

                int     currentjobid = (int)Session["CurrentJobId"];
                JobMain job          = db.JobMains.Find(currentjobid);
                job.CustomerId = customer.Id;
                if (job.CustContactEmail == null && job.CustContactNumber == null)
                {
                    job.CustContactEmail  = job.Customer.Email;
                    job.CustContactNumber = job.Customer.Contact1;
                }

                db.Entry(job).State = EntityState.Modified;
                db.SaveChanges();

                //return RedirectToAction("Index");
                return(RedirectToAction("Services", "JobServices", new { id = currentjobid }));
            }

            return(View(customer));
        }
コード例 #2
0
        public ActionResult CreateQuotation([Bind(Include = "Id,JobDate,CustomerId,Description,NoOfPax,NoOfDays,AgreedAmt,JobRemarks,JobStatusId,StatusRemarks,BranchId,JobThruId,CustContactEmail,CustContactNumber")] JobMain jobMain, int rsvid)
        {
            if (ModelState.IsValid)
            {
                if (jobMain.CustContactEmail == null && jobMain.CustContactNumber == null)
                {
                    var cust = db.Customers.Find(jobMain.CustomerId);
                    jobMain.CustContactEmail  = cust.Email;
                    jobMain.CustContactNumber = cust.Contact1;
                }

                db.JobMains.Add(jobMain);
                db.SaveChanges();

                //link job to reservation
                linkQuotation(rsvid, jobMain.Id);

                dbc.addEncoderRecord("joborder-reservation", jobMain.Id.ToString(), HttpContext.User.Identity.Name, "Create New Job for Reservation");

                return(RedirectToAction("Index", "JobOrder", new { sortid = 1 }));
            }

            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status != "INC"), "Id", "Name", jobMain.CustomerId);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name", jobMain.BranchId);
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status", jobMain.JobStatusId);
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc", jobMain.JobThruId);

            return(View(jobMain));
        }
コード例 #3
0
        public ActionResult Create([Bind(Include = "Id,JobDate,CustomerId,Description,NoOfPax,NoOfDays,AgreedAmt,JobRemarks,JobStatusId,StatusRemarks,BranchId,JobThruId,CustContactEmail,CustContactNumber")] JobMain jobMain)
        {
            if (ModelState.IsValid)
            {
                if (jobMain.CustContactEmail == null && jobMain.CustContactNumber == null)
                {
                    var cust = db.Customers.Find(jobMain.CustomerId);
                    jobMain.CustContactEmail  = cust.Email;
                    jobMain.CustContactNumber = cust.Contact1;
                }

                db.JobMains.Add(jobMain);
                db.SaveChanges();

                dbc.addEncoderRecord("joborder", jobMain.Id.ToString(), HttpContext.User.Identity.Name, "Create New Job");


                if (jobMain.CustomerId == NewCustSysId)
                {
                    return(RedirectToAction("CreateCustomer", new { jobid = jobMain.Id }));
                }
                else
                {
                    return(RedirectToAction("Services", "JobServices", new { id = jobMain.Id }));
                }
                //return RedirectToAction("JobTable", new { span = 30 });
                //return RedirectToAction("Index");
            }

            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", jobMain.CustomerId);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name", jobMain.BranchId);
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status", jobMain.JobStatusId);
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc", jobMain.JobThruId);
            return(View(jobMain));
        }
コード例 #4
0
        public ActionResult Edit([Bind(Include = "Id,JobDate,CustomerId,Description,NoOfPax,NoOfDays,AgreedAmt,JobRemarks,JobStatusId,StatusRemarks,BranchId,JobThruId,CustContactEmail,CustContactNumber")] JobMain jobMain)
        {
            if (ModelState.IsValid)
            {
                if (jobMain.CustContactEmail == null && jobMain.CustContactNumber == null)
                {
                    var cust = db.Customers.Find(jobMain.CustomerId);
                    jobMain.CustContactEmail  = cust.Email;
                    jobMain.CustContactNumber = cust.Contact1;
                }

                db.Entry(jobMain).State = EntityState.Modified;
                db.SaveChanges();

                //if (jobMain.Customer.Name == "<< New Customer >>")
                if (jobMain.CustomerId == NewCustSysId)
                {
                    return(RedirectToAction("CreateCustomer", new { jobid = jobMain.Id }));
                }
                else
                {
                    return(Redirect((string)TempData["UrlSource"]));
                }
                //return RedirectToAction("Services", "JobServices", new { id = jobMain.Id });
                //return RedirectToAction("Index");
            }
            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", jobMain.CustomerId);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name", jobMain.BranchId);
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status", jobMain.JobStatusId);
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc", jobMain.JobThruId);
            return(View(jobMain));
        }
コード例 #5
0
        public ActionResult QuotationCreate(int id, int custid,
                                            decimal amount, string cusmail, string contact,
                                            string desc, string remarks, DateTime leadDT)
        {
            //initial values from
            JobMain job = new JobMain();

            job.JobDate           = System.DateTime.Today;
            job.NoOfDays          = 1;
            job.NoOfPax           = 1;
            job.AgreedAmt         = amount;
            job.CustContactEmail  = cusmail;
            job.CustContactNumber = contact;
            job.Description       = desc;
            job.JobRemarks        = remarks;
            job.JobDate           = leadDT;

            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name");
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status", 1);
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc");
            ViewBag.CustomerId  = new SelectList(db.Customers, "Id", "Name", custid);
            ViewBag.Id          = id;

            return(View(job));
        }
コード例 #6
0
        /// <summary>
        /// Update job
        /// </summary>
        /// <returns></returns>
        public string Update(JobMain job, string userUuid, HttpPostedFileBase JobImage, long companyId)
        {
            string error = _jobPostRepo.Update(job, userUuid);

            if (error != null)
            {
                return(error);
            }

            if (job.TagName != null && job.TagName != "")
            {
                string[] tagsList = job.TagName.Split(',');
                error = _tagService.UpdateTag(tagsList, job.JobMainId, userUuid);
                if (error != null)
                {
                    return(error);
                }
            }
            else
            {
                error = _tagService.DeleteTag(job.JobMainId);
            }

            if (JobImage != null)
            {
                error = _documentService.UploadImage(JobImage, Section.Job, userUuid, job.JobMainId);
            }

            return(error);
        }
コード例 #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            JobMain jobMain = db.JobMains.Find(id);

            db.JobMains.Remove(jobMain);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #8
0
        public ActionResult CreateCustomer(int?jobid)
        {
            JobMain job = db.JobMains.Find(jobid);

            ViewBag.JobOrder        = job;
            Session["CurrentJobId"] = job.Id;
            return(View());
        }
コード例 #9
0
        public string sendMail(int jobId, string email, string mailType)
        {
            string       siteRedirect = "https://realwheelsdavao.com/reservation/";
            JobMain      jobOrder     = db.JobMains.Find(jobId);
            EMailHandler mail         = new EMailHandler();

            return(mail.SendMail(jobId, email, mailType, jobOrder.Description, siteRedirect));
        }
コード例 #10
0
ファイル: ServiceMain.cs プロジェクト: xingx001/WinServiceJob
        protected override void OnStart(string[] args)
        {
            IJobMain jobMain = new JobMain();

            jobThread = new System.Threading.Thread(jobMain.Start);

            jobThread.Start();
            Log.Info("WinService OnStart");
        }
コード例 #11
0
        public ActionResult CloseJobActive(int?id)
        {
            JobMain job = db.JobMains.Find(id);

            job.JobStatusId     = JOBCLOSED;
            db.Entry(job).State = EntityState.Modified;
            db.SaveChanges();

            return(Redirect(Request.UrlReferrer.ToString()));
        }
コード例 #12
0
        public ActionResult CloseJob(int?id)
        {
            JobMain job = db.JobMains.Find(id);

            job.JobStatusId = JOBCLOSED;

            TempData["UrlSource"] = Request.UrlReferrer.ToString();

            return(View(job));
        }
コード例 #13
0
        public ActionResult ConfirmCloseJob([Bind(Include = "Id,JobDate,CustomerId,Description,NoOfPax,NoOfDays,AgreedAmt,JobRemarks,JobStatusId,StatusRemarks,BranchId,JobThruId")] JobMain jobMain)
        {
            //JobMain job = db.JobMains.Find(id);
            jobMain.JobStatusId     = JOBCLOSED;
            db.Entry(jobMain).State = EntityState.Modified;
            db.SaveChanges();

            return(Redirect((string)TempData["UrlSource"]));
            //return RedirectToAction("JobTable", new { span = 30 });
        }
コード例 #14
0
        public ActionResult ConfirmJob(int?id)
        {
            JobMain job = db.JobMains.Find(id);

            job.JobStatusId     = JOBCONFIRMED;
            db.Entry(job).State = EntityState.Modified;
            db.SaveChanges();

            return(Redirect(Request.UrlReferrer.ToString()));

            //return RedirectToAction("JobTable", new { span = 30 });
        }
コード例 #15
0
        // GET: JobMains/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            JobMain jobMain = db.JobMains.Find(id);

            if (jobMain == null)
            {
                return(HttpNotFound());
            }
            return(View(jobMain));
        }
コード例 #16
0
        // GET: JobMains/Create
        public ActionResult Create2(int?custid)
        {
            JobMain job = new JobMain();

            job.JobDate  = System.DateTime.Today;
            job.NoOfDays = 1;
            job.NoOfPax  = 1;

            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", custid);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name");
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status");
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc");

            return(View(job));
        }
コード例 #17
0
        public ActionResult CreateSupplier(int?Svcid)
        {
            JobServices svc = db.JobServices.Find(Svcid);
            JobMain     job = db.JobMains.Find(svc.JobMainId);

            ViewBag.JobOrder        = job;
            ViewBag.Service         = svc;
            Session["CurrentJobId"] = svc.JobMainId;
            Session["CurrentSvcId"] = svc.Id;

            ViewBag.CityId         = new SelectList(db.Cities, "Id", "Name");
            ViewBag.SupplierTypeId = new SelectList(db.SupplierTypes, "Id", "Description");

            return(View());
        }
コード例 #18
0
        public IActionResult JobMain(string searchWord, DateTime startTime, DateTime endTime)
        {
            var JobMain = new JobMain(monitorService.GetJobs());

            if (!String.IsNullOrEmpty(searchWord) && startTime > Convert.ToDateTime("01.01.0002") && endTime > Convert.ToDateTime("01.01.0002"))
            {
                JobMain = new JobMain(monitorService.GetJobs(searchWord, startTime, endTime));
            }
            if (!String.IsNullOrEmpty(searchWord) && startTime < Convert.ToDateTime("01.01.0002") && endTime < Convert.ToDateTime("01.01.0002"))
            {
                JobMain = new JobMain(monitorService.GetJobs(searchWord));
            }
            if (String.IsNullOrEmpty(searchWord) && startTime > Convert.ToDateTime("01.01.0002") && endTime > Convert.ToDateTime("01.01.0002"))
            {
                JobMain = new JobMain(monitorService.GetJobs(startTime, endTime));
            }
            return(View(JobMain));
        }
コード例 #19
0
        // GET: JobMains/Create
        public ActionResult Create2(int?custid)
        {
            JobMain job = new JobMain();

            DateTime today = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Singapore Standard Time"));

            today = today.Date;

            job.JobDate  = today;
            job.NoOfDays = 1;
            job.NoOfPax  = 1;

            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", custid);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name");
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status");
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc");

            return(View(job));
        }
コード例 #20
0
        // GET: JobMains/Create
        public ActionResult Create(int?id)
        {
            DateTime today = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Singapore Standard Time"));

            JobMain job = new JobMain();

            job.JobDate    = today;
            job.NoOfDays   = 1;
            job.NoOfPax    = 1;
            job.JobRemarks = "CASH BASIS";
            var customerlist = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", id != null? id : NewCustSysId);

            ViewBag.CustomerId  = customerlist;
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name");
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status");
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc");

            return(View(job));
        }
コード例 #21
0
        // GET: JobMains/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            JobMain jobMain = db.JobMains.Find(id);

            if (jobMain == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", jobMain.CustomerId);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name", jobMain.BranchId);
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status", jobMain.JobStatusId);
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc", jobMain.JobThruId);

            TempData["UrlSource"] = Request.UrlReferrer.ToString();
            return(View(jobMain));
        }
コード例 #22
0
        /// <summary>
        /// Save job
        /// </summary>
        /// <returns></returns>
        public string JobSave(JobMain job, string userUuid, HttpPostedFileBase JobImage, long companyId, out long JobsId)
        {
            string error = _jobPostRepo.JobSave(job, userUuid, out long jobId);

            if (error != null)
            {
                JobsId = 0;
                return(error);
            }

            JobsId = jobId;
            if (job.TagName != null && job.TagName != "")
            {
                string[] tagsList = job.TagName.Split(',');
                error = _tagService.SaveTag(tagsList, JobsId, userUuid);
                if (error != null)
                {
                    return(error);
                }
            }


            CompanyHasJob cojob = new CompanyHasJob()
            {
                JobMainId = jobId,
                CompanyId = companyId,
            };

            error = _compnyHasJobService.Save(cojob, userUuid);
            if (error != null)
            {
                return(error);
            }

            if (JobImage != null)
            {
                error = _documentService.UploadImage(JobImage, Section.Job, userUuid, jobId);
            }

            return(error);
        }
コード例 #23
0
        public ActionResult QuotationCreate([Bind(Include = "Id,JobDate,CustomerId,Description,NoOfPax,NoOfDays,AgreedAmt,JobRemarks,JobStatusId,StatusRemarks,BranchId,JobThruId,CustContactEmail,CustContactNumber")] JobMain jobMain, int leadId)
        {
            int NewCustSysId = 1;
            int jobMainId    = jobMain.Id;

            if (ModelState.IsValid)
            {
                if (jobMain.CustContactEmail == null && jobMain.CustContactNumber == null)
                {
                    var cust = db.Customers.Find(jobMain.CustomerId);
                    jobMain.CustContactEmail  = cust.Email;
                    jobMain.CustContactNumber = cust.Contact1;
                }

                db.JobMains.Add(jobMain);
                // db.SaveChanges();

                db.SalesLeadLinks.Add(new SalesLeadLink {
                    JobMainId   = jobMain.Id,
                    SalesLeadId = leadId,
                });
                db.SaveChanges();

                if (jobMain.CustomerId == NewCustSysId)
                {
                    return(RedirectToAction("CreateCustomer", "JobMains", new { jobid = jobMain.Id }));
                }
                else
                {
                    return(RedirectToAction("Services", "JobServices", new { id = jobMain.Id }));
                }
            }

            ViewBag.CustomerId  = new SelectList(db.Customers.Where(d => d.Status == "ACT"), "Id", "Name", jobMain.CustomerId);
            ViewBag.BranchId    = new SelectList(db.Branches, "Id", "Name", jobMain.BranchId);
            ViewBag.JobStatusId = new SelectList(db.JobStatus, "Id", "Status", jobMain.JobStatusId);
            ViewBag.JobThruId   = new SelectList(db.JobThrus, "Id", "Desc", jobMain.JobThruId);
            return(View(jobMain));
        }
コード例 #24
0
        /// <summary>
        /// Save job
        /// </summary>
        /// <returns></returns>
        public string JobSave(JobMain job, string userUuid, out long jobId)
        {
            using (itjob_mainEntities db = new itjob_mainEntities())
            {
                tbl_job_main tblModel = new tbl_job_main()
                {
                    id                 = 0,
                    job_type_id        = (int)job.JobTypes,
                    category_id        = job.CategoryId,
                    title              = job.Title,
                    description        = job.Description,
                    cv_accept_email_id = job.CvAcceptEmailId,
                    close_date         = job.CloseDate,
                    open_date          = job.OpenDate,
                    number_of_vacancy  = job.NumberOfVacancy,
                    added_by           = userUuid,
                    updated_by         = userUuid,
                    added_date         = DateTime.Now,
                    updated_date       = DateTime.Now,
                    is_active          = true,
                    web_approval       = (int)Approval.pending,
                };
                db.tbl_job_main.Add(tblModel);


                try
                {
                    db.SaveChanges();
                    jobId = tblModel.id;
                    return(null);
                }
                catch (Exception ex)
                {
                    jobId = 0;
                    return(ex.Message.ToString());
                }
            }
        }
コード例 #25
0
        // GET: CarReservations/CreateQuotation
        public ActionResult CreateQuotation(int?id, int rsvId, string dtStart, string dtEnd, string renter, string details, int rentType, int unit, decimal rate, string renterNum, string renterEmail)
        {
            DateTime today = DateTime.Today.AddDays(1);

            today = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(today, TimeZoneInfo.Local.Id, "Singapore Standard Time");
            string   unitdesc = db.CarUnits.Find(unit).Description;
            DateTime DtStart  = DateTime.Parse(dtStart);
            DateTime DtEnd    = DateTime.Parse(dtEnd);
            int      days     = (int)DtEnd.Subtract(DtStart).TotalDays;

            JobMain job = new JobMain();

            job.JobDate           = today;
            job.NoOfDays          = days == 0 ? 1 : days;
            job.NoOfPax           = 1;
            job.Description       = renter + " - " + details;
            job.JobRemarks        = rentType == 0 ? unitdesc + " - With Driver" : unitdesc + " - Self Drive";
            job.AgreedAmt         = rate;
            job.CustContactEmail  = renterEmail;
            job.CustContactNumber = renterNum;


            if (id == null)
            {
                ViewBag.CustomerId = new SelectList(db.Customers.Where(d => d.Status != "INC"), "Id", "Name", NewCustSysId);
            }
            else
            {
                ViewBag.CustomerId = new SelectList(db.Customers.Where(d => d.Status != "INC"), "Id", "Name", id);
            }
            ViewBag.ReservationId = rsvId;
            ViewBag.BranchId      = new SelectList(db.Branches, "Id", "Name");
            ViewBag.JobStatusId   = new SelectList(db.JobStatus, "Id", "Status", JOBCONFIRMED);
            ViewBag.JobThruId     = new SelectList(db.JobThrus, "Id", "Desc");

            return(View(job));
        }
コード例 #26
0
ファイル: Program.cs プロジェクト: xingx001/WinServiceJob
        static void Main(string[] args)
        {
            IJobMain jobMain = new JobMain();

            jobMain.Start();
        }
コード例 #27
0
        public ActionResult Webhook()
        {
            // The APIContext object can contain an optional override for the trusted certificate.
            var apiContext = PayPalConfiguration.GetAPIContext();

            // Get the received request's headers
            var requestheaders = HttpContext.Request.Headers;

            // Get the received request's body
            var requestBody = string.Empty;

            using (var reader = new System.IO.StreamReader(HttpContext.Request.InputStream))
            {
                requestBody = reader.ReadToEnd();
            }

            //get event data from the request body
            dynamic  jsonBody        = JObject.Parse(requestBody);
            string   webhookId       = jsonBody.id;
            string   paypalID        = jsonBody.resource.id;
            decimal  Totalamount     = (decimal)jsonBody.resource.amount.total;
            DateTime paypalEventDate = (DateTime)jsonBody.create_time;
            DateTime paypalTransDate = (DateTime)jsonBody.resource.create_time;

            var ev = WebhookEvent.Get(apiContext, webhookId);

            // We have all the information the SDK needs, so perform the validation.
            // Note: at least on Sandbox environment this returns false.
            // var isValid = WebhookEvent.ValidateReceivedEvent(apiContext, ToNameValueCollection(requestheaders), requestBody, webhookId);

            //add record on the Notification table
            //Note: remove if events are successful. Notification table is used for sms notifications.
            DB.addTestNotification(1, "1");

            //get jobid from CUSTOM object field
            //int jobId =  (int)jsonBody.resource.custom ; // bookingid ,
            //PPtrans.AddPaypalNotif("1", 1, paypalEventDate, paypalTransDate, ev.event_type, Totalamount);

            //get job id from invoice number
            //PPtrans.AddPaypalNotif(paypalID, jobId, paypalEventDate, paypalTransDate, ev.event_type, Totalamount);
            //jobId = (int)jsonBody.resource.invoice_number;
            // DB.addTestNotification(jobId, paypalID);

            //get job description
            JobMain      jobOrder     = db.JobMains.Find(1);
            string       clientName   = jobOrder.Description;
            EMailHandler mail         = new EMailHandler();
            string       siteRedirect = "https://realwheelsdavao.com/reservation/";

            /* Handle transaction request from paypal webhook events
             * switch (ev.event_type)
             * {
             *  case "PAYMENT.CAPTURE.COMPLETED":
             *  case "PAYMENT.SALE.COMPLETED": // Handle payment completed
             *      //record payment
             *      AddPaymentRecord(jobId, Totalamount);
             *
             *      //send mail
             *      mail.SendMail(jobId, "*****@*****.**", "PAYMENT-SUCCESS", clientName, siteRedirect);
             *      //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-SUCCESS", clientName, siteRedirect);
             *      //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-SUCCESS", clientName, siteRedirect);
             *
             *      //add to log
             *      PPtrans.AddPaypalNotif(paypalID, jobId, paypalEventDate, paypalTransDate, ev.event_type, Totalamount);
             *      break;
             *  case "PAYMENT.SALE.DENIED":
             *  case "PAYMENT.CAPTURE.DENIED": // Handle payment denied
             *
             *      //send mail
             *      mail.SendMail(jobId, "*****@*****.**", "PAYMENT-DENIED", clientName, siteRedirect);
             *      //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-DENIED", clientName, siteRedirect);
             *      //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-DENIED", clientName, siteRedirect);
             *
             *      //add to log
             *      PPtrans.AddPaypalNotif(paypalID, jobId, paypalEventDate, paypalTransDate, ev.event_type, Totalamount);
             *
             *      break;
             *  // Handle other webhooks
             *  default: // Handle payment denied
             *      //send mail
             *      mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect);
             *      //mail.SendMail2(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect, ev.event_type);
             *      //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect);
             *      //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect);
             *
             *      //add to log
             *      PPtrans.AddPaypalNotif(paypalID, jobId, paypalEventDate, paypalTransDate, ev.event_type, Totalamount);
             *
             *      break;
             * }
             */

            //AddPaymentRecord(jobId, Totalamount);
            //add to log
            //PPtrans.AddPaypalNotif(paypalID, jobId, paypalEventDate, paypalTransDate, ev.event_type, Totalamount);

            //send mail
            //mail.SendMail(1, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect);
            //mail.SendMail2(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect, ev.event_type);
            //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect);
            //mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName, siteRedirect);

            return(new HttpStatusCodeResult(200));
        }
コード例 #28
0
        public ActionResult Webhook()
        {
            // The APIContext object can contain an optional override for the trusted certificate.
            var apiContext = PayPalConfiguration.GetAPIContext();

            // Get the received request's headers
            var requestheaders = HttpContext.Request.Headers;

            // Get the received request's body
            var requestBody = string.Empty;

            using (var reader = new System.IO.StreamReader(HttpContext.Request.InputStream))
            {
                requestBody = reader.ReadToEnd();
            }

            dynamic jsonBody    = JObject.Parse(requestBody);
            string  webhookId   = jsonBody.id;
            string  paypalID    = jsonBody.resource.id;
            decimal Totalamount = (decimal)jsonBody.resource.amount.total;
            int     jobId       = (int)jsonBody.resource.invoice_number; // bookingid
            var     ev          = WebhookEvent.Get(apiContext, webhookId);

            // We have all the information the SDK needs, so perform the validation.
            // Note: at least on Sandbox environment this returns false.
            // var isValid = WebhookEvent.ValidateReceivedEvent(apiContext, ToNameValueCollection(requestheaders), requestBody, webhookId);

            // DB.addTestNotification(jobId, paypalID);
            //get job description
            JobMain      jobOrder   = db.JobMains.Find(jobId);
            string       clientName = jobOrder.Description;
            EMailHandler mail       = new EMailHandler();

            switch (ev.event_type)
            {
            case "PAYMENT.CAPTURE.COMPLETED":
            case "PAYMENT.SALE.COMPLETED":     // Handle payment completed
                //record payment
                AddPaymentRecord(jobId, Totalamount);

                //send mail
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-SUCCESS", clientName);
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-SUCCESS", clientName);
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-SUCCESS", clientName);

                //add to log
                DB.addTestNotification(jobId, paypalID);
                break;

            case "PAYMENT.SALE.DENIED":
            case "PAYMENT.CAPTURE.DENIED":     // Handle payment denied

                //send mail
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-DENIED", clientName);
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-DENIED", clientName);
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-DENIED", clientName);

                //add to log
                DB.addTestNotification(jobId, paypalID);
                break;

            // Handle other webhooks
            default:     // Handle payment denied
                //send mail
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName);
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName);
                mail.SendMail(jobId, "*****@*****.**", "PAYMENT-PENDING", clientName);

                //add to log
                DB.addTestNotification(jobId, paypalID);

                break;
            }

            return(new HttpStatusCodeResult(200));
        }