public ActionResult Index() { var currentsite = SiteCacher.CurrentSite; using (CurrentSiteSettings settings = new CurrentSiteSettings(currentsite)) { _viewModel.CMSPage = _service.GetPageMetadata(Site.ID, WBHelper.CurrentLangID(), Request.RawUrl); } int UserID = 0; if (User.Identity.IsAuthenticated) { _viewModel.CurrentUserName = loginuser.Details.FirstName + " " + loginuser.Details.LastName; if (loginuser != null && loginuser.Details != null) { UserID = loginuser.Details.ID; } else if (User.Identity.IsAuthenticated && !string.IsNullOrEmpty(User.Identity.Name)) { if (loginuser != null && loginuser.Details != null) { UserID = loginuser.Details.ID; } } } if (ContractID.Equals(0)) { ContractID = WBSSLStore.Web.Helpers.WBHelper.GetCurrentContractID(UserID, Site.ID); } _viewModel.Items = _service.GetAllProductPricing(currentsite.ID, ContractID); return(View(_viewModel)); }
public ActionResult ActivateAccount(string email, string redirect = "Accounts") { var user = db.Users.FirstOrDefault(u => u.Email == email); if (user != null) { user.AccountStatus = AccountStatusConstant.ACTIVE; } db.SaveChanges(); string body = "Hello " + user.FirstName + ", your WizBooklat account has been activated. Please login <a href='http://wizbooklat.azurewebsites.net/Account/Login/'>here.</a>"; string fromName = "WizBooklat Registration"; string subject = "WizBooklat Account has been Activated!"; //+ DateTime.UtcNow.AddHours(8).ToString("MM-dd-yy"); try { WBHelper.SendEmail(fromName, subject, body, user.Email, user.FirstName); } catch (Exception e) { return(Content(e.Message)); } TempData["Message"] = "<strong>Account has been activated.</strong> We've sent a notification to " + user.Email + "."; return(RedirectToAction(redirect)); }
public ViewResult Pricing() { int ContractID = WBHelper.GetCurrentContractID(LoginUser.ID, Site.ID); var pricing = _repoPricing.Find(p => p.SiteID == Site.ID && p.RecordStatusID == (int)RecordStatus.ACTIVE && p.ContractID == ContractID).Include(p => p.Product).Include(p => p.Contract).ToList(); return(View(pricing)); }
private void GetMetaDataAndContext(string slug, CurrentSiteSettings settings) { _viewModel.CMSPage = _service.GetPageMetadata(Site.ID, WBHelper.CurrentLangID(), "/" + slug); if (_viewModel.CMSPage != null) { ReplaceMetaTag(); _viewModel.CMSPageContent = _service.GetPageContent(_viewModel.CMSPage.ID); //get Data For if (_viewModel.CMSPageContent != null && !string.IsNullOrEmpty(_viewModel.CMSPageContent.PageContent)) { //_viewModel.CMSPageContent.PageContent = ReplacePriceControl(_viewModel.CMSPageContent.PageContent, settings); } else if (_viewModel.CMSPageContent != null && string.IsNullOrEmpty(_viewModel.CMSPageContent.PageContent)) { _viewModel.CMSPageContent.PageContent = "<h1>Set Content of your Page.</h1>"; } else if (_viewModel.CMSPageContent == null) { _viewModel.CMSPageContent = new CMSPageContent(); _viewModel.CMSPageContent.PageContent = "<h1>Set Content of your Page.</h1>"; } } else { _viewModel.CMSPage = new CMSPage(); _viewModel.CMSPageContent = new CMSPageContent(); _viewModel.CMSPageContent.PageContent = "<h1>Set Content of your Page.</h1>"; } }
public ActionResult Preferences(FormCollection collection) { if (!string.IsNullOrEmpty(collection["txtPassword"])) { string PasswordHash = WBHelper.CreatePasswordHash(collection["txtPassword"].ToString(), LoginUser.PasswordSalt); WBSSLStore.Domain.User objUser = LoginUser; objUser.ConfirmPassword = PasswordHash; objUser.PasswordHash = PasswordHash; _repository.Update(objUser); _unitOfWork.Commit(); var _emailservice = DependencyResolver.Current.GetService <IEmailQueueService>(); if (LoginUser.UserType == UserType.CUSTOMER) { _emailservice.PrepareEmailQueue(Site.ID, WBHelper.CurrentLangID(), EmailType.CUSTOMER_CHANGE_PASSWORD, SiteCacher.SiteSMTPDetail().ID, LoginUser.Email, LoginUser); } else { _emailservice.PrepareEmailQueue(Site.ID, WBHelper.CurrentLangID(), EmailType.RESELLER_CHANGE_PASSWORD_EMAIL, SiteCacher.SiteSMTPDetail().ID, LoginUser.Email, LoginUser); } _unitOfWork.Commit(); ViewBag.Message = "<div class='alert-success'>" + WBSSLStore.Resources.GeneralMessage.Message.Pwdchanged + "</div>"; return(View(LoginUser)); } else { ViewBag.Message = "<div class='alert-danger'>" + WBSSLStore.Resources.ErrorMessage.Message.PasswordRequired + "</div>"; return(View(LoginUser)); } }
private void SendMailForResellerSignUp(ResellerSignup objReseller) { try { var ToEmail = Site.Settings.Where(ss => ss.SiteID == Site.ID && ss.Key.ToLower() == SettingConstants.CURRENT_SITE_TOEMAIL.ToLower()).FirstOrDefault(); SiteSettings thankyou = Site.Settings.Where(o => o.Key == WBSSLStore.Domain.SettingConstants.CURRENT_SITE_THANKYOUPAGE && o.SiteID == Site.ID).FirstOrDefault(); var objEmailQue = DependencyResolver.Current.GetService <WBSSLStore.Service.IEmailQueueService>(); WBSSLStore.Domain.User objUser = new Domain.User(); objUser.FirstName = objReseller.FirstName; objUser.LastName = objReseller.LastName; objUser.Email = objReseller.Email; objUser.Address = new Address(); objUser.Address.Street = objReseller.Street; objUser.Address.City = objReseller.City; objUser.Address.CompanyName = objReseller.CompanyName; objUser.Address.Country = new Country(); objUser.Address.Country.CountryName = objReseller.CountryName; objUser.Address.State = objReseller.State; objUser.Address.Fax = objReseller.Fax; objUser.Address.Phone = objReseller.Phone; objUser.CompanyName = objReseller.CountryName; objUser.HeardBy = objReseller.HearedBy; objEmailQue.PrepareEmailQueue(Site.ID, WBHelper.CurrentLangID(), EmailType.ADMIN_NEW_RESELLER, SiteCacher.SiteSMTPDetail().ID, !string.IsNullOrEmpty(Convert.ToString(ToEmail.Value)) ? Convert.ToString(ToEmail.Value) : "*****@*****.**", objUser); objEmailQue.PrepareEmailQueue(Site.ID, WBHelper.CurrentLangID(), EmailType.RESELLER_WELCOME_EMAIL, SiteCacher.SiteSMTPDetail().ID, Convert.ToString(objReseller.Email), objUser); _unitOfWork.Commit(); } catch (Exception ex) { throw ex; } }
public void ExportToCSV(FormCollection collection) { List <SelectListItem> lstheader = new List <SelectListItem>(); lstheader.Add(new SelectListItem() { Text = "Order Date", Value = "TransactionDate" }); lstheader.Add(new SelectListItem() { Text = "Last Transaction Details", Value = "TransactionDetail" }); lstheader.Add(new SelectListItem() { Text = "Type", Value = "TransactionMode" }); lstheader.Add(new SelectListItem() { Text = "Payment-Amount", Value = "PaymentAmount" }); lstheader.Add(new SelectListItem() { Text = "Payment Mode", Value = "PaymentMode" }); lstheader.Add(new SelectListItem() { Text = "Credit", Value = "CreditAmount" }); WBHelper.GetCSVFile <AccountStatement>(GetUserTransData(collection), lstheader, "Statement"); }
public ActionResult resetadpassword(User user, FormCollection collection) { Site Site = GetSite(user.SiteID); string msg = string.Empty; if (user.ID > 0) { User objUser = _repository.FindByID(user.ID); objUser.PasswordSalt = WBHelper.CreateSalt(); objUser.PasswordHash = WBHelper.CreatePasswordHash(collection["txtPassword"], objUser.PasswordSalt); objUser.ConfirmPassword = objUser.PasswordHash; _repository.Update(objUser); _unitOfWork.Commit(); msg = "<div class='normsg'>Password changed successfully. <a href='" + Request.Url.Scheme + "://" + Site.Alias + "/logon" + "'>Click here</a> to login.</div>"; } else { msg = "<div class='normsg'>Error during Password change process. Please try again.</div>"; } return(Json(new { d = msg }, JsonRequestBehavior.AllowGet)); }
public ActionResult contactuspost(FormCollection collection) { string CompanyName = string.Empty; string Name = string.Empty; string Phone = string.Empty; string Email = string.Empty; string Comment = string.Empty; string Subject = string.Empty; try { CompanyName = Convert.ToString(collection["txtCompany"]); Name = Convert.ToString(collection["txtFullname"]); Phone = Convert.ToString(collection["txtPhone"]); Email = Convert.ToString(collection["txtEmail"]); Comment = Convert.ToString(collection["txtComment"]); var subject = Site.Settings.Where(ss => ss.SiteID == Site.ID && ss.Key == SettingConstants.CURRENT_SITE_SUBJECTFEIELD).FirstOrDefault(); var ToEmail = Site.Settings.Where(ss => ss.SiteID == Site.ID && ss.Key.ToLower() == SettingConstants.CURRENT_SITE_TOEMAIL.ToLower()).FirstOrDefault(); SiteSettings thankyou = Site.Settings.Where(o => o.Key == WBSSLStore.Domain.SettingConstants.CURRENT_SITE_THANKYOUPAGE && o.SiteID == Site.ID).FirstOrDefault(); Subject = Convert.ToString(subject.Value); var objEmailQue = DependencyResolver.Current.GetService <WBSSLStore.Service.IEmailQueueService>(); string[] strValues = new string[] { CompanyName, Name, Phone, Email, Comment, Subject }; objEmailQue.PrepareEmailQueue(Site.ID, WBHelper.CurrentLangID(), EmailType.CONTACTUS_EMAIL, SiteCacher.SiteSMTPDetail().ID, Convert.ToString(ToEmail.Value), strValues); _unitOfWork.Commit(); } catch (Exception ex) { Logger.Logger.Log_Exception(ex); return(Json(new { issuccess = "false" }, JsonRequestBehavior.AllowGet)); } return(Json(new { issuccess = "true" }, JsonRequestBehavior.AllowGet)); }
public void ExportDataToCSV(string Name, string Email) { var cutomers = _service.GetCustomerList(Site.ID, Name, Email).OrderBy(ord => ord.TotalPurchase).ThenBy(t => t.CompanyName).ThenBy(n => n.FirstName); List <SelectListItem> lstheader = new List <SelectListItem>(); lstheader.Add(new SelectListItem() { Text = "First Name", Value = "FirstName" }); lstheader.Add(new SelectListItem() { Text = "Last Name", Value = "LastName" }); lstheader.Add(new SelectListItem() { Text = "Reseller Since", Value = "RegisterDate" }); lstheader.Add(new SelectListItem() { Text = "Total Purchase", Value = "TotalPurchase" }); lstheader.Add(new SelectListItem() { Text = "IsActive", Value = "RecordStatusID" }); WBHelper.GetCSVFile <UserExt>(cutomers.ToList(), lstheader, "CustomerList"); }
public ActionResult Edit(User user) { ViewBag.Country = CountryList.ToArray(); ViewBag.Message = string.Empty; if (ModelState.IsValid) { if (_repository.Find(u => u.Email.ToLower().Equals(user.Email) && u.ID != user.ID && u.SiteID == user.SiteID).FirstOrDefault() == null) { user.AuditDetails.DateModified = DateTimeWithZone.Now; user.AuditDetails.ByUserID = user.ID; user.AuditDetails.HttpHeaderDump = Request.Headers.ToString(); user.AuditDetails.IP = Request.UserHostAddress; _service.SaveCustomer(user, WBHelper.CurrentLangID(), SiteCacher.SiteSMTPDetail().ID); ViewBag.Message = "<div class='alert-success'>" + WBSSLStore.Resources.GeneralMessage.Message.SavedSuccessfully + "</div>"; //ViewBag.Message = WBSSLStore.Resources.ErrorMessage.Message.SavedSuccessfully; return(View(user)); } else { ViewBag.Message = "<div class='alert-danger'>" + WBSSLStore.Resources.GeneralMessage.Message.EmailExists + "</div>"; //ViewBag.Message = WBSSLStore.Resources.ErrorMessage.Message.EmailExists; return(View(user)); } } else { return(View(user)); } }
public void ExportDataToCSV(string ResellerName, string Email, RecordStatus?eRecordStatus, DateTime dtStartDate, DateTime dtEndDate, decimal MinPrice, decimal MaxPrice) { var resellers = _service.GetResellerData(Site.ID, ResellerName, Email, eRecordStatus, dtStartDate, dtEndDate, MinPrice, MaxPrice).OrderBy(ord => ord.TotalPurchase).ThenBy(t => t.CompanyName).ThenBy(n => n.FirstName); List <SelectListItem> lstheader = new List <SelectListItem>(); lstheader.Add(new SelectListItem() { Text = "First Name", Value = "FirstName" }); lstheader.Add(new SelectListItem() { Text = "Last Name", Value = "LastName" }); lstheader.Add(new SelectListItem() { Text = "Contract Name", Value = "ContractName" }); lstheader.Add(new SelectListItem() { Text = "Reseller Since", Value = "RegisterDate" }); lstheader.Add(new SelectListItem() { Text = "Total Purchase", Value = "TotalPurchase" }); lstheader.Add(new SelectListItem() { Text = "IsActive", Value = "RecordStatusID" }); WBHelper.GetCSVFile <UserExt>(resellers.ToList(), lstheader, "ResellerList"); }
private void SetPricing(int BrandID, string code = "") { int UserID = 0; if (User.Identity.IsAuthenticated) { if (loginuser != null && loginuser.Details != null) { UserID = loginuser.Details.ID; } else if (User.Identity.IsAuthenticated && !string.IsNullOrEmpty(User.Identity.Name)) { if (loginuser != null && loginuser.Details != null) { UserID = loginuser.Details.ID; } } } if (ContractID.Equals(0)) { ContractID = WBHelper.GetCurrentContractID(UserID, Site.ID); } _viewModel.Items = _service.GetProductPricing(Site.ID, 0, ContractID, BrandID, code); }
public override bool ValidateUser(string username, string password) { bool result = false; bool AlreadyChecked = false; //Checks if User has already being checked during lifetime of this request. if (HttpContext.Current.Items["SSLMEMBERSHIPVALIDATEUSER" + ApplicationName] != null) { result = Convert.ToBoolean(HttpContext.Current.Items["SSLMEMBERSHIPVALIDATEUSER" + ApplicationName].ToString()); AlreadyChecked = true; } if (AlreadyChecked == false) { repo = DependencyResolver.Current.GetService <IRepository <User> >(); User usertemp = repo.Find(x => x.Email == username && x.SiteID == siteid && x.RecordStatusID == 1).FirstOrDefault(); if (usertemp != null && usertemp.ID > 0 && usertemp.PasswordHash == WBHelper.CreatePasswordHash(password, usertemp.PasswordSalt)) { result = true; } HttpContext.Current.Items["SSLMEMBERSHIPVALIDATEUSER" + ApplicationName] = result; } return(result); }
public ActionResult DisableAccount(string email, string redirect = "Accounts") { var user = db.Users.FirstOrDefault(u => u.Email == email); if (user != null) { user.AccountStatus = AccountStatusConstant.DISABLED; string body = "Hello " + user.FirstName + ", your WizBooklat account has been deactivated. Please <a href='http://wizbooklat.azurewebsites.net/Home/Index#Contact'>contact</a> an administrator to reactivate."; string fromName = "WizBooklat Account Service"; string subject = "WizBooklat Account Deactivated"; //+ DateTime.UtcNow.AddHours(8).ToString("MM-dd-yy"); try { WBHelper.SendEmail(fromName, subject, body, user.Email, user.FirstName); } catch (Exception e) { return(Content(e.Message)); } } db.SaveChanges(); TempData["Message"] = "<strong>Account has been disabled.</strong> We've sent a notification to " + user.Email + "."; return(RedirectToAction(redirect)); }
public ActionResult Forgotpassword(FormCollection collection) { string EmailAddress = Convert.ToString(Request.Form["txtEmailAddress"]); if (!string.IsNullOrEmpty(EmailAddress)) { ViewBag.Message = _service.SendForgotPasswordEmail(EmailAddress, WBHelper.CurrentLangID(), SiteCacher.SiteSMTPDetail().ID, Site.ID, WBSiteSettings.AppPath + "/resetpassword?token="); } return(View()); }
public ActionResult ssltools() { _viewModel.CMSPage = _service.GetPageMetadata(Site.ID, WBHelper.CurrentLangID(), Request.Url.AbsolutePath); ReplaceMetaTag(); if (User.Identity.IsAuthenticated) { _viewModel.CurrentUserName = loginuser.Details.FirstName + " " + loginuser.Details.LastName; } return(View(_viewModel)); }
//public bool AddEdit(ResellerContract resellercontract) public bool AddEdit(CusUserUserOption resellercontract) { try { bool bIsEmailExist = _service.EmailExist(resellercontract.objResContract.Reseller.Email, Site.ID, resellercontract.objResContract.Reseller.ID); if (bIsEmailExist) { ViewBag.IsUserExist = true; return(false); } else { ViewBag.IsUserExist = false; } //resellercontract.Reseller.AuditDetails.ID = resellercontract.Reseller.AuditID; resellercontract.objResContract.Reseller.AuditDetails.DateModified = DateTimeWithZone.Now; resellercontract.objResContract.Reseller.AuditDetails.ByUserID = CurrentUser.ID; resellercontract.objResContract.Reseller.AuditDetails.HttpHeaderDump = HttpUtility.UrlDecode(Request.Headers.ToString()); resellercontract.objResContract.Reseller.AuditDetails.IP = Request.UserHostAddress; // resellercontract.AuditID = resellercontract.AuditDetails.ID; resellercontract.objResContract.AuditDetails.DateModified = DateTimeWithZone.Now; resellercontract.objResContract.AuditDetails.ByUserID = 0; resellercontract.objResContract.AuditDetails.HttpHeaderDump = "admin system"; resellercontract.objResContract.AuditDetails.IP = Request.UserHostAddress; resellercontract.objResContract.Reseller.UserType = UserType.RESELLER; resellercontract.objResContract.Reseller.UserTypeID = (int)UserType.RESELLER; if (resellercontract.objResContract.UserID == 0) { resellercontract.objResContract.Reseller.AuditDetails.DateCreated = DateTimeWithZone.Now; resellercontract.objResContract.AuditDetails.DateCreated = DateTimeWithZone.Now; resellercontract.objResContract.Reseller.SiteID = Site.ID; resellercontract.objResContract.SiteID = Site.ID; resellercontract.objResContract.Reseller.PasswordSalt = WBSSLStore.Web.Helpers.WBHelper.CreateSalt(); resellercontract.objResContract.Reseller.PasswordHash = WBSSLStore.Web.Helpers.WBHelper.CreatePasswordHash(resellercontract.objResContract.Reseller.PasswordHash, resellercontract.objResContract.Reseller.PasswordSalt); resellercontract.objResContract.Reseller.ConfirmPassword = resellercontract.objResContract.Reseller.PasswordHash; } if (resellercontract.objUserOption.ID == 0) { resellercontract.objUserOption.SiteID = Site.ID; resellercontract.objUserOption.DateAdded = DateTimeWithZone.Now; } return(_service.SaveReseller(resellercontract.objResContract, WBHelper.CurrentLangID(), SiteCacher.SiteSMTPDetail().ID, resellercontract.objUserOption)); } catch (Exception exc) { ViewBag.ErrMsg = exc.Message.ToString(); return(false); } }
public ActionResult AddFund(FormCollection collection, int ID) { User currentuser = null; if (User.Identity.IsAuthenticated) { SSLStoreUser loginuser = (SSLStoreUser)Membership.GetUser(); if (loginuser != null && loginuser.Details != null) { currentuser = loginuser.Details; } } var _user = DependencyResolver.Current.GetService <IRepository <User> >(); User objUser = _user.Find(u => u.ID == ID && u.SiteID == Site.ID).FirstOrDefault(); if (Convert.ToDecimal(collection["txtAmount"]) != 0) { if (objUser != null) { Audit audit = new Audit(); audit.ByUserID = currentuser.ID; audit.DateCreated = DateTimeWithZone.Now; audit.HttpHeaderDump = HttpUtility.UrlDecode(Request.Headers.ToString()); audit.IP = Request.UserHostAddress; UserTransaction usertransaction = new UserTransaction(); usertransaction.AuditDetails = audit; usertransaction.TransactionModeID = (int)TransactionMode.ADDFUND; usertransaction.ReceipientInstrumentDetails = collection["txtReceiptDetails"]; usertransaction.Comment = collection["txtRemark"]; usertransaction.TransactionAmount = Convert.ToDecimal(collection["txtAmount"]); usertransaction.UserID = ID; usertransaction.SiteID = Site.ID; _repository.Add(usertransaction); _unitOfWork.Commit(); var _newusertransaction = _repository.Find(ut => ut.ID == usertransaction.ID) .EagerLoad(ut => ut.User) .FirstOrDefault(); _service.PrepareEmailQueue(Site.ID, WBHelper.CurrentLangID(), EmailType.ADMIN_ADD_FUND_NOTIFICATION, SiteCacher.SiteSMTPDetail().ID, SiteAdminEmail, _newusertransaction); _unitOfWork.Commit(); return(RedirectToAction("edit", objUser.UserType.ToString().ToLower(), new { id = ID })); } } else { ViewBag.AmountMsg = WBSSLStore.Resources.ErrorMessage.Message.AmtGreaterthanzero; } return(View()); }
public ActionResult CancellationRequest(SupportRequest supportrequest, FormCollection collection) { if (ModelState.IsValid && collection != null) { Audit audit = new Audit(); audit.ByUserID = user.ID; audit.DateCreated = System.DateTimeWithZone.Now; audit.DateModified = System.DateTimeWithZone.Now; audit.HttpHeaderDump = HttpUtility.UrlDecode(System.Web.HttpContext.Current.Request.Headers.ToString()); audit.IP = System.Web.HttpContext.Current.Request.UserHostAddress; SupportRequest sr = new SupportRequest(); sr.isOpen = true; sr.OrderDetailID = Convert.ToInt32(collection["requestid"]); sr.RefundStatusID = Convert.ToInt16(collection["RefundStatusID"]); sr.SiteID = Site.ID; sr.SupportTypeID = (int)SupportType.REFUNDREQUEST; sr.UserID = user.ID; sr.ExternalIncidentID = string.Empty; sr.AuditDetails = audit; sr.Subject = @WBSSLStore.Resources.GeneralMessage.Message.RefundRequest_Caption + "-" + @WBSSLStore.Resources.GeneralMessage.Message.Invoice_Header + "#" + (collection["IncidentID"]); sr.User = user; sr.Reason = collection["ddlReason"]; SupportDetail sd = new SupportDetail(); sd.AuditDetails = audit; sd.SupportRequest = sr; sd.StaffNote = ""; sd.Comments = "<span><b>" + user.FirstName + " " + user.LastName + " ( " + DateTimeWithZone.Now + " )</b></span><p>" + collection["txtcomment"] + "<p/>"; _viewModel.Add(sd); _unitOfWork.Commit(); var _newsupportdetail = _viewModel.Find(d => d.ID == sd.ID) .EagerLoad(d => d.SupportRequest, d => d.SupportRequest.User, d => d.SupportRequest.OrderDetail) .FirstOrDefault(); _newsupportdetail.SupportRequest.OrderDetail.InvoiceNumber = WBHelper.InvoicePrefix(Site) + _newsupportdetail.SupportRequest.OrderDetail.OrderID; var _emailService = DependencyResolver.Current.GetService <IEmailQueueService>(); if (sd.SupportRequest.User.UserType == UserType.RESELLER) { _emailService.PrepareEmailQueue(Site.ID, LangID, EmailType.RESELLER_SUPPORT_NOTIFICATION, SMTPID, sd.SupportRequest.User.Email, _newsupportdetail); } else { _emailService.PrepareEmailQueue(Site.ID, LangID, EmailType.CUSTOMER_SUPPORT_NOTIFICATION, SMTPID, sd.SupportRequest.User.Email, _newsupportdetail); } //send mail to admin _emailService.PrepareEmailQueue(Site.ID, LangID, EmailType.ADMIN_SUPPORT_NOTIFICATION, SMTPID, WBHelper.SiteAdminEmail(Site), _newsupportdetail); _unitOfWork.Commit(); } return(RedirectToAction("index")); }
public ViewResult Detail(int id) { ViewBag.ProductPricingID = 0; var _supportreq = DependencyResolver.Current.GetService <IRepository <SupportRequest> >(); SupportRequest objSppReq = _supportreq.Find(y => y.OrderDetailID == id && y.SupportTypeID == (int)SupportType.REFUNDREQUEST).FirstOrDefault(); if (objSppReq != null) { if (objSppReq.OrderDetailID == id) { ViewBag.CancelationRequest = "Cancel"; } } OrderDetail orderdetail = _repository.Find(x => x.ID == id) .EagerLoad(o => o.Order, o => o.Product, o => o.CertificateRequest, o => o.AuditDetails, o => o.StoreAPIInteraction, o => o.CertificateRequest.AdminContact, o => o.CertificateRequest.TechnicalContact, o => o.Product) .FirstOrDefault(); if (orderdetail != null && orderdetail.Price > 0) { var _usertransaction = DependencyResolver.Current.GetService <IRepository <UserTransaction> >(); UserTransaction objTrans = _usertransaction.Find(ut => ut.OrderDetailID == id && ut.PaymentID != null) .EagerLoad(ut => ut.Payment, ut => ut.Payment.GatewayInteraction) .FirstOrDefault(); if (objTrans != null) { ViewBag.PaymentType = objTrans.Payment.PaymentMode.GetEnumDescription <PaymentMode>(); ViewBag.AuthCode = objTrans.Payment.GatewayInteraction.GatewayAuthCode; } } if (orderdetail != null && !string.IsNullOrEmpty(orderdetail.ExternalOrderID) && orderdetail.OrderStatus != OrderStatus.REJECTED && orderdetail.OrderStatus != OrderStatus.REFUNDED) { if (orderdetail.OrderStatus == OrderStatus.ACTIVE && (orderdetail.CertificateExpiresOn.Value - DateTimeWithZone.Now.Date).Days <= 30) { var _PricingRepo = DependencyResolver.Current.GetService <IRepository <ProductPricing> >(); int ContractID = WBHelper.GetCurrentContractID(orderdetail.Order.UserID, Site.ID); ProductPricing objPrice = _PricingRepo.Find(pp => pp.ProductID == orderdetail.Product.ID && pp.NumberOfMonths == orderdetail.NumberOfMonths && pp.ContractID == ContractID).FirstOrDefault(); if (objPrice != null) { ViewBag.ProductPricingID = objPrice.ID; } } GetOrderstatusThruRESTAPI(orderdetail, Site); } return(View(orderdetail)); }
public void ExportDataToCSV(OrderStatus?eOrderStatus, DateTime dtStartDate, DateTime dtEndDate) { var orderdetail = GetDateWiseOrders(eOrderStatus, dtStartDate, dtEndDate).ToList(); List <string> lstData = new List <string>(); lstData.Add("Order Date,OrderID,Product Name,InvoiceID,Domain Name,Order Status,Price,"); foreach (OrderDetail ord in orderdetail) { lstData.Add(ord.AuditDetails.DateCreated.ToShortDateString() + "," + ord.ExternalOrderID + "," + ord.ProductName + "," + InvoicePrefix + ord.OrderID + "," + (string.IsNullOrEmpty(ord.CertificateRequest.DomainName) ? "-" : ord.CertificateRequest.DomainName) + "," + ord.OrderStatus + "," + ord.Price.ToString("c").Replace(",", string.Empty)); } WBHelper.GetCSVFile(lstData, "OrderList"); }
private void ExportDataToCSV(FormCollection collection) { List <OrderDetail> lstorderdetail = getSearchModel(collection).ToList(); List <string> lstData = new List <string>(); lstData.Add("Order Date,OrderID,Product Name,InvoiceID,Domain Name,Order Status,Price,"); foreach (OrderDetail ord in lstorderdetail) { lstData.Add(ord.AuditDetails.DateCreated.ToShortDateString() + "," + ord.ExternalOrderID + "," + ord.ProductName + "," + InvoicePrefix + ord.OrderID + "," + (string.IsNullOrEmpty(ord.CertificateRequest.DomainName) ? "-" : ord.CertificateRequest.DomainName) + "," + ord.OrderStatus + "," + ord.Price.ToString("c").Replace(",", string.Empty)); } WBHelper.GetCSVFile(lstData, "OrderList"); }
// // GET: /Client/Support/Create public ActionResult CancellationRequest(int id) { OrderDetail ord = _service.FindByID(id); if (ord != null) { ViewBag.OrderDetailID = ord.ID; ViewBag.IncidentID = WBHelper.InvoicePrefix(Site) + ord.OrderID; ViewBag.ProductName = ord.ProductName; ViewBag.ExOrderID = ord.ExternalOrderID; } ViewBag.Username = user != null ? user.FirstName + " " + user.LastName : string.Empty; SupportRequest _supportrequest = DependencyResolver.Current.GetService <SupportRequest>(); return(View(_supportrequest)); }
// // GET: /Authentication/User/ private ActionResult Redirect301(string slug, string Host) { if (Host.IndexOf('.') > 0 && !(Host.Split('.').Length > 2)) { if (WBHelper.IsRunWithWWW(Site) && !slug.Contains("www.")) { return(Redirect(slug.Replace(Host, "www." + Host))); } else if (!WBHelper.IsRunWithWWW(Site) && slug.Contains("www.")) { return(Redirect(slug.Replace("www.", ""))); } } return(Redirect(slug)); }
public ActionResult SendEmail() { SiteSMTP smtpSettings = _service.Find(ss => ss.SiteID == Site.ID).FirstOrDefault(); string returnMSG = string.Empty; using (System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient()) { smtpClient.EnableSsl = smtpSettings.UseSSL; smtpClient.UseDefaultCredentials = (!string.IsNullOrEmpty(smtpSettings.SMTPUser) && !string.IsNullOrEmpty(smtpSettings.SMTPPassword)); if (smtpClient.UseDefaultCredentials && !String.IsNullOrWhiteSpace(smtpSettings.SMTPUser)) { smtpClient.Credentials = new System.Net.NetworkCredential(smtpSettings.SMTPUser, smtpSettings.SMTPPassword); } System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(CurrentUser.Email, CurrentUser.Email); string strAlias = (!string.IsNullOrEmpty(Site.Alias) ? Site.Alias : Site.CName); message.Subject = "Welcome to " + strAlias; StringBuilder sbHTML = new StringBuilder(WBHelper.GetTemplateText(Server.MapPath("/content/Templates/SMTPCheckMail.htm"))); sbHTML.Replace("[SITEALIAS]", strAlias); sbHTML.Replace("[EMAIL]", CurrentUser.Email); message.Body = sbHTML.ToString(); if (smtpSettings.SMTPHost != null) { smtpClient.Host = smtpSettings.SMTPHost; } smtpClient.Port = smtpSettings.SMTPPort; smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; message.IsBodyHtml = true; try { smtpClient.Send(message); returnMSG = "Email Send Successfully."; } catch (Exception e) { returnMSG = e.Message; } } return(Json(returnMSG)); }
public void ExportDataToCSV(int?UserID, OrderStatus?eOrderStatus, DateTime dtStartDate, DateTime dtEndDate) { var orderdetail = (_repository.Find(od => od.Order.SiteID == Site.ID && od.Order.UserID == (UserID == null ? od.Order.UserID : UserID) && od.OrderStatusID == (eOrderStatus != null ? (int?)eOrderStatus : od.OrderStatusID) && (System.Data.Entity.DbFunctions.DiffDays(dtStartDate, od.AuditDetails.DateCreated) >= 0 && System.Data.Entity.DbFunctions.DiffDays(od.AuditDetails.DateCreated, dtEndDate) >= 0)) .EagerLoad(ut => ut.AuditDetails, ut => ut.CertificateRequest).OrderByDescending(ord => ord.AuditDetails.DateCreated)).ToList(); List <string> lstData = new List <string>(); lstData.Add("Order Date,OrderID,Product Name,InvoiceID,Domain Name,Order Status,Price,"); foreach (OrderDetail ord in orderdetail) { lstData.Add(ord.AuditDetails.DateCreated.ToShortDateString() + "," + ord.ExternalOrderID + "," + ord.ProductName + "," + InvoicePrefix + ord.OrderID + "," + (string.IsNullOrEmpty(ord.CertificateRequest.DomainName) ? "-" : ord.CertificateRequest.DomainName) + "," + ord.OrderStatus + "," + ord.Price.ToString("c").Replace(",", string.Empty)); } WBHelper.GetCSVFile(lstData, "OrderList"); }
private string SiteAlias(string Host) { if (Host.IndexOf('.') > 0 && !(Host.Split('.').Length > 2)) { if (WBHelper.IsRunWithWWW(Site) && !Host.Contains("www.")) { Host = Host.Replace(Host, "www." + Host); } else if (!WBHelper.IsRunWithWWW(Site) && Host.Contains("www.")) { Host = Host.Replace("www.", ""); } } return("http://" + Host); }
public ActionResult paypalipn() { try { User U = null; if (U == null) { int UserID = Convert.ToInt32(Request.QueryString[SettingConstants.QS_USERID]); var repo = DependencyResolver.Current.GetService <IRepository <User> >(); User user = repo.FindByID(UserID); if (user != null && user.ID > 0) { System.Web.Security.Membership.ApplicationName = user.SiteID.ToString(); System.Web.Security.FormsAuthentication.SetAuthCookie(user.Email, false); U = user; } } Site = GetSite(U.SiteID); currentsitesettings = new CurrentSiteSettings(Site); SetSiteIDInSession(); _logger.Log("Start PayPal IPN Call Success. Url :" + Request.Url.AbsoluteUri.ToString(), Logger.LogType.INFO); if (System.Web.HttpContext.Current.Request.QueryString[SettingConstants.PAYPAL_PAYMENTTYPE].ToString().ToLower().Equals("reissueaddfund")) { _service.ProcessPayPalIPNRequestReIssue(Site, WBHelper.CurrentLangID(), SiteCacher.SiteSMTPDetail().ID, currentsitesettings.SiteAdminEmail, currentsitesettings.InvoicePrefix); } else { _service.ProcessPayPalIPNRequest(Site, WBHelper.CurrentLangID(), SiteCacher.SiteSMTPDetail().ID, currentsitesettings.SiteAdminEmail, currentsitesettings.InvoicePrefix); } _logger.Log("end Paypal IPN Call Success. Url :" + Request.Url.AbsoluteUri.ToString(), Logger.LogType.INFO); } catch (Exception e) { _logger.LogException(e); } finally { currentsitesettings = null; } return(null); }
public ActionResult PasswordReset(User user, FormCollection collection) { Site Site = GetSite(user.SiteID); bool ReturnCode = false; if (user.ID > 0) { User objUser = _repository.FindByID(user.ID); objUser.PasswordSalt = WBHelper.CreateSalt(); objUser.PasswordHash = WBHelper.CreatePasswordHash(collection["txtPassword"], objUser.PasswordSalt); objUser.ConfirmPassword = objUser.PasswordHash; _repository.Update(objUser); _unitOfWork.Commit(); ReturnCode = true; } string url = (USESSL ? "https" : "http") + "://" + (string.IsNullOrEmpty(Site.Alias) ? Site.CName : Site.Alias) + "/staticpage/passwordresetresult?authcode=" + HttpUtility.UrlEncode(CryptorEngine.Encrypt(ReturnCode.ToString() + SettingConstants.Seprate + user.ID, true)); return(Redirect301(url, (string.IsNullOrEmpty(Site.Alias) ? Site.CName : Site.Alias))); }
/// <summary> /// 查询供应商信息(AJAX) /// </summary> /// <param name="wb"></param> /// <param name="spu"></param> /// <returns></returns> public async Task<SuplierInfo> supplierInfo(WBHelper wbHelper, string spu) { var url = "http://chongzhi.taobao.com/item.do?spu={0}&action=edit&method=supplierInfo&_=" + DateTime.Now.Ticks; url = string.Format(url, spu); var content = await wbHelper.WB.GetAjaxResult(url); try { var suplierInfo = JsonConvert.DeserializeObject<SuplierInfo>(content); //查到供应商 return suplierInfo; } catch (Exception ex) { AppendException(ex); } //无供应商,平台默认会自动关单 return null; }
private async Task CheckIfLoginRequired() { using (var helper = new WBHelper(false)) { var x = await this.InvokeTask(helper.IsLoginRequired); while (x) { this.InvokeAction(ShowLoginWindow, helper.WB); x = await this.InvokeTask(helper.IsLoginRequired); } } }
private async void TradeHub_TradeCreate(Top.Tmc.Message msg) { //AppendText(msg.Topic); //AppendText(msg.Content); //解析内容 var definition = new { buyer_nick = "", payment = "", oid = 0L, tid = 0L, type = "guarantee_trade", seller_nick = "" }; //var content = @"{'buyer_nick':'包花呗','payment':'9.56','oid':1316790655492656,'tid':1316790655492656,'type':'guarantee_trade','seller_nick':'红指甲与高跟鞋'}"; var d = JsonConvert.DeserializeAnonymousType(msg.Content, definition); var trade = (await this.InvokeTask(client.TradeHub.GetTrade, d.tid)).Data; var product = AppDatabase.db.ProductItems.FindById(trade.NumIid); if (product == null) { AppendText("忽略非平台商品订单{0}", trade.Tid); return; } //更新订单列表 AppDatabase.db.TopTrades.Upsert(trade, trade.Tid); AppendText("[{0}]交易创建:买家:{1}", d.tid, d.buyer_nick); //更新统计信息 var statistic = AppDatabase.db.Statistics.FindById(d.seller_nick) ?? new Statistic { Id = d.seller_nick }; statistic.BuyCount++; AppDatabase.db.Statistics.Upsert(statistic, statistic.Id); OnStatisticUpdate(statistic); SuplierInfo supplier = null; if (!string.IsNullOrEmpty(product.SupplierId)) { supplier = product.GetSuplierInfo(); } else { await CheckIfLoginRequired(); using (var wbHelper = new WBHelper(true)) { try { //查找供应商 supplier = await this.InvokeTask(supplierInfo, wbHelper, product.SpuId); if (supplier.profitData != null && supplier.profitData.Any()) { product.OnSupplierInfoUpdate(AppDatabase.db.ProductItems, supplier); } } catch (Exception ex) { AppendException(ex); } } } if (supplier != null && supplier.profitData != null && supplier.profitData.Any()) { //5分钟之前的消息即过期的下单信息不处理 if ((ServerDateTime - trade.Created).TotalMinutes > 5) { AppendText("[{0}/{1}]不拦截过期交易。", trade.Tid, trade.NumIid); return; } var interceptType = AppSetting.UserSetting.Get<string>("拦截模式"); if (interceptType == InterceptMode.无条件拦截模式) { InteceptQueue.Enqueue(new InterceptInfo(supplier, product.SpuId, trade, statistic), InterceptTrade, OnInterceptExecuted); return; } else if (interceptType == InterceptMode.仅拦截亏本交易) { if (supplier.profitMin < 0) { InteceptQueue.Enqueue(new InterceptInfo(supplier, product.SpuId, trade, statistic), InterceptTrade, OnInterceptExecuted); } else AppendText("[{0}/{1}]不拦截-{2}。", trade.Tid, trade.NumIid, interceptType); return; } else if (interceptType == InterceptMode.智能拦截模式) { //若14天内同充值号码 var number = new Regex(@"(?<=号码:|用户名:)(\d{5,12})\b").Match(trade.ReceiverAddress ?? "").Value; if (!string.IsNullOrEmpty(number)) { var countNumUsed = AppDatabase.db.TopTrades.Count(x => x.ReceiverAddress.Contains(number) && x.NumIid == trade.NumIid); if (countNumUsed > 1) { //AppendText("14天内同充值号码拦截,订单ID={0}", trade.Tid); InteceptQueue.Enqueue(new InterceptInfo(supplier, product.SpuId, trade, statistic), InterceptTrade, OnInterceptExecuted); return; } } //14天内同宝贝付款订单大于1 var orderCount = AppDatabase.db.TopTrades.Count(x => x.BuyerNick == trade.BuyerNick && x.NumIid == trade.NumIid); if (orderCount > 1) { //AppendText("14天内同宝贝付款订单大于1拦截,订单ID={0}", trade.Tid); InteceptQueue.Enqueue(new InterceptInfo(supplier, product.SpuId, trade, statistic), InterceptTrade, OnInterceptExecuted); return; } //买家是白名单内买家,不拦截 if (AppSetting.UserSetting.Get("买家白名单", new string[0]).Any(x => x == trade.BuyerNick)) { AppendText("[{0}/{1}]不拦截-{2}。", trade.Tid, trade.NumIid, interceptType); return; } //黑名单买家一律拦截 if (AppSetting.UserSetting.Get<string[]>("买家黑名单", new string[0]).Any(x => x == trade.BuyerNick)) { //AppendText("黑名单买家拦截,订单ID={0}", trade.Tid); InteceptQueue.Enqueue(new InterceptInfo(supplier, product.SpuId, trade, statistic), InterceptTrade, OnInterceptExecuted); return; } //购买数量超过1件的拦截 if (trade.Num > 1) { //AppendText("购买数量超过1件拦截,订单ID={0}", trade.Tid); InteceptQueue.Enqueue(new InterceptInfo(supplier, product.SpuId, trade, statistic), InterceptTrade, OnInterceptExecuted); return; } AppendText("[{0}/{1}]不拦截-{2}。", trade.Tid, trade.NumIid, interceptType); } } else { AppendText("[{0}/{1}]交易商品供应商信息未查询到,不拦截。", trade.Tid, trade.NumIid); } }
private async Task CloseTradeIfPossible(long tid) { try { var topTrade = AppDatabase.db.TopTrades.FindById(tid); if (topTrade == null || !topTrade.Intercept) return; var statistic = AppDatabase.db.Statistics.FindById(AppSetting.UserSetting.UserName); if (topTrade.Status == "TRADE_NO_CREATE_PAY" || topTrade.Status == "WAIT_BUYER_PAY" || string.IsNullOrEmpty(topTrade.Status)) { //等待付款 try { var result = await this.InvokeTask(client.TradeHub.CloseTrade, topTrade.Tid, AppSetting.UserSetting.Get<string>("关单原因")); } catch (Exception ex) { AppendException(ex); } return; } if (topTrade.Status == "TRADE_CLOSED" || topTrade.Status == "TRADE_CLOSED_BY_TAOBAO") { //交易关闭 statistic.InterceptSuccess++; AppDatabase.db.Statistics.Update(statistic); OnStatisticUpdate(statistic); AppendText("{0}关闭交易成功,买家:{1}", topTrade.Tid, topTrade.BuyerNick); } else { //交易成功 statistic.InterceptFailed++; AppDatabase.db.Statistics.Update(statistic); OnStatisticUpdate(statistic); AppendText("{0}关闭交易失败,买家:{1},订单状态:{2}", topTrade.Tid, topTrade.BuyerNick, topTrade.Status); } //恢复价格 var product = AppDatabase.db.ProductItems.FindById(topTrade.NumIid); if (!product.NeedResotreProfit) { //尝试还原价格时原始价格已经更新的话就不用恢复了 return; } using (var wbHelper = new WBHelper(false)) { var taoResult = await this.InvokeTask(supplierSave, wbHelper, product.SupplierId, product.SpuId, product.原利润.ToString("f2"), (product.进价 + product.原利润).ToString("f2"), topTrade.NumIid, tbcpCrumbs); if (taoResult == null || taoResult.status != 200) { AppendText("商品{0}恢复价格失败,请注意!" + taoResult != null ? taoResult.msg : "", topTrade.NumIid); return; } else { AppendText("商品{0}恢复价格已提交", topTrade.NumIid); } } } catch (Exception ex) { AppendException(ex); } }
private async Task<SimpleResult> SyncSupplierInfo(ProductItem product) { using (var helper = new WBHelper(true)) { var success = false; //查找供应商 var supplier = await this.InvokeTask(supplierInfo, helper, product.SpuId); if (supplier != null && supplier.profitData != null && supplier.profitData.Any()) { product.OnSupplierInfoUpdate(AppDatabase.db.ProductItems, supplier); success = true; } return new SimpleResult { Success = success, ProductId = product.Id }; } }
public async Task<bool> durexValidate() { using (WBHelper helper = new WBHelper()) { await this.InvokeTask(helper.SynchronousLoadDocument, "http://chongzhi.taobao.com/index.do?spm=0.0.0.0.Xwjc5t&method=index&random=0.7032918996278134"); //getDurexParam var content = await this.InvokeTask(helper.WB.GetAjaxResult, "http://chongzhi.taobao.com/ajax.do?method=getDurexParam&type=0&callback=" + DateTime.Now.Ticks); var leng = DateTime.Now.Ticks.ToString().Length; content = content.Substring(leng + 1, content.Length - 2 - leng); var param = JsonConvert.DeserializeObject<DurexParamResult>(content); if (param.code == 200) { if (!string.IsNullOrEmpty(param.ret.param)) { durexParam = param.ret.param; //durex/validate var url = "http://aq.taobao.com/durex/validate?param=&redirecturl=%2F%2Fchongzhi.taobao.com%2Ferror.do%3Fmethod%3DdurexJump"; url = UrlHelper.SetValue(url, "param", durexParam); try { var doc = await this.InvokeTask(helper.SynchronousLoadDocument, url, "http://chongzhi.taobao.com/error.do?method=durexJump&type=success"); return true; } catch { } } else { return true; } } } return false; }
//public async Task<TaoJsonpResult> downListItem(string ids) //{ // await durexValidate(); // var url = "http://chongzhi.taobao.com/item.do?method=down&itemIds=522871283911&tbcpCrumbs=1fb3d7437580ea5636013be21fab2a3c-a4460a6db84e4"; // url = UrlHelper.SetValue(url, "tbcpCrumbs", tbcpCrumbs); // url = UrlHelper.SetValue(url, "itemIds", ids); // using (WBHelper helper = new WBHelper(false)) // { // var content = await helper.SynchronousLoadString(url); // return JsonConvert.DeserializeObject<TaoJsonpResult>(content.Data); // } //} public async Task<TaoUplistResult> upListItem(string ids) { var validateRet = await durexValidate(); if (!validateRet) { AppendText("二次校验失败,请检查网络情况及证书安装情况。"); return null; } try { var url = "http://chongzhi.taobao.com/item.do?method=up&itemIds=522871283911&tbcpCrumbs=1fb3d7437580ea5636013be21fab2a3c-a4460a6db84e4"; url = UrlHelper.SetValue(url, "tbcpCrumbs", tbcpCrumbs); url = UrlHelper.SetValue(url, "itemIds", ids); using (WBHelper helper = new WBHelper(false)) { var content = await this.InvokeTask(helper.SynchronousLoadString, url); return JsonConvert.DeserializeObject<TaoUplistResult>(content.Data); } } catch (Exception ex) { AppendText("上架商品失败,错误消息:", ex.Message); AppendException(ex); } return null; }
/// <summary> /// 设置供应商(非AJAX) /// </summary> /// <param name="wb"></param> /// <param name="sup"></param> /// <param name="spu"></param> /// <param name="profitMin"></param> /// <param name="profitMax"></param> /// <param name="price">一口价</param> /// <param name="itemId"></param> /// <returns></returns> public async Task<TaoJsonpResult> supplierSave(WBHelper helper, string sup, string spu, string profit, string price, long itemId, string tbcpCrumbs) { //profitMode=0 保证我赚钱 //profitMode=2 自定义 var url = "http://chongzhi.taobao.com/item.do?method=supplierSave&sup={0}&mode=2&spu={1}&itemId={2}&profitMode=2&profitMin={3}&profitMax={4}&price={5}&tbcpCrumbs={6}"; url = string.Format(url, sup, spu, itemId, profit, profit, price, tbcpCrumbs); var content = await helper.SynchronousLoadString(url); if (content.LoginRequired) { this.InvokeAction(ShowLoginWindow, helper.WB); return await supplierSave(helper, sup, spu, profit, price, itemId, tbcpCrumbs); } return JsonConvert.DeserializeObject<TaoJsonpResult>(content.Data); }
private async Task<TaoInfo> GetTaoInfo() { using (var wbHelper = new WBHelper(false)) { var cnt = await this.InvokeTask(wbHelper.SynchronousLoadString, "http://chongzhi.taobao.com/index.do?method=info"); while (cnt.LoginRequired) { this.InvokeAction(ShowLoginWindow, wbHelper.WB); cnt = await this.InvokeTask(wbHelper.SynchronousLoadString, "http://chongzhi.taobao.com/index.do?method=info"); } var info = JsonConvert.DeserializeObject<TaoInfo>(cnt.Data); if (info != null && info.status == 200) { this.InvokeAction(() => { toolStripStatusLabel余额.Text = "余额:" + info.alipayBalance.ToString("f2"); toolStripStatusLabel橱窗.Text = "橱窗:" + info.promotedCount + "/" + info.promotedMax; toolStripStatusLabel出售中.Text = "出售中:" + info.onCount; toolStripStatusLabel仓库中.Text = "仓库中:" + info.offCount; toolStripStatusLabel价格变动.Text = "价格变动:" + info.priceChangedCount; }); } return info; } }
public async Task<bool> SetProductProfit(ProductItem product, Func<ProductItem, decimal> Getprofit, bool forceModify = false, bool isUserOperation = false) { try { decimal profit = Getprofit(product); SuplierInfo supplier = null; if (!string.IsNullOrEmpty(product.SupplierId)) { supplier = product.GetSuplierInfo(); } else { await CheckIfLoginRequired(); using (var wbHelper = new WBHelper(true)) { supplier = await this.InvokeTask(supplierInfo, wbHelper, product.SpuId); if (supplier == null || !supplier.profitData.Any()) { AppendText("【{0}】暂无供应商,改价操作取消。", product.ItemName); return false; } product.OnSupplierInfoUpdate(AppDatabase.db.ProductItems, supplier); } } if (supplier != null && supplier.profitData != null && supplier.profitData.Any()) { if (supplier.profitData[0].price == 0) { AppendText("【{0}】暂无供应商,改价操作取消。", product.ItemName); return false; } if (supplier.profitData[0].price == product.进价 && product.利润 == profit && !forceModify) { //价格无变化不处理 AppendText("商品【{0}】进价及利润无变化,跳过。", product.ItemName); BindDGViewProduct(); return true; } string profitString = "0.00"; profitString = profit.ToString("f2"); var oneprice = (supplier.profitData[0].price + profit).ToString("f2"); await CheckIfLoginRequired(); using (var wbHelper = new WBHelper(false)) { var save = await this.InvokeTask(supplierSave, wbHelper, supplier.profitData[0].id, product.SpuId, profitString, oneprice, product.Id, tbcpCrumbs); if (save.status != 200) { AppendText("为商品{0}设置利润时失败。错误消息:{1}", product.Id, save.msg); return false; } else { product.ModifyProfitSubmitted = true; if (isUserOperation) { //备份原始利润 product.原利润 = profit; } AppDatabase.db.ProductItems.Update(product); BindDGViewProduct(); return true; } } } else { AppendText("为商品{0}设置利润时失败,因为没有查询到供应商信息。", product.Id); return false; } } catch (Exception ex) { AppendException(ex); return false; } }
private async Task OnLoginSuccess() { if (!AppSetting.UserSetting.Get<bool>("AutoSelectLoginedAccount") && MessageBox.Show("下次自动登陆?", this.title, MessageBoxButtons.YesNo) == DialogResult.Yes) { AppSetting.UserSetting.Set<bool>("AutoSelectLoginedAccount", true); } await Task.Delay(500); this.InvokeAction(async () => { using (var wbHelper = new WBHelper(false)) { await this.InvokeTask(wbHelper.SynchronousLoadDocument, IndexUrl); TaoAuthorizedCookieDictionary = CookieHelper.GetAllCookie(wbHelper.WB); WBHelper.Cookie = CookieHelper.ExpandCookieDictionary(TaoAuthorizedCookieDictionary); AppSetting.UserSetting.Set("淘充值饼干", WBHelper.Cookie, true); AppSetting.UserSetting.Set("淘充值饼干时间", DateTime.Now); var apicookie = IECookieHelper.GetGlobalCookie(Server, ".AspNet.ApplicationCookie"); AppSetting.UserSetting.Set("API饼干", apicookie, true); AppSetting.UserSetting.Set("API饼干时间", DateTime.Now); IsLogin = true; } wbLoginMode.TransitionToNext(wbTaoChongZhiMode, wb); AppendText("服务登录完成!"); /*使用cookie连接*/ ConnectAsync(); }); }
private async Task<bool> SyncProductList(string where, string url) { var productList = new List<ProductItem>(); int page = 1; IHtmlDocument xdoc = null; ApiPagedResult<List<ProductItem>> pagedList = new ApiPagedResult<List<ProductItem>>(); while (pagedList.Success && pagedList.HasMore) { var nextUrl = UrlHelper.SetValue(url, "page", page.ToString()); using (var helper = new WBHelper(false)) { try { var result = await this.InvokeTask(helper.SynchronousLoadDocument, nextUrl); while (result.LoginRequired) { this.InvokeAction(ShowLoginWindow, helper.WB); result = await this.InvokeTask(helper.SynchronousLoadDocument, nextUrl); } xdoc = HtmlParser.Parse(result.Data.Body.InnerHtml); var table = xdoc.GetElementById("main").FindFirst(".stock-table"); pagedList = ProductItemHelper.GetProductItemList(table, page); tbcpCrumbs = xdoc.FindSingle("#tbcpCrumbs").Attribute("value").AttributeValue; xdoc = null; result = null; SetTaskName("同步{0}商品第{1}页({2}个)", where, page, pagedList.Data.Count); productList.AddRange(pagedList.Data); page++; } catch (Exception ex) { pagedList.Success = false; helper.Dispose(); //AppendException(ex); } } if (!pagedList.Success) { AppendText("同步{0}商品第{1}页出错,{2}", where, page, pagedList.Message); if (MessageBox.Show(string.Format("同步{0}商品第{1}页出错,是否重试?", where, page), Text, MessageBoxButtons.YesNo) == DialogResult.Yes) { pagedList.Success = true; continue; } } } foreach (var item in productList) { item.UpdateAt = ProductSyncTime; item.Where = where; item.原利润 = item.利润 = item.一口价 - item.进价; } AppDatabase.UpsertProductList(productList); BindDGViewProduct(); SetTaskName("就绪"); AppendText("同步{0}商品完成!({1}个)", where, productList.Count); return true; }