private dynamic HandleSaleorderDetailPage(dynamic arg) { if (!this.CurrentUser.HasClaim("admin")) { return(403); } var id = (int)arg.id; var so = this.SiteDatabase.GetById <SaleOrder>(id); var dummyPage = new Page(); var data = new { SaleOrder = so, PaymentLogs = so.GetPaymentLogs(this.SiteDatabase), RowVerions = so.GetRowVersions(this.SiteDatabase), PaymentMethods = StatusList.GetAllStatus <PaymentMethod>() }; return(View["/Admin/saleorderdetailmanager", new StandardModel(this, dummyPage, data)]); }
private dynamic HandleSupportPage(dynamic arg) { var id = (string)arg.saleOrderIdentifier; var so = this.SiteDatabase.Query <SaleOrder>() .Where(row => row.SaleOrderIdentifier == id) .FirstOrDefault(); if (so == null) { return(404); } //var isExpired = so.PaymentStatus == PaymentStatus.WaitingForPayment // && so.Status == SaleOrderStatus.Confirmed // && (so.__createdAt.AddDays(14) < DateTime.Now); //if (isExpired) //{ // so.Status = SaleOrderStatus.Cancel; // this.SiteDatabase.UpsertRecord(so); //} var statusList = StatusList.GetAllStatus <SaleOrderStatus>(); var paymentStatusList = StatusList.GetAllStatus <PaymentStatus>(); var dummyPage = new Page(); var data = new { StatusList = statusList, PaymentStatusList = paymentStatusList, SaleOrder = so, PaymentLogs = so.GetPaymentLogs(this.SiteDatabase) }; return(View["commerce-support", new StandardModel(this, dummyPage, data)]); }
private dynamic HandleSupportPage(dynamic arg) { var id = (string)arg.saleOrderIdentifier; var so = this.SiteDatabase.Query <SaleOrder>() .Where(row => row.SaleOrderIdentifier == id) .FirstOrDefault(); if (so == null) { return(404); } so.SiteSettings = null; Func <dynamic> response = () => { // after 30 days, if no payment - we cancel it var isExpired = so.PaymentStatus == PaymentStatus.WaitingForPayment && so.Status == SaleOrderStatus.Confirmed && (so.__createdAt.AddDays(30) < DateTime.Now); if (isExpired) { so.Status = SaleOrderStatus.Cancel; this.SiteDatabase.UpsertRecord(so); } so.EnsuresSerialNumberVisible(this.SiteDatabase); var statusList = StatusList.GetAllStatus <SaleOrderStatus>(); var paymentStatusList = StatusList.GetAllStatus <PaymentStatus>(); var dummyPage = new Page(); var data = new { StatusList = statusList, PaymentStatusList = paymentStatusList, SaleOrder = so, PaymentLogs = so.GetPaymentLogs(this.SiteDatabase) }; return(View["commerce-support", new StandardModel(this, dummyPage, data)]); }; if (this.Request.Form.key != null) { string key = ((string)this.Request.Form.key).Trim(); if (so.Customer != null && (so.Customer.PhoneNumber == key || so.Customer.Email == key)) { return(response()); } } if (this.CurrentUser.HasClaim("Admin") && this.Request.Url.HostName.StartsWith("local.") == false) { return(response()); } if (this.CurrentUser.IsAnonymous) { return(View["commerce-support-login", new StandardModel(this, new Page(), new object())]); } // check whether this user has bought this sale order if (so.Customer == null || so.Customer.User == null) { return(View["commerce-support-login", new StandardModel(this, new Page(), new object())]); } if (so.Customer.User.Id != this.CurrentUser.Id) { return(View["commerce-support-login", new StandardModel(this, new Page(), new object())]); } return(response()); }