merge
This commit is contained in:
@@ -50,3 +50,4 @@ OurUmbraco.Site/App_Data/cache/
|
||||
*.sln.ide/
|
||||
NuGetBackup
|
||||
OurUmbraco.Site/web.config
|
||||
OurUmbraco.Site/usercontrols/Deli/
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
using System.Linq;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Collections.Specialized;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Marketplace.Controls
|
||||
{
|
||||
public class CountryDropDownList : DropDownList
|
||||
{
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
GetCountries();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void GetCountries()
|
||||
{
|
||||
|
||||
Dictionary<string, string> dic = new Dictionary<string, string>();
|
||||
List<string> col = new List<string>();
|
||||
|
||||
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
|
||||
{
|
||||
|
||||
RegionInfo ri = new RegionInfo(ci.LCID);
|
||||
if (!dic.ContainsKey(ri.EnglishName))
|
||||
dic.Add(ri.EnglishName, ri.TwoLetterISORegionName.ToLowerInvariant());
|
||||
|
||||
if (!col.Contains(ri.EnglishName))
|
||||
col.Add(ri.EnglishName);
|
||||
}
|
||||
|
||||
col.Sort();
|
||||
|
||||
|
||||
|
||||
this.Items.Add(new ListItem("", ""));
|
||||
foreach (var i in dic.OrderBy(x => x.Key))
|
||||
{
|
||||
this.Items.Add(new ListItem(i.Key, i.Value));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,522 @@
|
||||
/* THIS STYLESHEET CONTAINS ALL THE THINGS WE'VE ADDED TO THE DESIGN */
|
||||
|
||||
/* adjusting the header if there is no promoted content */
|
||||
|
||||
|
||||
.Class-VideoTutorial h1{display: none !Important;}
|
||||
|
||||
.class-empty #wrapper{padding-top: 150px !Important;}
|
||||
.class-emtpy #header{height: 150px !Important;}
|
||||
|
||||
.class-shopFlow #wrapper{padding-top: 200px !Important;}
|
||||
.class-shopFlow #header{padding-left: 0px; height: 200px !Important;}
|
||||
.class-shopFlow .breadcrumb{display: none !Important;}
|
||||
|
||||
#panes div.tabPanel{display: none;}
|
||||
|
||||
.get-started-table td {vertical-align: top; width: 33%;}
|
||||
.get-started-table li {margin-bottom: 5px;}
|
||||
.get-started-table ul {margin: 0;}
|
||||
td {vertical-align: top;}
|
||||
.no-margin {margin:0;}
|
||||
.boxLeft {
|
||||
float: left;
|
||||
width: 48%
|
||||
}
|
||||
.boxRight {
|
||||
float: right;
|
||||
width: 48%
|
||||
}
|
||||
|
||||
/* SUBMITTED SITES */
|
||||
#tagSelector{height: 130px; display: block; list-style: none;
|
||||
margin-bottom: 20px; padding: 0px;}
|
||||
|
||||
#tagSelector li{float: left; margin: 0px; display: block; width: 180px; padding: 5px;}
|
||||
#tagSelector li a{padding: 3px;}
|
||||
#tagSelector li a.current{font-weight: bold;}
|
||||
#tagSelector li.header{width: 100%; float: none; color: #444444; font-weight: bold; text-size: 12px;}
|
||||
|
||||
#viewToggle{text-align: center; display: block; width: 120px; padding: 6px; border: solid 1px #e7e7e7; text-decoration: none; clear: both; margin-bottom: 20px; }
|
||||
|
||||
#featuredSites{display: block; margin: 0px; padding: 0px;}
|
||||
|
||||
#featuredSites li{display: block; text-align: center; width: 297px; height: 270px; float: left; margin: 0px 10px 14px 0px; padding: 7px;
|
||||
border-top: 1px solid #E7E7E7;
|
||||
border-left: 1px solid #E7E7E7;
|
||||
border-right: 2px solid #E7E7E7;
|
||||
border-bottom: 2px solid #E7E7E7;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
#sites.grid{display: block; margin: 0px; padding: 0px;}
|
||||
#sites.grid li{opacity:0.2; display: block; text-align: center; width: 135px; height: 145px; float: left; margin: 0px 20px 20px 0px; padding: 0px;
|
||||
background: #252525; color: #fff;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
#sites.grid li.last{margin-right: 0px; clear: right;}
|
||||
#sites.grid li a.thumb{color: #fff; display: block; margin: auto; background: #fff no-repeat top center; width: 136px; padding-top: 101px; height: 1px; overflow: hidden;}
|
||||
#sites.grid li h5{margin-top: 3px; padding: 5px; font-size: 11px; font-weight: normal; color: #fff;}
|
||||
#sites.grid li h5 a{color: #fff;}
|
||||
#sites.grid li p{display: none;}
|
||||
#sites.grid li.show{opacity: 0.99;}
|
||||
|
||||
#sites.list{background: none !Important; display: block; margin: 0px; padding: 0px; width: auto; list-style: none;}
|
||||
|
||||
#sites.list li{background: none !Important; opacity: 0.99 !Important; display: none; border-bottom: 1px solid #ccc; text-align: left;
|
||||
padding: 10px 10px 10px 150px; position: relative; min-height: 90px; height: auto !Important; height: 90px;}
|
||||
|
||||
#sites.list li a.thumb{display: block; border: 1px solid #999; background: no-repeat top center; width: 115px; padding-top: 81px; height: 1px;
|
||||
overflow: hidden; position: absolute; top: 15px; left: 10px;}
|
||||
|
||||
#sites.list li h5{margin: 2px 0px 5px 0px; padding: 2px; font-size: 16px;}
|
||||
|
||||
#sites.list li p{}
|
||||
#sites.list li.show{opacity: 0.99 !Important; display: block;}
|
||||
|
||||
div#showcase{width: 750px; height: 470px; overflow: auto; padding: 5px;}
|
||||
div#showcase div.image{margin: 0px 0px 20px 20px; width: 450px; height: 280px; overflow: hidden; border: 1px solid #ccc; text-align: center;
|
||||
position: absolute; top: 20px; right:0px;
|
||||
}
|
||||
div#showcase h1{float: left; color: #575757; width: 280px;}
|
||||
|
||||
div#showcase div.desc{overflow: auto; position: absolute; bottom: 0px; height: 125px;
|
||||
padding: 7px; border-top: #e7e7e7 1px solid; margin-top: 35px; width: 745px;}
|
||||
|
||||
div#showcase div.desc p{font-size: 12px !Important; line-height: 20px;}
|
||||
|
||||
div#showcase dl{clear: left;}
|
||||
div#showcase dt{font-weight: bold;}
|
||||
div#showcase dd{margin-bottom: 10px;}
|
||||
|
||||
/* FAQ */
|
||||
.faqGroup{list-style: none; margin: 0; padding: 0px;}
|
||||
.faqGroup li{display: block; width: 350px; height: 100px; float: left; margin:0px 20px 30px 0px;}
|
||||
.faqGroup li h3{margin: 5px 0 0 0; padding: 0px;}
|
||||
.faqGroup li p{padding-top: 10px; margin: 0px; }
|
||||
.faqGroup li.alt{float: right; }
|
||||
.faqGroup h3 a{color: #000 !Important; text-decoration: none !Important;}
|
||||
.faqGroup a:hover h3{color: #000; text-decoration: underline !Important;}
|
||||
|
||||
.faqGroupFeatureLink li{display: block; width: 150px; float: left; margin:0px 10px 15px 0px;}
|
||||
.faqGroupFeatureLink a{color: #000 !Important; text-decoration: none !Important;}
|
||||
.faqGroupFeatureLink a:hover{color: #000; text-decoration: underline !Important;}
|
||||
|
||||
/* Partners */
|
||||
|
||||
.solutionProvider img{float: right; margin-top: 10px}
|
||||
.solutionProvider .meta{margin-bottom: 15px}
|
||||
.solutionProvider .meta p{font-size: 13px; margin-bottom: 0px}
|
||||
.solutionProvider{border-bottom: 1px solid #efefef; padding: 10px; margin-bottom: 10px}
|
||||
|
||||
.goldProvider{border: 1px solid #efefef; background: #f7f7f7;}
|
||||
|
||||
/* GOLD PARTNERS */
|
||||
ul.goldPartners, ul.standardPartners{margin: 0px; padding: 0px;}
|
||||
li.partner{display: block; float: left; padding: 10px; margin: 7px; width: 225px; border: 1px solid #efefef}
|
||||
li.partner a, li.partner a *{text-decoration: none !Important; color: #000}
|
||||
li.partner h3{color: #000; font-size: 18px; font-weight: bold; margin: 0px;}
|
||||
|
||||
li.partner span.location{line-height: 15px; display: block; padding: 7px 0px 7px 0px; margin-bottom: 10px; border-bottom: #dbdbdb 1px solid; color: #666 !Important; font-size: 12px;}
|
||||
|
||||
li.partner div.providerLogo{height: 160px; display: block; overflow: hidden;}
|
||||
li.partner span.abstract{border: 1px solid #efefef; line-height: 17px; display: none; font-size: 12px; color: #666; padding: 10px; background: #f9f9f9; height: 138px;}
|
||||
|
||||
ul.goldPartners li.partner a:hover img{display: none;}
|
||||
ul.goldPartners li.partner a:hover span.abstract{display: block;}
|
||||
li.partner a:hover h3{text-decoration: underline !Important;}
|
||||
li.partner img{margin: auto;}
|
||||
|
||||
ul.standardPartners li.partner h3{height: 18px; overflow: hidden}
|
||||
ul.standardPartners li.partner{width: 135px; padding: 3px; margin: 7px;}
|
||||
ul.standardPartners li.partner h3{font-size: 12px;}
|
||||
ul.standardPartners li.partner div.providerLogo{height: 90px;}
|
||||
ul.standardPartners li.partner span.location{line-height: 10px; font-size: 12px;}
|
||||
|
||||
/*Licenses */
|
||||
|
||||
.licenseTable td{padding: 7px; border-bottom: 1px solid #efefef;}
|
||||
.licenseTable{margin-bottom: 30px;}
|
||||
|
||||
|
||||
/* PRODUCTS */
|
||||
div.product{padding-left: 70px; padding-bottom: 20px; background: url(/images/bg-ico2.gif) no-repeat 10px 0px; }
|
||||
|
||||
/* ABOUT US */
|
||||
.class-team img {margin: 0 15px 15px 15px;}
|
||||
|
||||
/* TEST YOUR NEEDS */
|
||||
#test-your-needs-container p {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.need-cost {
|
||||
font-weight: bold;
|
||||
margin-bottom: 8px;
|
||||
|
||||
}
|
||||
|
||||
.need-result{
|
||||
padding-left: 60px;
|
||||
background: url(/images/custom/need-result-selected.png) no-repeat;
|
||||
}
|
||||
|
||||
.need-result-summary{
|
||||
padding-left: 60px;
|
||||
}
|
||||
|
||||
.needs-total {
|
||||
font-weight: bold;
|
||||
font-size: 130%;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.btn-add-to-cart {
|
||||
display:block;
|
||||
text-indent:-9999px;
|
||||
overflow:hidden;
|
||||
background:url(/images/custom/btn-order-inline.png) no-repeat;
|
||||
width:152px;
|
||||
height:50px;
|
||||
margin-top: 25px;
|
||||
}
|
||||
.btn-add-to-cart:hover {
|
||||
background:url(/images/custom/btn-order-inline-hover.png) no-repeat;
|
||||
}
|
||||
|
||||
.btn-calculate-my-price {
|
||||
display:block;
|
||||
text-indent:-9999px;
|
||||
overflow:hidden;
|
||||
background:url(/images/custom/btn-calculate-price.png) no-repeat;
|
||||
width:152px;
|
||||
height:50px;
|
||||
margin-top: 25px;
|
||||
}
|
||||
.btn-calculate-my-price:hover {
|
||||
background:url(/images/custom/btn-calculate-price-hover.png) no-repeat;
|
||||
}
|
||||
|
||||
.test-your-needs-questions{list-style: none; margin-left: 0; padding-left: 0;}
|
||||
.test-your-needs-questions li{display: block; margin: 0; padding: 10px 0;}
|
||||
.test-your-needs-questions input {margin-top: 0px; padding-top: 0px;}
|
||||
.test-your-needs-questions label{padding-left: 5px; font-size: 20px;}
|
||||
#test-your-needs-container h2 {
|
||||
line-height: 125%;
|
||||
}
|
||||
|
||||
|
||||
/* 2 column pages */
|
||||
.two-column .left-column{width: 380px;}
|
||||
.two-column .right-column{width: 380px;}
|
||||
|
||||
.noSidebar .left-column, .noSidebar .right-column{width: 450px;}
|
||||
|
||||
/* 3 column pages */
|
||||
.three-column .left-column{width: 310px; margin: 0px;}
|
||||
.three-column .center-column{width: 310px; float: left; margin: 0px 15px 0px 15px;}
|
||||
.three-column .right-column{width: 310px; margin: 0px;}
|
||||
|
||||
/* SHOP FLOW UL */
|
||||
ul.shop-flow{display: block; list-style: none; height: 50px; padding: 0px; margin: 0px; margin-left: -10px;}
|
||||
ul.shop-flow li{ display: block; padding: 0px; margin: 0px; border-bottom: 3px solid #000; float: left; height: 40px; margin-right: 2px;}
|
||||
ul.shop-flow li span{display: block; padding: 20px;}
|
||||
ul.shop-flow li.active{border-color: #ff6e00;}
|
||||
ul.shop-flow li.done{border-color: #7a7a7a;}
|
||||
|
||||
/* SHOP FLOW BUTTONS */
|
||||
#umbracoFormNavigation a{
|
||||
display: block;
|
||||
width: 93px;
|
||||
height: 22px;
|
||||
padding-top: 6px;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
background: url(/images/custom/btn_sqr_blank.png) no-repeat top left;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Shop flow Checkout */
|
||||
.checkOut #couponCode{display: none;}
|
||||
|
||||
|
||||
/*BREADCRUMB */
|
||||
ul.breadcrumb{z-index: 99; position: relative; list-style: none; margin: 0; padding: 0; margin-bottom: 20px;}
|
||||
ul.breadcrumb li{color: #999 !Important; list-style: none; margin: 0; padding: 0; display: inline;}
|
||||
|
||||
ul.breadcrumb li a{color: #999 !Important;}
|
||||
|
||||
|
||||
/* BIRD */
|
||||
#bird{z-index: 999; position: relative; background: no-repeat url(/images/custom/bird0.gif) bottom left; height: 100px; width: 100px;}
|
||||
|
||||
|
||||
/* EXTRA HEADER BUTTONS */
|
||||
a.support{
|
||||
width:108px;
|
||||
height:108px;
|
||||
text-indent:-9999px;
|
||||
overflow:hidden;
|
||||
float:right;
|
||||
background:url(../images/btn-support.png) no-repeat;
|
||||
}
|
||||
|
||||
a.support:hover{background:url(../images/btn-support-hover.png) no-repeat;}
|
||||
|
||||
|
||||
/* VIDEO PAGE*/
|
||||
div.videoChapter, div.videoChapter *{text-decoration: none !Important; color: #000 !Important;}
|
||||
.video-list a{text-decoration: none !Important; color: #000 !Important; font-weight: normal; font-size: 10px}
|
||||
|
||||
/* New list of videos... */
|
||||
.video-list2{list-style: none; display: block; padding: 0px; marging: 0px;}
|
||||
.video-list2 li{width: 140px; overflow: hidden; display: block; float: left; margin: 7px; height: 145px; background: #252525;}
|
||||
.video-list2 li .image{overflow: hidden; display: block; height: 100px;}
|
||||
|
||||
.video-list2 li a{font-size: 11px; font-weight: normal; line-height: 13px; color: #fff !Important; text-decoration: none !Important; display: block; text-align: center;}
|
||||
.video-list2 li a:hover{text-decoration: underline !Important;}
|
||||
.video-list2 span.text2{display: block; padding: 4px;}
|
||||
.video-list2 span.image{display: block; background: #efefef}
|
||||
|
||||
/*Video Tutorial Page*/
|
||||
#VideoPlayer{margin-top: 0px; border-bottom: 2px solid #000; padding-bottom: 10px; margin-bottom: 20px;}
|
||||
ul#VideoRelatedVideos{height: 555px; overflow: auto; float: right; width: 220px; list-style: none; padding: 0px; margin: 0px; }
|
||||
ul#VideoRelatedVideos li{display: block; border-bottom: 1px solid #efefef; padding: 10px; height: 50px;}
|
||||
ul#VideoRelatedVideos li.header{padding: 0px 10px 0px 10px; height: 25px}
|
||||
ul#VideoRelatedVideos li img{float: left; margin: 0px 10px 10px 0px; border: 1px solid #efefef; background: #fff}
|
||||
ul#VideoRelatedVideos li h5{padding: 0px; font-weight: normal; margin: 0; font-size: 12px; line-height: 16px}
|
||||
ul#VideoRelatedVideos li h3{padding: 0px; margin: 0px; line-height: 20px}
|
||||
ul#VideoRelatedVideos li.playing{background: #efefef;}
|
||||
|
||||
/*Featured video */
|
||||
#tutorialFeature{border-bottom: 2px solid #EFF2F2; padding: 10px; margin-bottom: 10px; color: #666;}
|
||||
#tutorialFeature h2, #tutorialFeature p, #tutorialFeature li{color: #666;}
|
||||
#tutorialFeature a.preview{margin: 10px; margin-right: 35px; width: 350px; height: 190px; float: left; border: 1px solid #666}
|
||||
#tutorialFeature ul{padding: 0px; list-style: none;}
|
||||
#tutorialFeature ul li{padding-left: 20px; display: block; }
|
||||
#tutorialFeature img{margin-bottom: 20px;}
|
||||
|
||||
|
||||
/*developer page */
|
||||
.ajax ul{list-style: none; padding: 0px; margin: 0px; margin-bottom: 4px}
|
||||
.ajax ul li{display: block; padding: 5px; border-bottom: 1px solid #efefef; height: 50px}
|
||||
.ajax ul li small{display: block; padding: 2px; color: #999}
|
||||
.ajax ul li img{width: 48px; height: 48px; float: left; margin: 0px 7px 5px 0px;}
|
||||
|
||||
/* Training */
|
||||
table.reservations{}
|
||||
table.reservations td, table.reservations th{padding: 7px; text-align: left; border-bottom: 1px solid #efefef}
|
||||
table.reservations tbody th{width: 120px;}
|
||||
table.reservations tbody td{padding-right: 10px;}
|
||||
table.reservations tbody input{padding: 2px; width: 200px; font-size: 16px;}
|
||||
|
||||
.center{display: block; padding: 2px; text-align: center}
|
||||
|
||||
.eventList{margin: 0px; padding: 0px; list-style: none;}
|
||||
.eventList li{margin: 0px; padding: 3px; border-bottom: 1px solid #efefef; display: block;}
|
||||
.eventList h4{padding: 0px; margin: 0}
|
||||
.eventList small{ color: #666;}
|
||||
|
||||
/*RELEASES*/
|
||||
.releases-list a{color: black !Important; text-decoration: none !Important;}
|
||||
.releases-list .summary{
|
||||
padding: 10px; background: #efefef; margin: 7px 7px 7px 20px; display: none;
|
||||
}
|
||||
|
||||
|
||||
/* BLOG */
|
||||
|
||||
p.postmetadata{color: #666; margin-bottom: 30px}
|
||||
.post small{color: #666; margin-top: -10px; padding-bottom: 15px; display: block;}
|
||||
|
||||
|
||||
#commentform{
|
||||
padding-left: 10px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
#commentform #gravatar{
|
||||
float:right;
|
||||
margin-right: 190px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
#commentform label
|
||||
{
|
||||
float:none;
|
||||
}
|
||||
#commentform .form-input{
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#commentform .form-input textarea{
|
||||
width: 400px;
|
||||
}
|
||||
#commentform .error{
|
||||
padding:0 0em;
|
||||
}
|
||||
#commentform label.error{
|
||||
border:none;
|
||||
|
||||
padding:0 0.8em;
|
||||
}
|
||||
#commentform label.error {
|
||||
background:#FFF;
|
||||
border-color:#FBC2C4;
|
||||
color:#8A1F11;
|
||||
}
|
||||
|
||||
#commentPosted {
|
||||
border:1px solid #DDDDDD;
|
||||
margin-bottom:0.5em;
|
||||
padding:0 0.8em;
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
#commentPosted {
|
||||
background:#FFF6BF none repeat scroll 0 0;
|
||||
border-color:#FFD324;
|
||||
color:#514721;
|
||||
}
|
||||
|
||||
ol.commentlist{margin-left: 0px; padding: 0px; list-style: none;}
|
||||
|
||||
ol.commentlist li{
|
||||
margin-bottom: 10px;
|
||||
padding: 10px;
|
||||
background: #FAFAFA;
|
||||
}
|
||||
|
||||
|
||||
ol.commentlist li small.commentmetadata{display: block; font-size: 10px; padding-bottom: 5px;}
|
||||
ol.commentlist li small.commentmetadata a{color: #999;}
|
||||
ol.commentlist li img.gravatar{float: right; margin: 0px 0xp 10px 10px; border: 1px solid #ccc; padding: 1px;}
|
||||
|
||||
/* Twitter */
|
||||
#twitterUpdates{padding: 0px; margin: 0px; list-style: none}
|
||||
#twitterUpdates li{display: block; padding: 5px; margin-bottom: 20px;}
|
||||
#twitterUpdates li img{float: left; clear: left; margin: 0px 20px 20px 0px;}
|
||||
|
||||
|
||||
/* SEARCH */
|
||||
.searchResults{list-style: none; padding: 0px; margin: 0px;}
|
||||
.searchResults li{display: block; padding-left: 60px; background: url(/images/custom/search_text.gif) no-repeat 15px 7px;}
|
||||
|
||||
|
||||
.searchResults li.videochapter, .searchResults li.videotutorial{background-image: url(/images/custom/search_video.gif);}
|
||||
.searchResults li.umbracoblogpost{background-image: url(/images/custom/search_blog.gif);}
|
||||
.searchResults li small{color: #666; display: block; font-size: 11px}
|
||||
.searchResults li h3{margin-bottom: 2px;}
|
||||
.searchResults li p{margin-top: 2px;}
|
||||
|
||||
/* Paypal redirect */
|
||||
body.redirecting{
|
||||
margin-top: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body.redirecting h1{display: block !Important; font-size: 22px}
|
||||
body.redirecting div{
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
width: 600px;
|
||||
padding: 30px;
|
||||
|
||||
font-size: 18px;
|
||||
color: #666;
|
||||
background-color: #fff;
|
||||
border: 5px solid #CCDDFF
|
||||
}
|
||||
|
||||
|
||||
/* -- 23Videos (List for 23videos - used on CG11 ticket page) -- */
|
||||
#video23List { margin:0; padding:0; }
|
||||
#video23List li { display:inline-block; height:140px; list-style-type:none; margin:0 2px; overflow:hidden; position:relative; width:170px;}
|
||||
#video23List li a { color:#fff; display:block; text-decoration:none; }
|
||||
#video23List li img { position:absolute; z-index:10; }
|
||||
#video23List li span { background:#000; background:rgba(0,0,0,0.8); bottom:0; color:#fff; font-size:11px; height:30px; /*40-5-5=30*/ line-height:12px; padding:5px; position:absolute; width:160px; /*170-5-5=160*/ z-index:11; }
|
||||
|
||||
/* -- Image Cover for Convince your boss pdf -- */
|
||||
.convinceCover { -moz-box-shadow:1px 1px 5px #666; -o-box-shadow:1px 1px 5px #666; -webkit-box-shadow:1px 1px 5px #666; box-shadow:1px 1px 5px #666; float:left; margin-right:20px; }
|
||||
|
||||
/* -- CodeGarden homepage panel & button text --*/
|
||||
.tabset li a span.codegarden { background:url(../images/custom/text-codegarden-panel-label.png) no-repeat 0 0; width:92px; }
|
||||
.promo-box .cyan-alt .container { background:url(../images/custom/bg-container-cyan-alt.jpg) no-repeat scroll 50% 0 transparent; }
|
||||
.cgPanelHeader { background:url(../images/custom/text-codegarden-panel-header.png) no-repeat; height:89px; overflow:hidden; text-indent:-9999px; width:459px;}
|
||||
.cgPanelText { width:470px; }
|
||||
.cgBuyTicketBtn { background:url(../images/custom/btn_get-your-ticket.png) no-repeat 0 0; cursor: pointer; float: right; height: 108px; margin:20px 0 0 15px; overflow: hidden; text-indent: -9999px; width: 108px; }
|
||||
.cgBuyTicketBtn:hover { background-position:0 -108px; }
|
||||
|
||||
|
||||
|
||||
/* -- Nivio Slider styles --*/
|
||||
#slider {
|
||||
position:relative;
|
||||
width:692px;
|
||||
height:461px;
|
||||
background:url(../images/nivio-slider-2.4/loading.gif) no-repeat 50% 50%;
|
||||
/*margin-bottom:50px;*/
|
||||
}
|
||||
#slider img {
|
||||
position:absolute;
|
||||
top:0px;
|
||||
left:0px;
|
||||
display:none;
|
||||
}
|
||||
#slider a {
|
||||
border:0;
|
||||
display:block;
|
||||
}
|
||||
|
||||
.nivo-controlNav {
|
||||
position:absolute;
|
||||
left:260px;
|
||||
bottom:-42px;
|
||||
}
|
||||
.nivo-controlNav a {
|
||||
display:block;
|
||||
width:22px;
|
||||
height:22px;
|
||||
background:url(../images/nivio-slider-2.4/bullets.png) no-repeat;
|
||||
text-indent:-9999px;
|
||||
border:0;
|
||||
margin-right:3px;
|
||||
float:left;
|
||||
}
|
||||
.nivo-controlNav a.active {
|
||||
background-position:0 -22px;
|
||||
}
|
||||
|
||||
.nivo-directionNav a {
|
||||
display:block;
|
||||
width:30px;
|
||||
height:30px;
|
||||
background:url(../images/nivio-slider-2.4/arrows.png) no-repeat;
|
||||
text-indent:-9999px;
|
||||
border:0;
|
||||
}
|
||||
a.nivo-nextNav {
|
||||
background-position:-30px 0;
|
||||
right:15px;
|
||||
}
|
||||
a.nivo-prevNav {
|
||||
left:15px;
|
||||
}
|
||||
|
||||
.nivo-caption
|
||||
{
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
.nivo-caption p { color:#fff; }
|
||||
|
||||
.nivo-caption a {
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* EDITOR PROPERTIES - PLEASE DON'T DELETE THIS LINE TO AVOID DUPLICATE PROPERTIES */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,39 @@
|
||||
.dataTable
|
||||
{
|
||||
width:100% !important;
|
||||
table-layout: auto;
|
||||
border-collapse: collapse;
|
||||
border:#ccc 1px solid;
|
||||
}
|
||||
/*Header and Pager styles*/
|
||||
.dataTable thead tr
|
||||
{
|
||||
background-image: url(../images/HeaderWhiteChrome.jpg);
|
||||
background-position:center;
|
||||
background-repeat:repeat-x;
|
||||
background-color:#fff;
|
||||
border-bottom:solid 1px #ccc;
|
||||
}
|
||||
.dataTable th
|
||||
{
|
||||
padding: 5px;
|
||||
color: #333;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
|
||||
/*RowStyles*/
|
||||
.dataTable td
|
||||
{
|
||||
padding: 5px;
|
||||
border-right: solid 1px #ccc;
|
||||
}
|
||||
|
||||
.dataTable .borderTop
|
||||
{
|
||||
border-bottom: solid 1px #ccc;
|
||||
}
|
||||
|
||||
.dataTable .right{
|
||||
text-align:right;
|
||||
}
|
||||
@@ -0,0 +1,761 @@
|
||||
/*OVERALL LAYOUT*/
|
||||
html, body{padding: 0px; margin: 0px; border: none; height: 100%;}
|
||||
body{font-size: 12px; background: #f5f5f5 url(img/body_bg.gif) repeat-y top center;
|
||||
font-family: Trebuchet MS,Arial,sans-serif; color: #2d2c2e; padding-bottom: 0px;}
|
||||
|
||||
body#tinymce{background-image: none !Important; text-align: left !Important; padding: 10px !Important;}
|
||||
|
||||
#main{text-align: center;
|
||||
min-height: 100%; height: auto !Important; height: 100%;
|
||||
}
|
||||
|
||||
.wrapper, #contentArea{margin: auto; text-align: center; width: 980px; position: relative}
|
||||
.divider{padding: 5px; border-bottom: 1px #999 dotted; clear: both; margin-bottom: 10px;}
|
||||
|
||||
#body, .subpage{text-align: left; }
|
||||
body a{color: #2244BB }
|
||||
|
||||
/*TOP + TOPNavi */
|
||||
#top{
|
||||
background: url(img/top_bg_green2.gif) repeat-x top #8ECA56;
|
||||
position:relative; margin-bottom: 0px; height: 83px;}
|
||||
|
||||
#top #memberInfo{background: #82b84f; height: 20px; padding: 5px;}
|
||||
|
||||
#top a#logo{display: block; top: 9px; left: 0px; padding: 36px 161px 0px 0px; width: 1px; height: 1px; overflow: hidden;
|
||||
background: url(img/top_logo.png) no-repeat left top; position: absolute;
|
||||
}
|
||||
|
||||
#top ul{float: right; list-style: none; margin: 12px 0 0 18px; padding: 0px; height: 29px; display: block;}
|
||||
#top ul li{display: block; float: left; padding: 0; padding-left: 5px; height: 29px;}
|
||||
|
||||
#top ul li a{
|
||||
color:#FFFFFF; display:block;
|
||||
font-size:1.2em; font-variant:normal; font-weight:bold;
|
||||
padding: 7px; text-decoration: none; height: 27px}
|
||||
|
||||
|
||||
#top ul li a:hover{text-decoration: underline;}
|
||||
#top ul li.current a{background: url(img/top_nav_a_bg.png) no-repeat bottom center;}
|
||||
|
||||
#top #memberHeaderProfile{position: absolute; top: 5px; right: 7px; font-size: 11px; color: #fff; text-align: right; width: 700px;}
|
||||
#top #memberHeaderProfile a{color: #fff; margin-left: 5px;}
|
||||
#top #memberHeaderProfile div{display: inline !Important;}
|
||||
|
||||
|
||||
#searchBar{background: #f4f4f2; border-bottom: 1px solid #dadad9; position: relative; padding: 0px; font-weight: bold; padding: 5px;}
|
||||
#searchBar input.field{clear: both; margin: 0px; font-size: 1.3em; border: 1px solid #ccc; background: #fff; width: 260px}
|
||||
#searchBar #bt_search{position: absolute; right: 0px; margin: 0px; font-size: 1.3em;}
|
||||
|
||||
#searchBar .ui{text-align: left; width: 350px; position: relative; margin: auto;}
|
||||
|
||||
#searchBarOptions{display: none; padding-top: 10px;}
|
||||
#searchBarOptions label{padding-right: 15px; padding-left 5px;}
|
||||
|
||||
/* Box Elemenet */
|
||||
.box {
|
||||
background:#F6F7F7;
|
||||
border:1px solid #F2F2F2;
|
||||
display:block;
|
||||
list-style-image:none;
|
||||
list-style-position:outside;
|
||||
list-style-type:none;
|
||||
margin:0 0 20px;
|
||||
padding:0 0 6px;}
|
||||
|
||||
.box h4{color:#444444; font-size:12px; font-weight:bold; line-height:12px; padding: 10px !Important; background: #F0F2F2;
|
||||
margin-top: 0px; margin-bottom: 0px; position: relative;
|
||||
}
|
||||
|
||||
.rounded{
|
||||
-webkit-border-radius: 10px; /* Safari prototype */
|
||||
-moz-border-radius: 10px; /* Gecko browsers */
|
||||
border-radius: 10px; /* Everything else - limited support at the moment */
|
||||
}
|
||||
|
||||
.infoBox{padding: 7px 7px 7px 50px; height: auto !Important; min-height: 35px; height: 35px; background: #DDF8CC no-repeat 10px 7px; font-size: 11px;}
|
||||
#forumTools{position: absolute; top: 5px; right: 0px; width: 270px; background-image: url(img/icons/info.png); }
|
||||
#projectsInfo{position: absolute; top: 5px; right: 0px; width: 270px; background-image: url(img/icons/add.png); }
|
||||
#newTopic{position: absolute; top: 5px; right: 0px; width: 270px; background-image: url(img/icons/add.png); }
|
||||
#solutionBox{position: absolute; top: 5px; right: 0px; width: 270px; background-image: url(img/icons/add.png); }
|
||||
|
||||
.infoBox ul{list-style: none; margin: 0px; padding: 0px;}
|
||||
.infoBox ul li{padding: 0px 0px 3px 0px;}
|
||||
.infoBox a{padding: 2px; font-size: 12px;}
|
||||
.infoBox small{color: #999; display: block; padding-top: 2px;}
|
||||
|
||||
div.buttons{padding: 20px; background: #F0F2F2; font-size: 18px;}
|
||||
|
||||
a.button{padding: 10px 0px 10px 0px; border: 1px solid #EFEFEF; text-decoration: none;}
|
||||
a.button em{border: 5px solid #fff; padding: 5px; color: #fff; background: #F5366D; }
|
||||
|
||||
/*Breadcrumb*/
|
||||
#breadcrumb{margin: 0px; margin-top: -10px !Important; padding: 4px; list-style: none; font-size: 10px; color: #999; display: block; margin-bottom: 10px;}
|
||||
#breadcrumb li{display: inline; padding-right: 5px; margin: 0px;}
|
||||
#breadcrumb li a{color: #999; padding-right: 3px;}
|
||||
|
||||
|
||||
/*Footer*/
|
||||
.push{height: 60px; clear: both;}
|
||||
#footer{font-size: 10px; background: #252525; color: #fff; padding: 20px; height: 19px; text-align: center;
|
||||
border-top: 1px dotted #999; margin-top: -60px; clear: both; position: relative;}
|
||||
|
||||
#footer a{color: #fff !Important}
|
||||
|
||||
/* FORM ELEMENTS */
|
||||
label.inputLabel {font-weight:bold; width: 10em; display: block; float: left; padding: 1.5em 1.5em 1em 0; text-align: right; }
|
||||
|
||||
fieldset {padding:0em;margin:1.5em 0 0 0;border:none; border-bottom:1px solid #ccc;}
|
||||
fieldset small{display: block;}
|
||||
legend {font-weight:bold;font-size:1.2em;}
|
||||
input.text, input.title, textarea, select {margin:0.5em 0;border:1px solid #bbb;}
|
||||
input.text:focus, input.title:focus, textarea:focus, select:focus {border:1px solid #666;}
|
||||
input.text, input.title, select.title {width:300px;padding:5px;}
|
||||
input.title, select.title {font-size:1.5em;}
|
||||
|
||||
.buttons input{font-size: 18px;}
|
||||
|
||||
textarea {width:300px;height:250px;padding:5px;}
|
||||
.error, .notice, .success, .focus {padding:.2em;margin-bottom:1em;border:2px solid #ddd;}
|
||||
.error {background:#FBE3E4 !Important;color:#8a1f11;border-color:#FBC2C4 !Important;}
|
||||
.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
|
||||
.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
|
||||
|
||||
.error * {color:#8a1f11 !Important;}
|
||||
.notice * {color:#514721;}
|
||||
.success * {color:#264409;}
|
||||
|
||||
.focus{border: none; border-top: 1px solid; border-bottom: 1px solid; border-color: #999; background: #F0F0F0;}
|
||||
|
||||
.spotlight{padding: 0px; margin-bottom: 20px; border: none; background: none;}
|
||||
.spotlight h3, .spotlight h4, .spotlight h2{position: relative; font-size: 14px; margin-bottom: 0px; margin-top: 0px; color: #333; border-bottom: 3px solid #efefef; padding-bottom: 4px;}
|
||||
.spotlight h2{font-size: 18px;}
|
||||
|
||||
.spotlight ul{list-style: none; margin: 0px; padding-left: 10px;}
|
||||
.spotlight ul.pager{padding-left: 0px;}
|
||||
.spotlight li{padding: 3px;}
|
||||
.spotlight a{font-size: 12px;}
|
||||
|
||||
.spotlight ul.summary{padding: 5px 0px;}
|
||||
.spotlight ul.summary li{padding-bottom: 12px !Important; border: none !Important}
|
||||
.spotlight a.rss_small{top: 3px;}
|
||||
|
||||
dt{font-style: italic;}
|
||||
dd{padding-bottom: 5px;}
|
||||
label.error, label.notice, label.success {background: none; border: none; padding-left: 1em;}
|
||||
|
||||
input.wikiheadline{display: block; background: white; border: 1px solid #DEE4EF; color: #46484B; width: 100%;}
|
||||
|
||||
/* SEARCH RESULTS */
|
||||
#search .result{padding: 10px 10px 25px 80px; background: 20px 10px no-repeat url(search/forum.gif);}
|
||||
|
||||
#search .result h3{padding: 0px; font-weight: normal; margin: 0px;}
|
||||
#search .result h3 a{font-size: 14px; font-weight: bold; display: block; color: #333; text-decoration: none;}
|
||||
#search .result a:hover{text-decoration: underline;}
|
||||
|
||||
#search .result a *{color: inherit}
|
||||
#search .result p{color: #000; font-size: 12px; padding: 0px; margin: 0px;}
|
||||
#search .result cite{color: #666; font-size: 11px;}
|
||||
#search .result em{font-weight: bold !Important;}
|
||||
|
||||
#search .wiki{background-image: url(search/wiki.gif);}
|
||||
#search .project{background-image: url(search/project.gif);}
|
||||
#search .forum{background-image: url(search/forum.gif);}
|
||||
#search .solution{background-image: url(search/solved.gif);}
|
||||
|
||||
/* Member Badge */
|
||||
div.memberBadge{background: #f0f0f0; padding: 10px 0px 10px 0px; text-align: center;}
|
||||
div.memberBadge *{color: #333;}
|
||||
div.memberBadge img{display: block; margin: auto; border: 1px solid #999;}
|
||||
div.memberBadge span{padding-top: 8px; display: block; font-weight: bold; font-size: 12px}
|
||||
div.memberBadge small{display: block; font-weight: normal; margin-top: -6px; color: #999}
|
||||
|
||||
/* FRONTPAGE */
|
||||
#dashboard{width: 980px; position: relative}
|
||||
#sidebar{text-align: left; width: 300px; float: right; margin:20px 0px 20px 0px;}
|
||||
|
||||
.callToAction h1{font-size: 20px;}
|
||||
.callToAction p{font-size: 12px;}
|
||||
.callToAction h1 a{color: #066808; text-decoration: none;}
|
||||
|
||||
ul.summary{list-style: none; padding: 7px; margin: 0px; }
|
||||
ul.summary li{display: block; border-bottom: #e7e7e7 1px dotted; padding: 3px;}
|
||||
ul.summary li a{display: block; font-size: 11px;}
|
||||
ul.summary li small a{display: inline;}
|
||||
|
||||
ul.summary img{float: left; height: 32px; width: 32px; margin-right: 10px; overflow: hidden; font-size: 1px;}
|
||||
ul.forumTopics li{height: auto !Important; height: 37px; min-height: 37px;}
|
||||
|
||||
ul.wiki li{padding-left: 42px; background: url(img/doc.png) no-repeat left top;}
|
||||
ul.projects li{padding-left: 42px; background: url(img/package.png) no-repeat left top;}
|
||||
|
||||
a.rss_small{font-size: 9px; position: absolute; right: 10px; top: 8px; font-weight: normal; display: block;
|
||||
padding: 14px 14px 0px 0px; overflow: hidden; height: 0px; width: 0px; background: url(img/rss.png) no-repeat top left;
|
||||
}
|
||||
|
||||
a.more{display: block; font-size: 11px; color: #999; text-align: center}
|
||||
|
||||
/* PROJECTS */
|
||||
a.projectDownload{background: #ddf8cc url(img/down.png) no-repeat 5px 10px; padding: 10px 10px 10px 50px; display: block; margin-bottom: 10px; text-decoration: none;}
|
||||
a.projectDownload span{color: #999; text-decoration: none !Important; display: block; font-size: 80%;}
|
||||
|
||||
a.projectPurchase{background: #cce2f8 url(img/piggybank.png) no-repeat 5px 10px; padding: 10px 10px 10px 50px; display: block; margin-bottom: 10px; text-decoration: none;}
|
||||
a.projectPurchase span{color: #999; text-decoration: none !Important; display: block; font-size: 80%;}
|
||||
|
||||
.openForCollab{background: #cce2f8 url(img/group.png) no-repeat 5px 10px; padding: 10px 10px 10px 50px; display: block; margin-bottom: 10px; text-decoration: none;}
|
||||
.openForCollab span{color: #999; text-decoration: none !Important; display: block; font-size: 80%;}
|
||||
|
||||
|
||||
.projectGroups{margin: 0; padding: 0; list-style: none;}
|
||||
.projectGroups li{margin: 0; float: left;}
|
||||
.projectGroups li div{width: 380px; margin: 15px; margin-right: 30px; background: top left no-repeat; padding-left: 50px; height: 80px}
|
||||
|
||||
.projectGroups h3{padding: 0px; font-weight: normal; margin: 0px;}
|
||||
.projectGroups h3 a{font-size: 14px; font-weight: bold; display: block; color: #333; text-decoration: none;}
|
||||
.projectGroups a:hover{text-decoration: underline;}
|
||||
|
||||
.projectGroups a *{color: inherit}
|
||||
.projectGroups p{color: #000; font-size: 12px; padding: 0px; margin: 0px;}
|
||||
|
||||
|
||||
/* Options */
|
||||
#body .options{text-align: right; padding: 4px; font-size: 11px; margin-top:0px; margin-bottom: 10px;}
|
||||
/*#body .options ul{list-style: none; margin: 0px; padding: 0px; display: block; height: 25px;}
|
||||
#body .options ul li{float: left; padding-right: 15px;}
|
||||
#body .options ul li a{font-size: 11px;}*/
|
||||
|
||||
|
||||
#body .options ul li.create{float: right!important;}
|
||||
|
||||
|
||||
dl.summary{padding: 7px; font-size: 11px;}
|
||||
|
||||
|
||||
#divFileProgressContainer{width: 300px; margin-top: 10px;}
|
||||
#divFileProgressContainer .progressContainer{border: 1px solid #ccc; padding: 3px;}
|
||||
#divFileProgressContainer .progressBarStatus{font-size: 10px; color: #999; }
|
||||
#divFileProgressContainer .progressBarInProgress{background: green; height: 2px; overflow: hidden;}
|
||||
|
||||
|
||||
|
||||
/* Member Profile */
|
||||
#profileNavigation{background: #F0F0F0; padding: 10px; border-bottom: 1px solid #ccc}
|
||||
#profileNavigation #memberInfo{height: 70px; float: right; width: 300px; background: no-repeat right top; text-align: right; padding-right: 10px;}
|
||||
#profileNavigation #memberInfo h3{color: #999; font-size: 18px; margin-bottom: 0px; margin-top: 5px;}
|
||||
#profileNavigation #memberInfo h4{color: #999; font-size: 13px; margin: 0px;}
|
||||
#profileNavigation #memberAvatar {float: right;}
|
||||
#profileNavigation #memberAvatar img {height: 50px;}
|
||||
#profileNavigation ul{padding: 17px; display: block; list-style: none; margin: 0px; font-size: 13px; font-weight: bold; color: #999;}
|
||||
#profileNavigation ul li{display: inline;}
|
||||
#profileNavigation ul a{padding: 10px;}
|
||||
|
||||
#memberProfile #avatar{float: left; margin: 20px 25px 0px 0px; width: 55px}
|
||||
#memberProfile #details{float: left; width: 800px;}
|
||||
#memberProfile .badge{margin: auto; margin-top: 10px;}
|
||||
|
||||
.yourProjects
|
||||
{
|
||||
list-style-type:none;
|
||||
margin-left:0;
|
||||
}
|
||||
|
||||
.yourProjects .projectImage
|
||||
{
|
||||
float:left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.yourProjects .projectActions
|
||||
{
|
||||
float:left;
|
||||
}
|
||||
.yourProjects h2
|
||||
{
|
||||
font-weight: normal;
|
||||
}
|
||||
.yourProjects p a
|
||||
{
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
/* Buddy Icon Form */
|
||||
#buddyIconForm {padding: 10px; display: block;}
|
||||
#buddyIconForm .iconOption{width: 320px; display: block; text-align: center; float: left; font-size: 18px; font-weight: bold; color: #999;}
|
||||
#buddyIconForm .iconOption img{display: block; margin: auto; border: none;}
|
||||
|
||||
#webcamHolder{width: 320px; float: right; margin: 0px 0px 20px 20px;}
|
||||
|
||||
/* VOTING */
|
||||
.voting{text-align: center; background: #FFF6BF; border: 2px solid #FFD324; padding: 10px 0px 10px 0px;}
|
||||
.voting span{font-size: 25px; font-weight: bold;
|
||||
color: #514721; display: block; text-align: center; margin-bottom: 7px;}
|
||||
.voting span a{color: #514721; text-decoration: none; border-bottom: 1px dotted #999}
|
||||
|
||||
.voting a.vote, .voting a.noVote{border: 1px solid #eacf5c; background: #fff; color: #514721; padding: 2px; font-size: 9px; text-decoration: none;}
|
||||
.voting a.noVote{border: 1px solid #eacf5c; background: #FFF6BF; color: #eacf5c;}
|
||||
|
||||
|
||||
.voting span.good a{color: green;}
|
||||
.voting span.bad a{color: red;}
|
||||
|
||||
.voting a img{border: none;}
|
||||
.voting .like, .voting .dislike, .voting .kill{font-size: 11px; color: #066808;}
|
||||
|
||||
.voting .TopicSolver{border: 1px solid #066808; padding: 2px; display: block; margin-top: 3px }
|
||||
|
||||
#moveList{ z-index: 99999; text-align: right; display: none; margin: 7px 0px 0px 20px; padding: 7px; border: 1px solid #ccc; background: #fff; position: absolute; width: 250px;}
|
||||
#moveList li{text-align: left !Important; padding: 0px; list-style: none; display: block !Important; float: none !Important;}
|
||||
#moveList li a{padding: 3px; display: block !Important; float: none;}
|
||||
|
||||
.voting .kill, .voting #ToggleMoveList{background: #fff !Important; color: #680708; border: 1px solid #680708; padding: 3px; display: block; font-size: 11px; margin-top: 10px;}
|
||||
#ToggleMoveList{border-color: #ccc !Important; color: blue !Important;}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Pager */
|
||||
.pager{margin: 0px; padding: 10px 0px 0px 0px; list-style: none;}
|
||||
.pager li{display: block; padding-right: 2px; margin: 0px; margin-bottom: 9px;float:left;}
|
||||
.pager li a{font-size: 11px; padding: 3px 6px; border: 1px solid #ccc; text-decoration: none;}
|
||||
.pager li.current a{border: none;}
|
||||
.pager li a:hover{color: white; background: #2244BB;}
|
||||
.pager li.current a{font-weight: bold;}
|
||||
|
||||
#memberLoader span, #memberLoader_weeks span, #memberLoader_year span{display: block; background: url(img/ajax-loadercircle.gif) no-repeat center left;
|
||||
font-size: 11px; color: #999; margin: 10px; padding: 5px 30px 10px 40px; width: 200px;}
|
||||
|
||||
/* Member Locator */
|
||||
|
||||
|
||||
#memlocresults{
|
||||
margin-top: 10px;
|
||||
}
|
||||
#memlocradius{
|
||||
width: 470px;
|
||||
|
||||
}
|
||||
#memlocslider{
|
||||
float:right;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* SIMPLE MODAL */
|
||||
#simplemodal-container{background:#FFF6BF; color:#514721; width: 520px; border: 4px solid #FFD324; padding: 20px;}
|
||||
#simplemodal-container h3, #simplemodal-container p{color:#514721; margin: 0px; padding: 0px;}
|
||||
#simplemodal-container h3{font-size: 20px}
|
||||
#simplemodal-container textarea{display: block; padding: 5px; width: 510px; height: 50px;}
|
||||
#modalCloseButton{position: absolute; top: 10px; right: 10px; color: #514721; font-size: 11px;}
|
||||
|
||||
/* Voting history */
|
||||
ul.votingHistory{display: block; padding: 5px; margin: 0px; margin-bottom: 10px; list-style: none; overflow: auto; height: 400px;}
|
||||
ul.votingHistory li{display: block; padding: 10px 10px 10px 35px; margin: 0px; border-top: 1px dotted #ccc; font-size: 11px; background: 5px 12px no-repeat;}
|
||||
|
||||
ul.votingHistory li.up{background-image: url(img/icons/thumb_up.png); color: #118B00}
|
||||
ul.votingHistory li.down{background-image: url(img/icons/thumb_down.png); color: #8B0006}
|
||||
|
||||
|
||||
/* NOTIFICATION BANNER */
|
||||
#notification{text-align: center; background:#FFF6BF; color:#514721; font-size: 14px; font-weight: bold;
|
||||
border-bottom: 1px solid #FFD324; padding: 10px;
|
||||
|
||||
}
|
||||
|
||||
/*Project Tagger*/
|
||||
.tagger { float:left; }
|
||||
.tagAdd { margin:0 0 0 6px;}
|
||||
.tagList { list-style:none; padding:0; margin:0; clear:both; border-left:3px solid #ddd; padding-left:4px; float:left; margin:5px 10px;}
|
||||
.tagName { cursor:pointer; float:left; clear:both; padding:0.1em 1.5em 0.1em 0.4em;}
|
||||
.tagName:hover { background:#efefef url(img/bullet_toggle_minus.png) right 2px no-repeat; }
|
||||
|
||||
|
||||
|
||||
/* TAGGER AUTOCOMPLETE */
|
||||
.ac_results {
|
||||
padding: 0px;
|
||||
border: 1px solid black;
|
||||
background-color: white;
|
||||
overflow: hidden;
|
||||
z-index: 99999;
|
||||
}
|
||||
|
||||
.ac_results ul {
|
||||
width: 100%;
|
||||
list-style-position: outside;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.ac_results li {
|
||||
margin: 0px;
|
||||
padding: 2px 5px;
|
||||
cursor: default;
|
||||
display: block;
|
||||
/*
|
||||
if width will be 100% horizontal scrollbar will apear
|
||||
when scroll mode will be used
|
||||
*/
|
||||
/*width: 100%;*/
|
||||
font: menu;
|
||||
font-size: 12px;
|
||||
/*
|
||||
it is very important, if line-height not setted or setted
|
||||
in relative units scroll will be broken in firefox
|
||||
*/
|
||||
line-height: 16px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ac_loading {
|
||||
background: white url('img/indicator.gif') right center no-repeat;
|
||||
}
|
||||
|
||||
.ac_odd {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.ac_over {
|
||||
background-color: #0A246A;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/*TAGCLOUD*/
|
||||
#tagCloud
|
||||
{
|
||||
margin-top: 10px;
|
||||
padding:10px;
|
||||
margin-bottom:10px;
|
||||
text-align:justify;
|
||||
}
|
||||
|
||||
#tagCloud A
|
||||
{
|
||||
text-decoration:none;
|
||||
margin-left:5px;
|
||||
margin-right:5px;
|
||||
font-family:Verdana, Arial;
|
||||
text-transform:lowercase;
|
||||
color: #8a8a8a;
|
||||
}
|
||||
|
||||
#tagCloud A:hover, #tagCloud a.current
|
||||
{
|
||||
color:#000;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
#tagCloud A.weight1
|
||||
{
|
||||
font-size: 2em;
|
||||
font-weight:bolder;
|
||||
}
|
||||
#tagCloud A.weight2
|
||||
{
|
||||
font-size:1.7em;
|
||||
font-weight:bolder;
|
||||
}
|
||||
#tagCloud A.weight3
|
||||
{
|
||||
font-size: 1.4em;
|
||||
font-weight:bolder;
|
||||
}
|
||||
#tagCloud A.weight4
|
||||
{
|
||||
|
||||
font-size: 1.1em;
|
||||
}
|
||||
#tagCloud A.weight5
|
||||
{
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
#tagCloud span
|
||||
{
|
||||
font-size: 10px !Important;
|
||||
color: #595a5a!Important;
|
||||
font-weight: normal !Important;
|
||||
}
|
||||
|
||||
.spotlight ul.projectsTagged li{border-bottom:1px solid #EFEFEF !important;}
|
||||
ul.projectsTagged li h5 a, .projectsTagged h5{text-decoration: none; font-weight: bold; font-size: 14px; margin-bottom: 0px; margin-top: 10px; color: #000;}
|
||||
ul.projectsTagged li h5 a:hover{text-decoration: underline;}
|
||||
|
||||
|
||||
.projectsTagged p{#search .result p{color: #000; font-size: 12px; padding: 0px; margin: 0px;}}
|
||||
|
||||
.hLabel{
|
||||
font-size: 10px;
|
||||
color: #adc251;
|
||||
}
|
||||
|
||||
/* Project Page */
|
||||
#project{position: relative;}
|
||||
#projectOwner{float: left; width: 55px; text-align: center; margin: 10px 20px 0px 0px;}
|
||||
#projectDescription{float: left;}
|
||||
|
||||
#projectvoting{position: absolute; top: 10px; right: 0px;}
|
||||
#project .options{border-top: #efefef 1px solid; font-size: 11px; padding: 2px 0px 25px 0px; margin-right: 80px }
|
||||
#project .badge{margin: auto; margin-top: 10px;}
|
||||
|
||||
/* Project Screenshots */
|
||||
.projectscreenshot{
|
||||
display:block;
|
||||
float:left;
|
||||
padding:10px;
|
||||
background-color: #F6F7F7;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.projectscreenshot:hover{
|
||||
background-color: #F0F2F2;
|
||||
}
|
||||
|
||||
a.badge{display: block; background: no-repeat center center; width: 40px; height: 40px; text-decoration: none; border: none; overflow: hidden; text-indent: -9999px;}
|
||||
a.mvp{background-image: url(badges/mvp.png);}
|
||||
a.core{background-image: url(badges/core.png);}
|
||||
a.hq{background-image: url(badges/hq.png);}
|
||||
a.vendor{background-image: url(badges/vendor.png);}
|
||||
a.admin{background-image: url(badges/admin.png);}
|
||||
a.mvpcandidate {background-image: url(badges/mvp_nominee.png);}
|
||||
|
||||
/* Options */
|
||||
#options{display: block; height: 20px; padding: 5px; border-top: #efefef 1px solid; margin: 10px 0 0px 0;}
|
||||
#options ul{list-style: none; margin: 0px; padding: 0px; display: block; height: 20px;}
|
||||
#options ul li{float: left; padding-right: 15px; margin: 0px;}
|
||||
#options ul li a{font-size: 11px; margin: 0px;}
|
||||
#options ul li.right{float: right}
|
||||
|
||||
/* Alert */
|
||||
.alert{
|
||||
background:#FFF6BF;
|
||||
color:#514721;
|
||||
font-size: 14px;
|
||||
border: 1px solid #FFD324;
|
||||
padding: 5px;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
|
||||
.confirm{
|
||||
background:#8ECA56;
|
||||
|
||||
font-size: 14px;
|
||||
border: 1px solid #6AAE30;
|
||||
padding: 5px;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
/* Top Notifications */
|
||||
#topNotificationContainer
|
||||
{
|
||||
display:none;
|
||||
}
|
||||
.topNotification
|
||||
{
|
||||
background-color: #FFF6BF;
|
||||
padding: 7px 0px;
|
||||
border-bottom:1px solid #FFD324;
|
||||
color: #735005;
|
||||
font-weight:bold;
|
||||
}
|
||||
.notifyClose
|
||||
{
|
||||
display:block;
|
||||
float:right;
|
||||
cursor:pointer;
|
||||
border: 2px solid #FFD324;
|
||||
background-color: #FFF6BF;
|
||||
color: #735005;
|
||||
padding: 0px 4px;
|
||||
margin-right: 20px;
|
||||
font-family: Arial;
|
||||
text-align:center;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.notifyClose a
|
||||
{
|
||||
color: ##514721;
|
||||
}
|
||||
|
||||
/* General */
|
||||
|
||||
a.remove
|
||||
{
|
||||
color:#680708;
|
||||
}
|
||||
|
||||
|
||||
/* Project mark verified */
|
||||
.verifyWikiFile
|
||||
{
|
||||
cursor:pointer;
|
||||
color:green;
|
||||
margin-top: 5px;
|
||||
padding-left:18px;
|
||||
background: url('img/verify.png') no-repeat bottom left;
|
||||
font-size:100% !Important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* EDITOR PROPERTIES - PLEASE DON'T DELETE THIS LINE TO AVOID DUPLICATE PROPERTIES */
|
||||
@@ -0,0 +1,109 @@
|
||||
/*FONTS */
|
||||
|
||||
body{font-family: Arial, Helvetica, sans-serif; font-size: 13px;}
|
||||
|
||||
h1, h2, h3, h4, h5, p{font-family: Arial, Helvetica, sans-serif; color: #333;}
|
||||
a{color: #1A6AB3;}
|
||||
|
||||
p{font-size: 13px; margin-top: 7px; margin-bottom: 15px; color: #333; line-height: 18px}
|
||||
small{font-size: 11px; color: #5b5b5b;}
|
||||
|
||||
em{color: #332e2e; font-style: normal; font-weight: bold;}
|
||||
h1{font-size: 28px; font-weight: bold; margin-bottom: 7px;}
|
||||
h2{font-size: 18px; font-weight: bold; margin-top: 0px; margin-bottom: 3px;}
|
||||
h3{font-size: 14px; font-weight: bold;}
|
||||
h4{font-size: 12px; font-weight: bold; }
|
||||
h5{font-size: 11px; font-weight: bold; }
|
||||
|
||||
code, pre {
|
||||
background-color:#F2F2F2;
|
||||
border:1px solid #E3E3E3;
|
||||
border-left: 4px solid #e3e3e3;
|
||||
display:block !Important;
|
||||
font-family:monospace;
|
||||
font-size:12px;
|
||||
line-height:1.4em;
|
||||
margin:0 6em 1em 1em;
|
||||
padding: 0.5em;
|
||||
max-width: 650px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
code pre{padding: 0px; border: none}
|
||||
|
||||
|
||||
a.act{padding: 2px; padding-left: 20px; color: #252525; background: no-repeat center left;}
|
||||
|
||||
|
||||
a.topics{background-image: url(img/ico/balloons.png);}
|
||||
a.yourtopics{background-image: url(img/ico/balloon-smiley.png);}
|
||||
|
||||
a.edit{background-image: url(img/ico/pencil-small.png);}
|
||||
a.delete{background-image: url(img/ico/cross-small.png);}
|
||||
a.move{background-image: url(img/ico/document-tree.png);}
|
||||
|
||||
a.subscribe{background-image: url(img/ico/mail--plus.png);}
|
||||
a.UnSubscribeTopic, a.UnSubscribeForum{background-image: url(img/ico/mail--delete.png);}
|
||||
a.upload{background-image: url(img/ico/document--plus.png);}
|
||||
#options a.history{background-image: url(img/ico/clock-history.png);}
|
||||
|
||||
|
||||
.options{padding: 3px !Important;}
|
||||
|
||||
a.add{background: #8ECA56 2px 2px url(img/ico/plus-button.png) no-repeat; padding: 3px 3px 3px 25px;
|
||||
border: 1px solid #618A3B; color: #fff; text-decoration: none; margin-top: 2px;
|
||||
-webkit-border-radius: 3px; /* Safari prototype */
|
||||
-moz-border-radius: 3px; /* Gecko browsers */
|
||||
border-radius: 3px; /* Everything else - limited support at the moment */
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* EDITOR PROPERTIES - PLEASE DON'T DELETE THIS LINE TO AVOID DUPLICATE PROPERTIES */
|
||||
@@ -0,0 +1,181 @@
|
||||
/* GENERAL STYLES */
|
||||
body,html{padding: 10px !Important; margin: 0px !Important; padding: 10px; background: white; background-image: none !Important;}
|
||||
#closeHandle{display: none !Important;}
|
||||
|
||||
#header{font-size: 14px; font-weight: bold; color: rgb(153, 153, 153); margin-bottom: 7px;}
|
||||
|
||||
#header img{display: none !Important;}
|
||||
img.gradient{display: none !Important;}
|
||||
#theForm{margin-top: -15px; width: 100%; position: relative;}
|
||||
#Table1{width: auto !Important; width: 100%; display: block; margin: 0px;}
|
||||
|
||||
#profileInfo{font-size: 10px; position: absolute; right: 10px; top: 10px; color: #999;}
|
||||
.propertyPane{padding: 10px; background-repeat: repeat-x}
|
||||
|
||||
a{color: black;}
|
||||
|
||||
body {
|
||||
margin: 2px
|
||||
}
|
||||
|
||||
#body{margin-top: 50px;}
|
||||
|
||||
.repoBox{display: block; clear: both; padding: 10px; border-bottom: 1px solid #ccc; margin-bottom: 15px;}
|
||||
.noborder{border: none !Important;}
|
||||
h4{margin-top: 0px; margin-bottom: 15px; font-size: 15px;}
|
||||
.gradient{background-repeat: no-repeat;}
|
||||
|
||||
#header{position: absolute; top: 10px; right: 15px;}
|
||||
#profile{text-align: right; font-size: 10px;}
|
||||
#profile input{width: 200px; margin-left: 15px;}
|
||||
|
||||
|
||||
.deliLeft{
|
||||
|
||||
width: 200px; /*Width of left column*/
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.deliRight
|
||||
{
|
||||
float: none !Important;
|
||||
margin-left: 230px !Important;
|
||||
width: auto !Important;
|
||||
}
|
||||
a.viewAll{top: 14px !Important;}
|
||||
|
||||
|
||||
|
||||
.deliNav{background: none !Important; padding-left: 0;}
|
||||
.deliNav a:hover{text-decoration: underline !Important;}
|
||||
|
||||
|
||||
/* Project page */
|
||||
|
||||
|
||||
|
||||
/*MOVE STUFF */
|
||||
#breadcrumb{position: absolute; top: 20px; left: 10px; margin: 0px; margin-top: -10px !Important; padding: 4px; list-style: none; font-size: 11px; color: #333; display: block; margin-bottom: 10px;}
|
||||
#breadcrumb li{display: inline; padding-right: 5px; margin: 0px;}
|
||||
#breadcrumb li a{color: #999; padding-right: 3px;}
|
||||
|
||||
/*HIDE STUFF*/
|
||||
h1{display: none !Important;}
|
||||
.options{display: none !Important;}
|
||||
.deliFeatureBox{display: none !Important;}
|
||||
#projectOwner{display: none !Important;}
|
||||
|
||||
|
||||
/*TAGCLOUD*/
|
||||
#tagCloud
|
||||
{
|
||||
margin-top: 10px;
|
||||
padding:10px;
|
||||
margin-bottom:10px;
|
||||
text-align:justify;
|
||||
}
|
||||
|
||||
#tagCloud A
|
||||
{
|
||||
text-decoration:none;
|
||||
margin-left:5px;
|
||||
margin-right:5px;
|
||||
font-family:Verdana, Arial;
|
||||
text-transform:lowercase;
|
||||
color: #8a8a8a;
|
||||
}
|
||||
|
||||
#tagCloud A:hover, #tagCloud a.current
|
||||
{
|
||||
color:#000;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
#tagCloud A.weight1
|
||||
{
|
||||
font-size: 2em;
|
||||
font-weight:bolder;
|
||||
}
|
||||
#tagCloud A.weight2
|
||||
{
|
||||
font-size:1.7em;
|
||||
font-weight:bolder;
|
||||
}
|
||||
#tagCloud A.weight3
|
||||
{
|
||||
font-size: 1.4em;
|
||||
font-weight:bolder;
|
||||
}
|
||||
#tagCloud A.weight4
|
||||
{
|
||||
|
||||
font-size: 1.1em;
|
||||
}
|
||||
#tagCloud A.weight5
|
||||
{
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
#tagCloud span
|
||||
{
|
||||
font-size: 10px !Important;
|
||||
color: #595a5a!Important;
|
||||
font-weight: normal !Important;
|
||||
}
|
||||
|
||||
|
||||
/* CLEAR FIX */
|
||||
clearfix:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
line-height: 0;
|
||||
height: 0;
|
||||
}
|
||||
.clearfix {
|
||||
display: inline-block;
|
||||
}
|
||||
html[xmlns] .clearfix {
|
||||
display: block;
|
||||
}
|
||||
* html .clearfix {
|
||||
height: 1%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* EDITOR PROPERTIES - PLEASE DON'T DELETE THIS LINE TO AVOID DUPLICATE PROPERTIES */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
using NotificationsCore;
|
||||
using NotificationsWeb;
|
||||
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
|
||||
using Marketplace.Interfaces;
|
||||
|
||||
|
||||
namespace Marketplace.Events
|
||||
{
|
||||
public class DeliNotificationEvents : ApplicationBase
|
||||
{
|
||||
|
||||
protected void NewMemberNotification()
|
||||
{
|
||||
|
||||
//memberTasks.NewMember += new memberTasks.NewUIMemberEventHandler(memberTasks_NewMember);
|
||||
|
||||
}
|
||||
|
||||
void memberTasks_NewMember(Member sender, string unencryptedPassword, NewMemberUIEventArgs e)
|
||||
{
|
||||
|
||||
if ((bool)sender.getProperty("createdByDeli").Value)
|
||||
{
|
||||
InstantNotification not = new InstantNotification();
|
||||
not.Invoke(Config.ConfigurationFile, Config.AssemblyDir, "DeliNewMember", sender, unencryptedPassword);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Marketplace.Interfaces;
|
||||
|
||||
namespace Marketplace.Helpers
|
||||
{
|
||||
public static class ExtensionMethods
|
||||
{
|
||||
public static string ListingTypeAsString(this ListingType listingType)
|
||||
{
|
||||
switch (listingType)
|
||||
{
|
||||
case ListingType.free:
|
||||
return "free";
|
||||
break;
|
||||
case ListingType.commercial:
|
||||
return "commercial";
|
||||
break;
|
||||
case ListingType.promoted:
|
||||
return "promoted";
|
||||
break;
|
||||
default:
|
||||
return "free";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static string FileTypeAsString(this FileType fileType)
|
||||
{
|
||||
switch (fileType)
|
||||
{
|
||||
case FileType.screenshot:
|
||||
return "screenshot";
|
||||
break;
|
||||
case FileType.package:
|
||||
return "package";
|
||||
break;
|
||||
case FileType.docs:
|
||||
return "docs";
|
||||
break;
|
||||
case FileType.source:
|
||||
return "source";
|
||||
break;
|
||||
default:
|
||||
return "package";
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static string LicenseTypeAsString(this LicenseType licenseType)
|
||||
{
|
||||
switch (licenseType)
|
||||
{
|
||||
case LicenseType.Domain:
|
||||
return "Domain";
|
||||
break;
|
||||
case LicenseType.IP:
|
||||
return "IP";
|
||||
break;
|
||||
case LicenseType.Unlimited:
|
||||
return "Unlimited";
|
||||
break;
|
||||
case LicenseType.SourceCode:
|
||||
return "Source Code";
|
||||
break;
|
||||
default:
|
||||
return "Domain";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
using Marketplace.usercontrols.Deli.Package;
|
||||
|
||||
namespace Marketplace.Helpers
|
||||
{
|
||||
public static class ProjectCreatorHelper
|
||||
{
|
||||
|
||||
public static void MoveToNextStep(UserControl control, int projectId)
|
||||
{
|
||||
Editor c = (Editor)control.Parent.Parent;
|
||||
c.GotoNextStep(c.Step.Value, projectId);
|
||||
|
||||
}
|
||||
|
||||
public static void MoveToPreviousStep(UserControl control, int projectId)
|
||||
{
|
||||
Editor c = (Editor)control.Parent.Parent;
|
||||
c.GoToPreviousStep(c.Step.Value, projectId);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,568 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Providers.Orders;
|
||||
using Marketplace.Providers.OrderNote;
|
||||
using Marketplace.Providers.MemberLicense;
|
||||
using Marketplace.Providers.Listing;
|
||||
|
||||
using Umbraco.Ecommerce.BusinessLogic;
|
||||
using Umbraco.Ecommerce.PaymentMethods;
|
||||
|
||||
using umbraco.BusinessLogic;
|
||||
using System.Configuration;
|
||||
using NotificationsCore;
|
||||
using System.Globalization;
|
||||
|
||||
|
||||
namespace Marketplace.HttpHandlers
|
||||
{
|
||||
public class PayPalIPN
|
||||
{
|
||||
#region properties
|
||||
|
||||
private UmbracoEcommerceOrderProvider _orderProvider;
|
||||
public UmbracoEcommerceOrderProvider OrderProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderProvider != null)
|
||||
return _orderProvider;
|
||||
else
|
||||
{
|
||||
_orderProvider = (UmbracoEcommerceOrderProvider)MarketplaceProviderManager.Providers["OrderProvider"];
|
||||
return _orderProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IOrder dOrder;
|
||||
|
||||
private IDeliOrderItemProvider _orderItemProvider;
|
||||
public IDeliOrderItemProvider OrderItemProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderItemProvider != null)
|
||||
return _orderItemProvider;
|
||||
else
|
||||
{
|
||||
_orderItemProvider = (IDeliOrderItemProvider)MarketplaceProviderManager.Providers["OrderItemProvider"];
|
||||
return _orderItemProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private NodeListingProvider _listingProvider;
|
||||
public NodeListingProvider ListingProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_listingProvider != null)
|
||||
return _listingProvider;
|
||||
else
|
||||
{
|
||||
_listingProvider = (NodeListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
return _listingProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private OrderNoteProvider _orderNoteProvider;
|
||||
public OrderNoteProvider OrderNoteProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderNoteProvider != null)
|
||||
return _orderNoteProvider;
|
||||
else
|
||||
{
|
||||
_orderNoteProvider = (OrderNoteProvider)MarketplaceProviderManager.Providers["OrderNoteProvider"];
|
||||
return _orderNoteProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ILicenseProvider _licenseProvider;
|
||||
public ILicenseProvider LicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_licenseProvider != null)
|
||||
return _licenseProvider;
|
||||
else
|
||||
{
|
||||
_licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
return _licenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public MemberLicense mLicense;
|
||||
|
||||
private IMemberLicenseProvider _memberLicenseProvider;
|
||||
public IMemberLicenseProvider MemberLicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberLicenseProvider != null)
|
||||
return _memberLicenseProvider;
|
||||
else
|
||||
{
|
||||
_memberLicenseProvider = (IMemberLicenseProvider)MarketplaceProviderManager.Providers["memberLicenseProvider"];
|
||||
return _memberLicenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMemberProvider _memberProvider;
|
||||
public IMemberProvider MemberProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberProvider != null)
|
||||
return _memberProvider;
|
||||
else
|
||||
{
|
||||
_memberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
return _memberProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public void Process(HttpContext context, bool TestMode)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (VerifiedByPaypal(context, TestMode))
|
||||
{
|
||||
NameValueCollection form = context.Request.Form;
|
||||
HandleOrder(form, TestMode);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
string formStr = "";
|
||||
foreach (string key in context.Request.Form.AllKeys)
|
||||
formStr += key + ": " + context.Request.Form[key] + "...";
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "PAYPAL IPN: Response:" + formStr);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string formStr = "";
|
||||
foreach (string key in context.Request.Form.AllKeys)
|
||||
formStr += key + ": " + context.Request.Form[key] + "...";
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "PAYPAL IPN: Response: " + ex.ToString() + formStr);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public bool VerifiedByPaypal(HttpContext context, bool TestMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
string _url = "https://www.paypal.com/cgi-bin/webscr";
|
||||
if (TestMode)
|
||||
{
|
||||
_url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
|
||||
}
|
||||
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_url);
|
||||
req.Method = "POST";
|
||||
req.ContentType = "application/x-www-form-urlencoded";
|
||||
byte[] param = context.Request.BinaryRead(HttpContext.Current.Request.ContentLength);
|
||||
string strRequest = Encoding.UTF8.GetString(param);
|
||||
strRequest += "&cmd=_notify-validate";
|
||||
req.ContentLength = strRequest.Length;
|
||||
|
||||
// Modify the POST string.
|
||||
string formPostData = "cmd = _notify-validate";
|
||||
foreach (String postKey in context.Request.Form)
|
||||
{
|
||||
string postValue = Encode(context.Request.Form[postKey]);
|
||||
formPostData += string.Format("&{0}={1}", postKey, postValue);
|
||||
}
|
||||
|
||||
// POST the verification response back to PayPal.
|
||||
WebClient client = new WebClient();
|
||||
client.Encoding = Encoding.UTF8;
|
||||
|
||||
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
|
||||
|
||||
byte[] postByteArray = Encoding.UTF8.GetBytes(formPostData);
|
||||
byte[] responseArray = client.UploadData(_url, "POST", postByteArray);
|
||||
string response = Encoding.UTF8.GetString(responseArray);
|
||||
|
||||
// check the response, return 'true' if its "VERIFIED"
|
||||
return (response == "VERIFIED");
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void TESTHandleOrder(NameValueCollection form, bool testMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
string amount = form["amount"];
|
||||
int invoice = int.Parse(form["invoice"]);
|
||||
string status = form["payment_status"];
|
||||
string txt_id = form["txn_id"];
|
||||
|
||||
// log the IPN response in the umbracoLog
|
||||
string formStr = "";
|
||||
foreach (string key in form.AllKeys)
|
||||
formStr += key + ": " + form[key] + "....";
|
||||
|
||||
Log.Add(LogTypes.Debug, -1, "DELI PAYPAL IPN: - " + formStr);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Add(LogTypes.Debug, -1, "DELI PAYPAL IPN ERROR: " + ex.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleOrder(NameValueCollection form, bool testMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
string amount = form["mc_gross"];
|
||||
int invoice = int.Parse(form["invoice"]);
|
||||
string status = form["payment_status"];
|
||||
string txt_id = form["txn_id"];
|
||||
string NoteText = "";
|
||||
|
||||
// log the IPN response in the umbracoLog before anything else
|
||||
string formStr = "";
|
||||
foreach (string key in form.AllKeys)
|
||||
formStr += key + ": " + form[key] + "....";
|
||||
|
||||
// getDeli Order
|
||||
dOrder = OrderProvider.GetOrder(invoice);
|
||||
|
||||
Log.Add(LogTypes.Debug, -1, "DELI PAYPAL IPN: Order: " + dOrder.Id.ToString() + " - " + formStr);
|
||||
|
||||
switch (status)
|
||||
{
|
||||
case "Completed":
|
||||
// make sure this isn't a duplicate from paypal
|
||||
if (dOrder.Status != OrderStatus.Confirmed)
|
||||
{
|
||||
if (!testMode) // production!
|
||||
{
|
||||
NoteText = "order status changed from " + dOrder.Status.ToString() + " to " + OrderStatus.Confirmed.ToString() + "with transaction id: " + txt_id;
|
||||
dOrder.Status = OrderStatus.Confirmed;
|
||||
dOrder.TransactionId = txt_id;
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, NoteText);
|
||||
|
||||
dOrder.PaymentDate = DateTime.Now.ToUniversalTime();
|
||||
dOrder.ProcessedTotal = Convert.ToDouble(amount);
|
||||
|
||||
// create a MemberLicense for each OrderItem
|
||||
foreach (IOrderItem item in dOrder.Items)
|
||||
{
|
||||
// create licenses for multiple quantity
|
||||
for (int i = 0; i < item.Quantity; i++)
|
||||
{
|
||||
mLicense = new MemberLicense();
|
||||
mLicense.LicenseId = LicenseProvider.GetLicense(item.LicenseId).Id;
|
||||
mLicense.Member = dOrder.Member;
|
||||
mLicense.OrderItemId = item.Id;
|
||||
mLicense.ListingItemId = item.ListingItemId;
|
||||
mLicense.CreateDate = DateTime.Now.ToUniversalTime();
|
||||
mLicense.IsActive = true;
|
||||
|
||||
MemberLicenseProvider.SaveOrUpdate(mLicense);
|
||||
}
|
||||
}
|
||||
|
||||
OrderProvider.SaveOrUpdate(dOrder);
|
||||
|
||||
// webservice call to create order on umbraco.com
|
||||
string invoicePath;
|
||||
|
||||
try
|
||||
{
|
||||
invoicePath = CreateDotComOrder(dOrder, txt_id);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Add(LogTypes.Debug, -1, "DELI PAYPAL IPN ERROR: " + e.Message + " :: " + e.InnerException + " :: " + e.StackTrace);
|
||||
|
||||
invoicePath = string.Empty;
|
||||
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, "Deli Error: invoice generation failed");
|
||||
|
||||
}
|
||||
|
||||
if (invoicePath.Length > 0)
|
||||
{
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, "Deli invoice: " + invoicePath);
|
||||
|
||||
}
|
||||
|
||||
// send order complete mail
|
||||
InstantNotification not = new InstantNotification();
|
||||
not.Invoke(NotificationsWeb.Config.ConfigurationFile, NotificationsWeb.Config.AssemblyDir, "DeliOrderComplete", dOrder, dOrder.Member, txt_id);
|
||||
|
||||
foreach(var oi in dOrder.Items)
|
||||
{
|
||||
var listing = ListingProvider.GetListing(oi.ListingItemId,false);
|
||||
var body = "<p>Hi " + listing.Vendor.Member.Name + ",</p><br/>" +
|
||||
"<p>The following order has just been received for the following product on the Umbraco Deli</p><br/>" +
|
||||
"<p><strong>" + listing.Name + " " + LicenseProvider.GetLicense(oi.LicenseId).LicenseType.ToString() + "</strong><br/>" +
|
||||
"ordered by" + dOrder.Member.Name + " email " + dOrder.Member.Email + "</p>" +
|
||||
"<br/><p>Best,<br/>The Umbraco Deli Robot</p>";
|
||||
|
||||
|
||||
umbraco.library.SendMail("robot@umbraco.org", listing.Vendor.Member.Email, "New Deli Order", body, true);
|
||||
}
|
||||
}
|
||||
else // test!
|
||||
{
|
||||
NoteText = "DEV order status changed from " + dOrder.Status.ToString() + " to " + OrderStatus.Confirmed.ToString() + "with transaction id: " + txt_id;
|
||||
dOrder.Status = OrderStatus.Confirmed;
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, NoteText);
|
||||
|
||||
dOrder.PaymentDate = DateTime.Now.ToUniversalTime();
|
||||
dOrder.ProcessedTotal = Convert.ToDouble(amount);
|
||||
|
||||
// create a MemberLicense for each OrderItem
|
||||
foreach (IOrderItem item in dOrder.Items)
|
||||
{
|
||||
// create licenses for multiple quantity
|
||||
for (int i = 0; i < item.Quantity; i++)
|
||||
{
|
||||
mLicense = new MemberLicense();
|
||||
mLicense.LicenseId = LicenseProvider.GetLicense(item.LicenseId).Id;
|
||||
mLicense.Member = dOrder.Member;
|
||||
mLicense.OrderItemId = item.Id;
|
||||
mLicense.ListingItemId = item.ListingItemId;
|
||||
mLicense.CreateDate = DateTime.Now.ToUniversalTime();
|
||||
mLicense.IsActive = true;
|
||||
|
||||
MemberLicenseProvider.SaveOrUpdate(mLicense);
|
||||
}
|
||||
}
|
||||
|
||||
OrderProvider.SaveOrUpdate(dOrder);
|
||||
|
||||
// webservice call to create order on umbraco.com
|
||||
string invoicePath;
|
||||
|
||||
try
|
||||
{
|
||||
invoicePath = CreateDotComOrder(dOrder, txt_id);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Add(LogTypes.Debug, -1, "DELI PAYPAL IPN ERROR: " + e.Message + " :: " + e.InnerException + " :: " + e.StackTrace);
|
||||
|
||||
invoicePath = string.Empty;
|
||||
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, "Deli Error: invoice generation failed - Error:" + e.Message + " :: " + e.InnerException + " :: " + e.StackTrace);
|
||||
|
||||
}
|
||||
|
||||
if (invoicePath.Length > 0)
|
||||
{
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, "Deli invoice: " + invoicePath);
|
||||
|
||||
}
|
||||
|
||||
// send order complete mail
|
||||
InstantNotification not = new InstantNotification();
|
||||
not.Invoke(NotificationsWeb.Config.ConfigurationFile, NotificationsWeb.Config.AssemblyDir, "DeliOrderComplete", dOrder, dOrder.Member, txt_id);
|
||||
foreach (var oi in dOrder.Items)
|
||||
{
|
||||
not.Invoke(NotificationsWeb.Config.ConfigurationFile, NotificationsWeb.Config.AssemblyDir, "DeliNotifyVendor", oi, dOrder.Member, oi.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "Pending":
|
||||
NoteText = "order status changed from " + dOrder.Status.ToString() + " to " + OrderStatus.Pending.ToString() + "with transaction id: " + txt_id;
|
||||
dOrder.Status = OrderStatus.Pending;
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, NoteText);
|
||||
|
||||
OrderProvider.SaveOrUpdate(dOrder);
|
||||
|
||||
break;
|
||||
|
||||
case "Failed":
|
||||
NoteText = "order status changed from " + dOrder.Status.ToString() + " to " + OrderStatus.Rejected.ToString() + "with transaction id: " + txt_id;
|
||||
dOrder.Status = OrderStatus.Rejected;
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, NoteText);
|
||||
|
||||
OrderProvider.SaveOrUpdate(dOrder);
|
||||
|
||||
break;
|
||||
|
||||
case "Refunded":
|
||||
NoteText = "order status changed from " + dOrder.Status.ToString() + " to " + OrderStatus.Refunded.ToString() + "with transaction id: " + txt_id;
|
||||
dOrder.Status = OrderStatus.Refunded;
|
||||
dOrder.IsRefunded = true;
|
||||
dOrder.RefundDate = DateTime.Now.ToUniversalTime();
|
||||
|
||||
OrderNoteProvider.AddOrderNote((int)dOrder.Id, (int)dOrder.Member.Id, NoteText);
|
||||
|
||||
// todo: revoke license here
|
||||
// todo: mark specific OrderItems as Refunded
|
||||
|
||||
OrderProvider.SaveOrUpdate(dOrder);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Add(LogTypes.Debug, -1, "DELI PAYPAL IPN " + ex.Message + " :: " + ex.InnerException+ " :: " +ex.StackTrace);
|
||||
}
|
||||
}
|
||||
|
||||
public int CreateEcomOrder(IOrder o, bool TestMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Create customer information
|
||||
CustomerInfo ci = new CustomerInfo();
|
||||
ci.AddData("id", o.Member.Id.ToString());
|
||||
ci.AddData("email", o.Member.Email);
|
||||
|
||||
Guid payment = new CreditCard().Id;
|
||||
|
||||
// create order
|
||||
Order providerOrder = Order.MakeNew(ci.ToXml(), o.Id.ToString(), payment, "deli order", o.Member.Email);
|
||||
providerOrder.CustomerReference = o.Id.ToString();
|
||||
providerOrder.ChangeStatus(Order.Status.Confirmed);
|
||||
providerOrder.Comment = "deli order";
|
||||
|
||||
if(TestMode)
|
||||
providerOrder.TestMode = true;
|
||||
|
||||
foreach(IOrderItem item in dOrder.Items)
|
||||
{
|
||||
OrderLine l = new OrderLine();
|
||||
l.Quantity = item.Quantity;
|
||||
l.ProductName = ListingProvider.GetListing(item.ListingItemId, false).Name + ", License: " + LicenseProvider.GetLicense(item.LicenseId).LicenseType.ToString();
|
||||
l.Price = (decimal)item.NetPrice;
|
||||
l.ProductId = item.ListingItemId.ToString();
|
||||
l.Note = "deli order id: " + o.Id.ToString();
|
||||
|
||||
providerOrder.AddOrderLine(l);
|
||||
}
|
||||
|
||||
// generate invoice
|
||||
if(!TestMode)
|
||||
providerOrder.GenerateInvoice(false);
|
||||
else
|
||||
providerOrder.GenerateInvoice(true);
|
||||
|
||||
|
||||
return providerOrder.OrderId;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
protected string CreateDotComOrder(IOrder dOrder, string transactionId)
|
||||
{
|
||||
com.umbraco.orders.Orders orderService = new com.umbraco.orders.Orders();
|
||||
com.umbraco.orders.OrderProxy orderProxy = new com.umbraco.orders.OrderProxy();
|
||||
com.umbraco.orders.BuyerProxy buyerProxy = new com.umbraco.orders.BuyerProxy();
|
||||
|
||||
// set up Ecomm Order
|
||||
orderProxy.DeliOrderID = dOrder.Id;
|
||||
orderProxy.PurchaseOrder = "";
|
||||
orderProxy.TransactionID = transactionId;
|
||||
|
||||
// buyer
|
||||
buyerProxy.ourMemberId = dOrder.Member.Id;
|
||||
buyerProxy.ourMemberGuid = dOrder.Member.UniqueId;
|
||||
buyerProxy.IP = dOrder.IP;
|
||||
buyerProxy.Name = dOrder.Member.Name;
|
||||
buyerProxy.Login = dOrder.Member.Name;
|
||||
buyerProxy.Address = dOrder.Member.CompanyAddress;
|
||||
buyerProxy.Company = dOrder.Member.Company;
|
||||
buyerProxy.Country = Marketplace.library.GetCountry(dOrder.Member.CompanyCountry);
|
||||
buyerProxy.Email = dOrder.CompanyInvoiceEmail;
|
||||
buyerProxy.VAT = !dOrder.Member.VatInvalid ? dOrder.Member.CompanyVATNumber : "";
|
||||
buyerProxy.Phone = "";
|
||||
|
||||
//order lines
|
||||
var orderLineProxyList = new List<com.umbraco.orders.OrderLineProxy>();
|
||||
|
||||
foreach (IOrderItem item in dOrder.Items)
|
||||
{
|
||||
com.umbraco.orders.OrderLineProxy lineProxy = new com.umbraco.orders.OrderLineProxy();
|
||||
IListingItem listingItem = ListingProvider.GetListing(item.ListingItemId);
|
||||
|
||||
lineProxy.VendorEconomicID = listingItem.Vendor.EconomicId;
|
||||
lineProxy.Amount = (decimal)item.NetPrice;
|
||||
lineProxy.Quantity = item.Quantity;
|
||||
lineProxy.description = ListingProvider.GetListing(item.ListingItemId, false).Name + ", License Type: " + LicenseProvider.GetLicense(item.LicenseId).LicenseType.ToString();
|
||||
|
||||
// add order line to order
|
||||
orderLineProxyList.Add(lineProxy);
|
||||
|
||||
}
|
||||
|
||||
|
||||
orderProxy.OrderLines = orderLineProxyList.ToArray();
|
||||
orderProxy.Buyer = buyerProxy;
|
||||
|
||||
bool isTestMode = bool.Parse(ConfigurationManager.AppSettings["deliPayPalTest"]);
|
||||
|
||||
|
||||
com.umbraco.orders.OrderProxy returnOrderProxy = orderService.Create(orderProxy, isTestMode, ConfigurationManager.AppSettings["deliWebServiceUser"], ConfigurationManager.AppSettings["deliWebServicePass"]);
|
||||
|
||||
|
||||
// set Ecomm order id
|
||||
dOrder.OrderId = returnOrderProxy.EcommerceOrderID;
|
||||
OrderProvider.SaveOrUpdate(dOrder);
|
||||
|
||||
|
||||
return returnOrderProxy.InvoicePath;
|
||||
|
||||
}
|
||||
|
||||
#region Utilities
|
||||
|
||||
private string Encode(string oldValue)
|
||||
{
|
||||
string newValue = oldValue.Replace("\"", "'");
|
||||
newValue = System.Web.HttpUtility.UrlEncode(newValue);
|
||||
newValue = newValue.Replace("%2f", "/");
|
||||
return newValue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace Marketplace.HttpHandlers
|
||||
{
|
||||
public class PayPalIPNHandler : IHttpHandler
|
||||
{
|
||||
#region IHttpHandler Members
|
||||
|
||||
bool IHttpHandler.IsReusable
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
void IHttpHandler.ProcessRequest(HttpContext context)
|
||||
{
|
||||
PayPalIPN ipn = new PayPalIPN();
|
||||
ipn.Process(context, false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class PayPalIPNHandlerTEST : IHttpHandler
|
||||
{
|
||||
#region IHttpHandlerTEST Members
|
||||
|
||||
bool IHttpHandler.IsReusable
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
void IHttpHandler.ProcessRequest(HttpContext context)
|
||||
{
|
||||
PayPalIPN ipn = new PayPalIPN();
|
||||
ipn.Process(context, true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,771 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{6A2B659E-8BAE-4CD5-8764-851DFBE95FBF}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Marketplace</RootNamespace>
|
||||
<AssemblyName>Marketplace</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>4.0</OldToolsVersion>
|
||||
<IISExpressSSLPort />
|
||||
<IISExpressAnonymousAuthentication />
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AutoMapper">
|
||||
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AutoMapper.Net4">
|
||||
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="businesslogic, Version=1.0.5350.25716, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\businesslogic.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core">
|
||||
<HintPath>..\packages\ClientDependency.1.7.1.2\lib\ClientDependency.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core.Mvc">
|
||||
<HintPath>..\packages\ClientDependency-Mvc.1.7.0.4\lib\ClientDependency.Core.Mvc.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="cms, Version=1.0.5350.25716, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\cms.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="controls">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CookComputing.XmlRpcV2">
|
||||
<HintPath>..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Examine">
|
||||
<HintPath>..\packages\Examine.0.1.57.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor">
|
||||
<HintPath>..\packages\ImageProcessor.1.9.5.0\lib\ImageProcessor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor.Web">
|
||||
<HintPath>..\packages\ImageProcessor.Web.3.3.0.0\lib\net45\ImageProcessor.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="interfaces, Version=1.0.5350.25713, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Lucene.Net">
|
||||
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Marketplace.BusinessLogic, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Our\dependencies\MarketPlace\Marketplace.BusinessLogic.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Marketplace.Data, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Our\dependencies\MarketPlace\Marketplace.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Marketplace.Interfaces, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Our\dependencies\MarketPlace\Marketplace.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Marketplace.Presentation">
|
||||
<HintPath>..\..\Our\dependencies\MarketPlace\Marketplace.Presentation.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Marketplace.Providers, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Our\dependencies\MarketPlace\Marketplace.Providers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Marketplace.Umbraco, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Our\dependencies\MarketPlace\Marketplace.Umbraco.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationBlocks.Data">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Web.Helpers">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\Microsoft.Web.Helpers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Web.Mvc.FixedDisplayModes">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Mvc.FixedDisplayModes.1.0.1\lib\net40\Microsoft.Web.Mvc.FixedDisplayModes.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MiniProfiler">
|
||||
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NotificationsCore">
|
||||
<HintPath>..\forigndlls\NotificationsCore.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NotificationsWeb">
|
||||
<HintPath>..\forigndlls\NotificationsWeb.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="our.umbraco.org, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\forigndlls\our.umbraco.org.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SQLCE4Umbraco">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\SQLCE4Umbraco.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data.Linq" />
|
||||
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\System.Data.SqlServerCe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.4.0.30506.0\lib\net40\System.Net.Http.Formatting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.Razor.2.0.20710.0\lib\net40\System.Web.Razor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Deployment.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Razor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="TidyNet">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\TidyNet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="uComponents.Core, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\forigndlls\uComponents.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="uForum, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\forigndlls\uForum.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbraco, Version=1.0.5350.25719, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\umbraco.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Core">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\Umbraco.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.DataLayer">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\umbraco.DataLayer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Ecommerce, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\forigndlls\Umbraco.Ecommerce.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.editorControls, Version=1.0.5350.25721, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\umbraco.editorControls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.MacroEngines">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\umbraco.MacroEngines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.providers">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\umbraco.providers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Support">
|
||||
<HintPath>..\forigndlls\Umbraco.Support.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Web.UI">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\Umbraco.Web.UI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.XmlSerializers">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\umbraco.XmlSerializers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UmbracoExamine">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\UmbracoExamine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="umbracoMemberControls, Version=1.0.2259.24439, Culture=neutral">
|
||||
<HintPath>..\forigndlls\umbracoMemberControls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="uPowers, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\forigndlls\uPowers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UrlRewritingNet.UrlRewriter">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.1.6\lib\UrlRewritingNet.UrlRewriter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="uVersion">
|
||||
<HintPath>..\forigndlls\uVersion.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="adhoc\setalllive.aspx.cs">
|
||||
<DependentUpon>setalllive.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="adhoc\setalllive.aspx.designer.cs">
|
||||
<DependentUpon>setalllive.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Controls\CountryDropDown.cs" />
|
||||
<Compile Include="Events\DeliNotificationEvents.cs" />
|
||||
<Compile Include="Helpers\ExtensionMethods.cs" />
|
||||
<Compile Include="Helpers\Helper.cs" />
|
||||
<Compile Include="HttpHandlers\PayPalIPN.cs" />
|
||||
<Compile Include="HttpHandlers\PayPalIPNHandler.cs" />
|
||||
<Compile Include="library.cs" />
|
||||
<Compile Include="NotificationTypes\DeliNotifyVendor.cs" />
|
||||
<Compile Include="NotificationTypes\DeliNewMember.cs" />
|
||||
<Compile Include="NotificationTypes\DeliOrderComplete.cs" />
|
||||
<Compile Include="NotificationTypes\DeliPayoutRequest.cs" />
|
||||
<Compile Include="ProjectFileUploadHandler.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Razor\VersionCompatibilityReport.cs" />
|
||||
<Compile Include="Rest.cs" />
|
||||
<Compile Include="usercontrols\Deli\Admin\OrderReview.ascx.cs">
|
||||
<DependentUpon>OrderReview.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\OrderReview.ascx.designer.cs">
|
||||
<DependentUpon>OrderReview.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\ProcessRefund.ascx.cs">
|
||||
<DependentUpon>ProcessRefund.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\ProcessRefund.ascx.designer.cs">
|
||||
<DependentUpon>ProcessRefund.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\VendorPayout.ascx.cs">
|
||||
<DependentUpon>VendorPayout.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\VendorPayout.ascx.designer.cs">
|
||||
<DependentUpon>VendorPayout.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\VendorPayoutReport.ascx.cs">
|
||||
<DependentUpon>VendorPayoutReport.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Admin\VendorPayoutReport.ascx.designer.cs">
|
||||
<DependentUpon>VendorPayoutReport.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\Cart.ascx.cs">
|
||||
<DependentUpon>Cart.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\Cart.ascx.designer.cs">
|
||||
<DependentUpon>Cart.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\CartDetails.ascx.cs">
|
||||
<DependentUpon>CartDetails.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\CartDetails.ascx.designer.cs">
|
||||
<DependentUpon>CartDetails.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\CartProgress.ascx.cs">
|
||||
<DependentUpon>CartProgress.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\CartProgress.ascx.designer.cs">
|
||||
<DependentUpon>CartProgress.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\CartReview.ascx.cs">
|
||||
<DependentUpon>CartReview.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\CartReview.ascx.designer.cs">
|
||||
<DependentUpon>CartReview.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\MicroCart.ascx.cs">
|
||||
<DependentUpon>MicroCart.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Cart\MicroCart.ascx.designer.cs">
|
||||
<DependentUpon>MicroCart.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Customers\VendorCustomers.ascx.cs">
|
||||
<DependentUpon>VendorCustomers.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Customers\VendorCustomers.ascx.designer.cs">
|
||||
<DependentUpon>VendorCustomers.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Dashboard\VendorBIOverview.ascx.cs">
|
||||
<DependentUpon>VendorBIOverview.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Dashboard\VendorBIOverview.ascx.designer.cs">
|
||||
<DependentUpon>VendorBIOverview.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Dashboard\VendorProjectBI.ascx.cs">
|
||||
<DependentUpon>VendorProjectBI.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Dashboard\VendorProjectBI.ascx.designer.cs">
|
||||
<DependentUpon>VendorProjectBI.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\FeaturedProject.ascx.cs">
|
||||
<DependentUpon>FeaturedProject.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\FeaturedProject.ascx.designer.cs">
|
||||
<DependentUpon>FeaturedProject.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\HQStaffPickProjects.ascx.cs">
|
||||
<DependentUpon>HQStaffPickProjects.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\HQStaffPickProjects.ascx.designer.cs">
|
||||
<DependentUpon>HQStaffPickProjects.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\License\Member\MyLicenses.ascx.cs">
|
||||
<DependentUpon>MyLicenses.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\License\Member\MyLicenses.ascx.designer.cs">
|
||||
<DependentUpon>MyLicenses.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\License\Vendor\ProjectLicenses.ascx.cs">
|
||||
<DependentUpon>ProjectLicenses.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\License\Vendor\ProjectLicenses.ascx.designer.cs">
|
||||
<DependentUpon>ProjectLicenses.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\ListPagination.ascx.cs">
|
||||
<DependentUpon>ListPagination.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\ListPagination.ascx.designer.cs">
|
||||
<DependentUpon>ListPagination.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\NewestProjects.ascx.cs">
|
||||
<DependentUpon>NewestProjects.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\NewestProjects.ascx.designer.cs">
|
||||
<DependentUpon>NewestProjects.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Complete.ascx.cs">
|
||||
<DependentUpon>Complete.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Complete.ascx.designer.cs">
|
||||
<DependentUpon>Complete.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Licenses.ascx.cs">
|
||||
<DependentUpon>Licenses.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Licenses.ascx.designer.cs">
|
||||
<DependentUpon>Licenses.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Screenshots.ascx.cs">
|
||||
<DependentUpon>Screenshots.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Screenshots.ascx.designer.cs">
|
||||
<DependentUpon>Screenshots.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Details.ascx.cs">
|
||||
<DependentUpon>Details.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Details.ascx.designer.cs">
|
||||
<DependentUpon>Details.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Editor.ascx.cs">
|
||||
<DependentUpon>Editor.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Editor.ascx.designer.cs">
|
||||
<DependentUpon>Editor.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Files.ascx.cs">
|
||||
<DependentUpon>Files.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Package\Steps\Files.ascx.designer.cs">
|
||||
<DependentUpon>Files.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Payout\VendorPayout.ascx.cs">
|
||||
<DependentUpon>VendorPayout.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Payout\VendorPayout.ascx.designer.cs">
|
||||
<DependentUpon>VendorPayout.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Payout\VendorPayoutHistory.ascx.cs">
|
||||
<DependentUpon>VendorPayoutHistory.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Payout\VendorPayoutHistory.ascx.designer.cs">
|
||||
<DependentUpon>VendorPayoutHistory.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\PopularProjects.ascx.cs">
|
||||
<DependentUpon>PopularProjects.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\PopularProjects.ascx.designer.cs">
|
||||
<DependentUpon>PopularProjects.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Profile\MemberDataLookup.ascx.cs">
|
||||
<DependentUpon>MemberDataLookup.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Profile\MemberDataLookup.ascx.designer.cs">
|
||||
<DependentUpon>MemberDataLookup.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Profile\MyProjects.ascx.cs">
|
||||
<DependentUpon>MyProjects.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Profile\MyProjects.ascx.designer.cs">
|
||||
<DependentUpon>MyProjects.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Profile\Signup.ascx.cs">
|
||||
<DependentUpon>Signup.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Profile\Signup.ascx.designer.cs">
|
||||
<DependentUpon>Signup.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\ProjectsList.ascx.cs">
|
||||
<DependentUpon>ProjectsList.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\ProjectsList.ascx.designer.cs">
|
||||
<DependentUpon>ProjectsList.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\ProjectView.ascx.cs">
|
||||
<DependentUpon>ProjectView.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\ProjectView.ascx.designer.cs">
|
||||
<DependentUpon>ProjectView.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Purchase\PayPalConfirm.ascx.cs">
|
||||
<DependentUpon>PayPalConfirm.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Purchase\PayPalConfirm.ascx.designer.cs">
|
||||
<DependentUpon>PayPalConfirm.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Purchase\PayPalPayment.ascx.cs">
|
||||
<DependentUpon>PayPalPayment.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Purchase\PayPalPayment.ascx.designer.cs">
|
||||
<DependentUpon>PayPalPayment.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Repository\RepoProjectView.ascx.cs">
|
||||
<DependentUpon>RepoProjectView.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Repository\RepoProjectView.ascx.designer.cs">
|
||||
<DependentUpon>RepoProjectView.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Support\Member\RefundRequest.ascx.cs">
|
||||
<DependentUpon>RefundRequest.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Support\Member\RefundRequest.ascx.designer.cs">
|
||||
<DependentUpon>RefundRequest.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Support\Vendor\VendorSupportRequest.ascx.cs">
|
||||
<DependentUpon>VendorSupportRequest.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\Support\Vendor\VendorSupportRequest.ascx.designer.cs">
|
||||
<DependentUpon>VendorSupportRequest.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\TopPaidProjectsList.ascx.cs">
|
||||
<DependentUpon>TopPaidProjectsList.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\Deli\TopPaidProjectsList.ascx.designer.cs">
|
||||
<DependentUpon>TopPaidProjectsList.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\our.umbraco.org\Login_novalidationscript.ascx.cs">
|
||||
<DependentUpon>Login_novalidationscript.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usercontrols\our.umbraco.org\Login_novalidationscript.ascx.designer.cs">
|
||||
<DependentUpon>Login_novalidationscript.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="uVersion\config.cs" />
|
||||
<Compile Include="uVersion\uVersion.cs" />
|
||||
<Compile Include="Web References\com.umbraco.orders\Reference.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Web References\com.umbraco\Reference.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="adhoc\setalllive.aspx" />
|
||||
<Content Include="Css\Deli.css" />
|
||||
<Content Include="Css\DeliAdmin.css" />
|
||||
<Content Include="Razor\versionCompatibilityReport.cshtml" />
|
||||
<Content Include="packages.config" />
|
||||
<None Include="Razor\versionCompatibility.cshtml" />
|
||||
<Content Include="usercontrols\Deli\Admin\OrderReview.ascx" />
|
||||
<Content Include="usercontrols\Deli\Admin\ProcessRefund.ascx" />
|
||||
<Content Include="usercontrols\Deli\Admin\VendorPayout.ascx" />
|
||||
<Content Include="usercontrols\Deli\Admin\VendorPayoutReport.ascx" />
|
||||
<Content Include="usercontrols\Deli\Cart\Cart.ascx" />
|
||||
<Content Include="usercontrols\Deli\Cart\CartDetails.ascx" />
|
||||
<Content Include="usercontrols\Deli\Cart\CartProgress.ascx" />
|
||||
<Content Include="usercontrols\Deli\Cart\CartReview.ascx" />
|
||||
<Content Include="usercontrols\Deli\Cart\MicroCart.ascx" />
|
||||
<Content Include="usercontrols\Deli\Customers\VendorCustomers.ascx" />
|
||||
<Content Include="usercontrols\Deli\Dashboard\VendorBIOverview.ascx" />
|
||||
<Content Include="usercontrols\Deli\Dashboard\VendorProjectBI.ascx" />
|
||||
<Content Include="usercontrols\Deli\FeaturedProject.ascx" />
|
||||
<Content Include="usercontrols\Deli\HQStaffPickProjects.ascx" />
|
||||
<Content Include="usercontrols\Deli\License\Member\MyLicenses.ascx" />
|
||||
<Content Include="usercontrols\Deli\License\Vendor\ProjectLicenses.ascx" />
|
||||
<Content Include="usercontrols\Deli\ListPagination.ascx" />
|
||||
<Content Include="usercontrols\Deli\NewestProjects.ascx" />
|
||||
<Content Include="usercontrols\Deli\Package\Steps\Complete.ascx" />
|
||||
<Content Include="usercontrols\Deli\Package\Steps\Licenses.ascx" />
|
||||
<Content Include="usercontrols\Deli\Package\Steps\Screenshots.ascx" />
|
||||
<Content Include="usercontrols\Deli\Package\Steps\Details.ascx" />
|
||||
<Content Include="usercontrols\Deli\Package\Editor.ascx" />
|
||||
<Content Include="usercontrols\Deli\Package\Steps\Files.ascx" />
|
||||
<Content Include="usercontrols\Deli\Payout\VendorPayout.ascx" />
|
||||
<Content Include="usercontrols\Deli\Payout\VendorPayoutHistory.ascx" />
|
||||
<Content Include="usercontrols\Deli\PopularProjects.ascx" />
|
||||
<Content Include="usercontrols\Deli\Profile\MemberDataLookup.ascx" />
|
||||
<Content Include="usercontrols\Deli\Profile\MyProjects.ascx" />
|
||||
<Content Include="usercontrols\Deli\Profile\Signup.ascx" />
|
||||
<Content Include="usercontrols\Deli\ProjectsList.ascx" />
|
||||
<Content Include="usercontrols\our.umbraco.org\Login_novalidationscript.ascx" />
|
||||
<Content Include="xslt\Deli-repository.xslt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="usercontrols\Deli\ProjectView.ascx" />
|
||||
<Content Include="usercontrols\Deli\Purchase\PayPalConfirm.ascx" />
|
||||
<Content Include="usercontrols\Deli\Purchase\PayPalPayment.ascx" />
|
||||
<Content Include="usercontrols\Deli\Repository\RepoProjectView.ascx" />
|
||||
<Content Include="usercontrols\Deli\Support\Member\RefundRequest.ascx" />
|
||||
<Content Include="usercontrols\Deli\Support\Vendor\VendorSupportRequest.ascx" />
|
||||
<Content Include="usercontrols\Deli\TopPaidProjectsList.ascx" />
|
||||
<Content Include="usercontrols\our.umbraco.org\HeaderLogin.ascx" />
|
||||
<Content Include="usercontrols\umbracoMemberControls\umbLogin.ascx" />
|
||||
<Content Include="MasterPages\newest.master" />
|
||||
<Content Include="MasterPages\popular.master" />
|
||||
<Content Include="MasterPages\Deli.master" />
|
||||
<Content Include="MasterPages\Repository\Community.master" />
|
||||
<Content Include="MasterPages\Repository\Master.master" />
|
||||
<Content Include="MasterPages\Repository\Nothing.master" />
|
||||
<Content Include="MasterPages\Repository\Project.master" />
|
||||
<Content Include="MasterPages\Repository\ProjectGroup.master" />
|
||||
<Content Include="MasterPages\Repository\Projects.master" />
|
||||
<Content Include="MasterPages\Repository\ProjectsTags.master" />
|
||||
<Content Include="MasterPages\Repository\Textpage.master" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Web References\com.umbraco.orders\BuyerProxy.datasource">
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</None>
|
||||
<None Include="Web References\com.umbraco.orders\OrderProxy.datasource">
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</None>
|
||||
<None Include="Web References\com.umbraco.orders\orders.wsdl" />
|
||||
<None Include="Web References\com.umbraco.orders\Reference.map">
|
||||
<Generator>MSDiscoCodeGenerator</Generator>
|
||||
<LastGenOutput>Reference.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Web References\com.umbraco\MemberData.datasource">
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</None>
|
||||
<None Include="Web References\com.umbraco\memberlookup.disco" />
|
||||
<None Include="Web References\com.umbraco.orders\orders.disco" />
|
||||
<Content Include="Web.config">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<None Include="Web References\com.umbraco\memberlookup.wsdl" />
|
||||
<None Include="Web References\com.umbraco\Reference.map">
|
||||
<Generator>MSDiscoCodeGenerator</Generator>
|
||||
<LastGenOutput>Reference.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Razor\Deli-TagCloud.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Razor\Deli-ProjectCategories.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="MasterPages\ConfigureProjectLicenses.master" />
|
||||
<Content Include="MasterPages\DeliCart.master" />
|
||||
<Content Include="MasterPages\DeliCartDetails.master" />
|
||||
<Content Include="MasterPages\EditProject.master" />
|
||||
<Content Include="MasterPages\Master.master" />
|
||||
<Content Include="MasterPages\PayPalRedirect.master" />
|
||||
<Content Include="MasterPages\Project.master" />
|
||||
<Content Include="MasterPages\ProjectGroup.master" />
|
||||
<Content Include="MasterPages\Projects.master" />
|
||||
<Content Include="MasterPages\ProjectsTags.master" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Razor\Deli-MyProjects.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="NotificationTypes\Notification.config">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferences Include="Web References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferenceUrl Include="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx">
|
||||
<UrlBehavior>Dynamic</UrlBehavior>
|
||||
<RelPath>Web References\com.umbraco\</RelPath>
|
||||
<UpdateFromURL>http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx</UpdateFromURL>
|
||||
<ServiceLocationURL>
|
||||
</ServiceLocationURL>
|
||||
<CachedDynamicPropName>
|
||||
</CachedDynamicPropName>
|
||||
<CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
|
||||
<CachedSettingsPropName>Marketplace_com_umbraco_MemberLookUp</CachedSettingsPropName>
|
||||
</WebReferenceUrl>
|
||||
<WebReferenceUrl Include="http://umbraco.com/webservices/orders.asmx">
|
||||
<UrlBehavior>Dynamic</UrlBehavior>
|
||||
<RelPath>Web References\com.umbraco.orders\</RelPath>
|
||||
<UpdateFromURL>http://umbraco.com/webservices/orders.asmx</UpdateFromURL>
|
||||
<ServiceLocationURL>
|
||||
</ServiceLocationURL>
|
||||
<CachedDynamicPropName>
|
||||
</CachedDynamicPropName>
|
||||
<CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
|
||||
<CachedSettingsPropName>Marketplace_com_umbraco_orders_Orders</CachedSettingsPropName>
|
||||
</WebReferenceUrl>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>54542</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>
|
||||
</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>xcopy /s /y "$(TargetDir)marketplace*.*" "$(SolutionDir)OurUmbraco.Site\bin\"
|
||||
xcopy /s /y "$(ProjectDir)*.ascx" "$(SolutionDir)OurUmbraco.Site\"
|
||||
xcopy /s /y "$(ProjectDir)razor\*.cshtml" "$(SolutionDir)OurUmbraco.Site\macroscripts\"
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,13 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Head" runat="server">
|
||||
|
||||
</asp:Content>
|
||||
|
||||
<asp:content ContentPlaceHolderId="Main" runat="server">
|
||||
|
||||
<div id="body" class="subpage wrapper">
|
||||
<umbraco:Macro Alias="Deli-ProjectLicenseConfiguration" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
</asp:content>
|
||||
@@ -0,0 +1,40 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
|
||||
<div id="body" class="subpage">
|
||||
|
||||
|
||||
<asp:ContentPlaceHolder Id="TitleArea" runat="server">
|
||||
|
||||
<div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<umbraco:Item field="pageName" runat="server"></umbraco:Item>
|
||||
</asp:ContentPlaceHolder>
|
||||
|
||||
<div class="options">
|
||||
<%if(umbraco.library.IsLoggedOn()){ %>
|
||||
<a class="act add" href="/member/profile/projects">Create a new project</a>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
<div class="deliLeft">
|
||||
<div class="deliNav">
|
||||
<umbraco:Macro ID="Macro1" Alias="Deli-ProjectCategories" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav paid">
|
||||
<h3>Top Paid Packages</h3>
|
||||
<umbraco:Macro Alias="Deli-TopPaid" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav hqPicks">
|
||||
<h3>HQ Picks</h3>
|
||||
<umbraco:Macro PickedProjects="[$hQPicks]" Alias="Deli-HQPickedProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
<div class="deliRight">
|
||||
<asp:ContentPlaceHolder Id="DeliRight" runat="server" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,20 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:content ContentPlaceHolderId="Head" runat="server">
|
||||
|
||||
</asp:content>
|
||||
|
||||
<asp:content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<div style="margin-top: 25px;">
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<h1><umbraco:Item field="pageName" runat="server"></umbraco:Item></h1>
|
||||
<umbraco:Macro CurrentStepIndex="[#stepIndex]" Alias="Deli-CartProgress" runat="server"></umbraco:Macro>
|
||||
<umbraco:Item field="bodyText" runat="server"></umbraco:Item>
|
||||
|
||||
</div>
|
||||
|
||||
</asp:content>
|
||||
@@ -0,0 +1,19 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:content ContentPlaceHolderId="Head" runat="server">
|
||||
|
||||
</asp:content>
|
||||
|
||||
<asp:content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<div style="margin-top: 25px;">
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<umbraco:Item field="bodyText" runat="server"></umbraco:Item>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</asp:content>
|
||||
@@ -0,0 +1,25 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Head" runat="server">
|
||||
<script type="text/javascript" src="/scripts/projects/jquery.tagger.js"></script>
|
||||
<script type="text/javascript" src="/scripts/projects/jquery.autocomplete.js"></script>
|
||||
</asp:Content>
|
||||
|
||||
|
||||
|
||||
<asp:content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage wrapper">
|
||||
<div style="margin-top: 25px;">
|
||||
<umbraco:Macro Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<h1><umbraco:Item field="pageName" runat="server"></umbraco:Item></h1>
|
||||
<div class="options">
|
||||
<umbraco:Macro source="1057" Alias="Member-ProfileNavigation" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<umbraco:Macro Alias="Deli-CreateProject" runat="server"></umbraco:Macro>
|
||||
|
||||
<umbraco:Item field="bodyText" runat="server"></umbraco:Item>
|
||||
|
||||
</div>
|
||||
</asp:content>
|
||||
@@ -0,0 +1,146 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
|
||||
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
|
||||
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" title="Latest packages" href="http://our.umbraco.org/rss/projects" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Package updates" href="http://our.umbraco.org/rss/projectsupdate" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Latest documentation" href="http://our.umbraco.org/rss/wiki" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Documentation updates" href="http://our.umbraco.org/rss/wikiupdate" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Active forum topics" href="http://our.umbraco.org/rss/activetopics" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Community blogs" href="http://pipes.yahoo.com/pipes/pipe.run?_id=8llM7pvk3RGFfPy4pgt1Yg&_render=rss" />
|
||||
|
||||
|
||||
<link rel="search" type="application/opensearchdescription+xml" title="our.umbraco.org" href="/scripts/OpenSearch.xml">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/css/img/our.favicon.png"/>
|
||||
|
||||
<title><umbraco:Macro Alias="Title" runat="server"></umbraco:Macro></title>
|
||||
<link rel="stylesheet" type="text/css" href="/css/community.css?v=4&update=yes" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/forum.css?v=2" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/wiki.css?v=4" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/deli.css?v=2" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/fonts.css?v=2" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/jquery.tabs.css?v=2" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/events.css?v=2" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/notifications.css?u=yes" />
|
||||
|
||||
<script type="text/javascript" src="/scripts/libs/jquery-1.3.2.min.js"></script>
|
||||
<script type="text/javascript" src="/scripts/community.js?v=2"></script>
|
||||
<script type="text/javascript" src="/scripts/powers/uPowers.js?v=2.5"></script>
|
||||
<script type="text/javascript" src="/scripts/jquery.validation.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/scripts/notifications/notifications.js?ay=y"></script>
|
||||
|
||||
<script src="/scripts/libs/jquery-ui-1.7.1.custom.min.js" type="text/javascript"></script>
|
||||
<script type="text/javascript" src="/scripts/libs/SimpleModal.js"></script>
|
||||
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript">
|
||||
google.load('visualization', '1', {packages: ['corechart']});
|
||||
</script>
|
||||
|
||||
<umbraco:Macro Alias="Member-JsValues" runat="server"></umbraco:Macro>
|
||||
|
||||
<asp:ContentPlaceHolder Id="Head" runat="server"></asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body>
|
||||
<div id="main">
|
||||
<form runat="server">
|
||||
|
||||
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></cc1:ToolkitScriptManager>
|
||||
|
||||
|
||||
<div id="topNotificationContainer">
|
||||
<div class="topNotification">
|
||||
<span class="notifyClose">
|
||||
x
|
||||
</span>
|
||||
First time here? Check out the <a href="#">FAQ</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<asp:ContentPlaceHolder Id="Top" runat="server">
|
||||
<div id="top">
|
||||
|
||||
<div id="memberInfo">
|
||||
<div class="wrapper">
|
||||
<div id="memberHeaderProfile">
|
||||
<umbraco:Macro ProfilePage="1057" LoginPage="1056" CreatePage="1071" BlockedPage="5571" Alias="MemberTopProfile" runat="server"></umbraco:Macro>
|
||||
<umbraco:Macro Alias="Deli-MicroCart" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper">
|
||||
<a href="/" id="logo" title="Our umbraco dot org">our.umbraco.org</a>
|
||||
<umbraco:Macro Alias="TopNavigation" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umbraco:Macro Alias="SearchField" runat="server"></umbraco:Macro>
|
||||
</asp:ContentPlaceHolder>
|
||||
|
||||
|
||||
<umbraco:Item field="mainNotification" insertTextBefore="<div id="notification">" insertTextAfter="</div>" recursive="true" runat="server"></umbraco:Item>
|
||||
|
||||
|
||||
<div id="contentArea">
|
||||
<asp:ContentPlaceHolder Id="SpecialContent" runat="server"/>
|
||||
|
||||
<asp:ContentPlaceHolder Id="Main" runat="server">
|
||||
<div id="body" class="subpage wrapper">
|
||||
<div style="margin-top: 25px;">
|
||||
<umbraco:Macro Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<h1><umbraco:Item field="alternativeHeadline" useIfEmpty="pageName" runat="server"></umbraco:Item></h1>
|
||||
|
||||
|
||||
<umbraco:Item field="bodyText" runat="server"></umbraco:Item>
|
||||
|
||||
</div>
|
||||
</asp:ContentPlaceHolder>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="push"></div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="footer">
|
||||
Our.umbraco.org is the community mothership for <a href="http://umbraco.org" title="Go to umbraco.org">Umbraco, the open source asp.net cms</a>.
|
||||
With a <a href="/forum">friendly forum</a> for all your questions, a comprehensive <a href="/wiki">documentation wiki</a> and the a ton of <a href="/projects">packages, extensions and extras</a> from the community.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="votingModal" style="display: none;">
|
||||
<h3></h3><p></p>
|
||||
<textarea rows="4" cols="10"></textarea>
|
||||
<small>Please enter atleast 50 characters (<em class="counter">50</em> remaining)
|
||||
<input type="button" value="submit" /> <em> or </em> <a href="#" class="simplemodal-close">cancel</a>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
try {
|
||||
var pageTracker = _gat._getTracker("UA-120590-4");
|
||||
pageTracker._trackPageview();
|
||||
} catch(err) {}</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,38 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||||
<head id="Head1" runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><umbraco:Item ID="Item1" field="pageName" runat="server"></umbraco:Item> - Umbraco.org - the friendly CMS</title>
|
||||
<link media="screen" type="text/css" rel="stylesheet" href="/css/screen.css" />
|
||||
<link media="screen" type="text/css" rel="stylesheet" href="/css/custom.css" />
|
||||
|
||||
<script type="text/javascript" src="/scripts/libs/jquery-1.3.2.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body class='redirecting'>
|
||||
|
||||
|
||||
<div>
|
||||
<h1>Please wait...</h1>
|
||||
<p>
|
||||
We are redirecting you to paypal.com, where you can pay your order securely. Please do not hit the "back" or "forward"
|
||||
navigation buttons on your browser.
|
||||
</p>
|
||||
<p>
|
||||
Thank you for your patience
|
||||
</p>
|
||||
|
||||
<img src="/images/custom/loadanim.gif" />
|
||||
|
||||
</div>
|
||||
|
||||
<umbraco:Macro ID="Macro1" Alias="Deli-CartPayment" runat="server"></umbraco:Macro>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,44 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Head" runat="server">
|
||||
<script type="text/javascript" src="/scripts/projects/projects.js?v=2"></script>
|
||||
<script type="text/javascript" src="/scripts/projects/jquery.tagger.js"></script>
|
||||
<script type="text/javascript" src="/scripts/projects/jquery.autocomplete.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/css/shadowbox.css" />
|
||||
|
||||
<script type="text/javascript" src="/scripts/shadowbox/shadowbox.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
Shadowbox.init({overlayColor:'#ffffff',overlayOpacity: '0.01',onFinish:addClickClose});
|
||||
|
||||
function addClickClose(){
|
||||
$('#sb-content').unbind('click').click(function(){ Shadowbox.close(); });
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<div style="margin-top: 25px;">
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<umbraco:Macro Alias="Deli-ProjectView" runat="server"></umbraco:Macro>
|
||||
|
||||
|
||||
<div id="forum" style="width:620px; margin-left: 75px">
|
||||
|
||||
<% if( umbraco.presentation.nodeFactory.Node.GetCurrent().Children.Count > 0 ){ %>
|
||||
<h3>Package discussions</h3>
|
||||
<umbraco:Macro Alias="Forum-overview" runat="server"></umbraco:Macro>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,38 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<h1><umbraco:Item field="pageName" runat="server"></umbraco:Item></h1>
|
||||
<div class="options">
|
||||
<%if(umbraco.library.IsLoggedOn()){ %>
|
||||
<a class="act add" href="/member/profile/projects">Create a new project</a>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
<div class="deliLeft">
|
||||
<div class="deliNav">
|
||||
<umbraco:Macro ID="Macro1" Alias="Deli-ProjectCategories" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav paid">
|
||||
<h3>Top Paid Packages</h3>
|
||||
<umbraco:Macro Alias="Deli-TopPaid" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav hqPicks">
|
||||
<h3>HQ Picks</h3>
|
||||
<umbraco:Macro PickedProjects="[$hQPicks]" Alias="Deli-HQPickedProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
<div class="deliRight">
|
||||
<div class="deliPromoBox popular clearfix">
|
||||
<umbraco:Macro PageNumber="[@page]" IsCategoryListing="1" MaxPageSize="20" viewAll="[@ViewAll]" Alias="Deli-ProjectListing" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,68 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<%-- div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<h1><umbraco:Item field="pageName" runat="server"></umbraco:Item></h1 --%>
|
||||
<div class="options">
|
||||
<%if(umbraco.library.IsLoggedOn()){ %>
|
||||
<a class="act add" href="/member/profile/projects">Create a new project</a>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
<div class="deliLeft">
|
||||
<div class="deliNav">
|
||||
<umbraco:Macro Alias="Deli-ProjectCategories" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav paid">
|
||||
<h3>Top Paid Packages</h3>
|
||||
<umbraco:Macro Alias="Deli-TopPaid" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav hqPicks">
|
||||
<h3>HQ Picks</h3>
|
||||
<umbraco:Macro PickedProjects="[#hQPicks]" Alias="Deli-HQPickedProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav deliHelp">
|
||||
<h3>About Deli</h3>
|
||||
<ul>
|
||||
<li><a href="/wiki/deli/deli-getting-started/">List your package</a><br /><small>Both free and commercial</small></li>
|
||||
<li><a href="/wiki/deli/deli-member-faq/">FAQ</a><br /><small>For purchasers</small></li>
|
||||
<li><a href="/wiki/deli/umbraco-deli-package-license-agreement-standard/">Standard Commercial License</a><br /><small>For packages</small></li>
|
||||
<li><a href="http://umbraco.com/contact/send-us-an-email">More Questions?</a><br /><small>Need more? Contact us here</small></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="deliRightWrapper">
|
||||
|
||||
<div class="deliRight">
|
||||
<div class="deliFeatureBox clearfix">
|
||||
<umbraco:Macro projectId="[#featuredProject]" FeatureImage="[#featuredProjectImage]" Alias="Deli-FeatureProject" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliPromoBox popular clearfix">
|
||||
<h2>Popular Packages</h2>
|
||||
<a href="<%= Request.Url + "popular/" %>" class="viewAll">All popular</a>
|
||||
<umbraco:Macro MaxPageSize="8" paged="0" Alias="Deli-PopularProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliPromoBox new clearfix">
|
||||
<h2>New Packages</h2>
|
||||
<a href="<%= Request.Url + "newest/" %>" class="viewAll">All new</a>
|
||||
<umbraco:Macro MaxPageSize="4" paged="0" Alias="Deli-NewestProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div style="margin-top:10px; text-align:center; border:0; background:#eee;" class="deliNotification">List your package here! Whether it's free or a commercial, it's easy to list in the Deli. <a href="/wiki/deli/deli-getting-started/">Get started today</a></div>
|
||||
<div class="deliPromoBox deliTags">
|
||||
<h2>Browse by Tag</h2>
|
||||
<umbraco:Macro ID="Macro1" Alias="Deli-TagCloud" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,22 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Deli.master" AutoEventWireup="true" %>
|
||||
|
||||
|
||||
<asp:Content ContentPlaceHolderId="TitleArea" runat="server">
|
||||
<div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<h1>Browse projects by tag</h1>
|
||||
</asp:Content>
|
||||
|
||||
<asp:content ContentPlaceHolderId="DeliRight" runat="server">
|
||||
<div id="projectList" class="deliPromoBox clearfix">
|
||||
<h2>Browse by tag</h2>
|
||||
<umbraco:Macro Alias="Deli-TagCloud" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliPromoBox clearfix">
|
||||
<h2>Projects tagged with: <%= Request["tag"] %> </h2>
|
||||
<umbraco:Macro PageNumber="[@page]" IsCategoryListing="0" MaxPageSize="20" viewAll="[@ViewAll]" Alias="Deli-ProjectListing" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,98 @@
|
||||
<%@ Master Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
|
||||
<div id="dashboard" class="subpage">
|
||||
|
||||
<div style="text-align: center">
|
||||
<h1>The friendliest CMS community on the planet</h1>
|
||||
|
||||
<div style="margin-bottom: 40px;">
|
||||
<p>
|
||||
our.umbraco.org is the central hub for the friendly umbraco community. Search for documentation, get
|
||||
help and guidance from seasoned experts, download and collaborate on plugins and extensions.
|
||||
</p>
|
||||
|
||||
<%if(!umbraco.library.IsLoggedOn()){ %>
|
||||
<p><a href="/member/signup">Register an account</a> <em> or </em> <a href="/member/login">Login</a></p>
|
||||
<%}%>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div style="width: 315px; float: left; overflow: hidden; clear: none; ">
|
||||
<div class="spotlight" id="latestForumTopics">
|
||||
<h4><span class="entry-title">Forum talk</span> <a class="rss_small" href="/rss/activetopics">rss</a></h4>
|
||||
<div id="data_forum"><small>Loading forum list...</small></div>
|
||||
<a class="more" href="/forum">More..</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="width: 315px; overflow: hidden; clear: none; float: left; margin-left: 17px">
|
||||
|
||||
<div class="spotlight">
|
||||
<h4>New projects <a class="rss_small" href="/rss/projects">rss</a></h4>
|
||||
<div id="data_projects"><small>Loading the newest projects...</small></div>
|
||||
<a class="more" href="/projects">More..</a>
|
||||
</div>
|
||||
|
||||
<div class="spotlight">
|
||||
<h4>New documentation <a class="rss_small" href="/rss/wiki">rss</a></h4>
|
||||
<div id="data_wiki"><small>Loading the latest documentation...</small></div>
|
||||
<a class="more" href="/wiki">More..</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="width: 315px; float: right; clear: none; overflow: hidden;">
|
||||
|
||||
<div class="spotlight">
|
||||
<h4>Community blogs <a class="rss_small" href="http://pipes.yahoo.com/pipes/pipe.run?_id=8llM7pvk3RGFfPy4pgt1Yg&_render=rss">rss</a></h4>
|
||||
<div id="data_blogs"><small>Loading blog list...</small></div>
|
||||
</div>
|
||||
|
||||
<div class="spotlight">
|
||||
<h4>Twitter <a class="rss_small" href="http://search.twitter.com/search.atom?q=%23umbraco">rss</a></h4>
|
||||
<div id="data_twitter"><small>Loading tweets...</small></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
|
||||
$.post("/html/forum",
|
||||
function(data){
|
||||
jQuery("#data_forum").html(data);
|
||||
});
|
||||
|
||||
$.post("/html/projects",
|
||||
function(data){
|
||||
jQuery("#data_projects").html(data);
|
||||
});
|
||||
|
||||
$.post("/html/wiki",
|
||||
function(data){
|
||||
jQuery("#data_wiki").html(data);
|
||||
});
|
||||
|
||||
$.post("/html/blogs",
|
||||
function(data){
|
||||
jQuery("#data_blogs").html(data);
|
||||
});
|
||||
|
||||
$.post("/html/twitter",
|
||||
function(data){
|
||||
jQuery("#data_twitter").html(data);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,99 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
|
||||
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
|
||||
<html>
|
||||
<head>
|
||||
<title>Umbraco Package Repository</title>
|
||||
<link href="/umbraco_client/ui/default.css" type="text/css" rel="stylesheet"/>
|
||||
<link href="/umbraco_client/panel/style.css" type="text/css" rel="stylesheet"/>
|
||||
<link rel="stylesheet" type="text/css" href="/css/community.css?v=4&update=yes" />
|
||||
<link href="/css/repository.css" type="text/css" rel="stylesheet"/>
|
||||
<link href="/css/deli.css" type="text/css" rel="stylesheet"/>
|
||||
<link rel="stylesheet" type="text/css" href="/css/shadowbox.css" />
|
||||
|
||||
<script type="text/javascript" src="/scripts/libs/jquery-1.3.2.min.js"></script>
|
||||
<script type="text/javascript" src="/scripts/community.js?v=2"></script>
|
||||
<script type="text/javascript" src="/scripts/powers/uPowers.js?v=2.5"></script>
|
||||
<script type="text/javascript" src="/scripts/jquery.validation.js"></script>
|
||||
<script type="text/javascript" src="/scripts/notifications/notifications.js?ay=y"></script>
|
||||
<script type="text/javascript" src="/scripts/libs/jquery-ui-1.7.1.custom.min.js"></script>
|
||||
<script type="text/javascript" src="/scripts/libs/SimpleModal.js"></script>
|
||||
<script type="text/javascript" src="/scripts/shadowbox/shadowbox.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
|
||||
jQuery("a").click(function(ev){
|
||||
|
||||
ev.preventDefault();
|
||||
var href = jQuery(this).attr("href");
|
||||
|
||||
document.location = getRepoUrl(href);
|
||||
});
|
||||
});
|
||||
|
||||
function goSearch(tbId, url){
|
||||
var term = jQuery(tbId).val();
|
||||
var surl = getRepoUrl(url) + "&q=" + term;
|
||||
|
||||
alert(surl);
|
||||
|
||||
document.location = surl;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function getRepoUrl(href){
|
||||
|
||||
var id = '<%= Request.QueryString["id"] %>';
|
||||
var version = '<%= Request.QueryString["version"] %>';
|
||||
var useLegacySchema= '<%= Request.QueryString["useLegacySchema"] %>';
|
||||
var callback = '<%= Request.QueryString["callback"] %>';
|
||||
|
||||
var sep = "?";
|
||||
var qs = "id=" + id + "&version=" + version + "&useLegacySchema=" + useLegacySchema + "&callback=" + callback + "&repo=true";
|
||||
if(href.indexOf("?") > 0){
|
||||
sep = "&";
|
||||
}
|
||||
return href + sep + qs;
|
||||
}
|
||||
|
||||
Shadowbox.init({ overlayColor: '#ffffff', overlayOpacity: '0.01', onFinish: addClickClose });
|
||||
|
||||
function addClickClose() {
|
||||
$('#sb-content').unbind('click').click(function () { Shadowbox.close(); });
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<asp:ContentPlaceHolder Id="Head" runat="server"></asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body>
|
||||
<form runat="server">
|
||||
|
||||
<div id="TheForm">
|
||||
<div id="table1" class="propertyPane guiDialogNormal" >
|
||||
<div class="propertyContent">
|
||||
|
||||
<div id="header">
|
||||
<umbraco:Macro licenses="17783" search="17770" favs="17784" Alias="Repository/Header_Login" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
|
||||
<h1><umbraco:Item field="pageName" runat="server"></umbraco:Item></h1>
|
||||
<umbraco:Macro linkToCurrent="0" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
|
||||
<asp:ContentPlaceHolder Id="Main" runat="server"/>
|
||||
|
||||
<br style="clear: both;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,34 @@
|
||||
<%@ Master Language="C#" MasterPageFile="/umbraco/masterpages/default.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
|
||||
|
||||
|
||||
<html>
|
||||
|
||||
<body>
|
||||
|
||||
<form runat="server">
|
||||
|
||||
<h1>our.umbraco.org is getting a massage</h1>
|
||||
<p>We are truly sorry for the inconvenience, but our.umbraco.org is getting an upgrade to fix a couple of issues
|
||||
reported by our lovely community.
|
||||
</p>
|
||||
|
||||
<p><strong>Update:</strong> Bug is found, patch has been applied, testing as we speak</p>
|
||||
|
||||
|
||||
<p>
|
||||
We will be back ASAP<br/>
|
||||
<strong>/Per Ploug Hansen</strong>
|
||||
</p>
|
||||
|
||||
<br><br><br><br><br><br><br>
|
||||
|
||||
<umbraco:Macro NextPage="1052" ErrorMessage="bug" Alias="MemberLogin" runat="server"></umbraco:Macro>
|
||||
|
||||
</form>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,11 @@
|
||||
<%@ Master Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" %>
|
||||
|
||||
|
||||
<asp:Content ID="Content2" ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<umbraco:Macro ID="Macro1" Alias="DeliRepoProjectView" runat="server"></umbraco:Macro>
|
||||
|
||||
|
||||
</div>
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,32 @@
|
||||
<%@ Master Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<umbraco:Item field="bodyText" runat="server"></umbraco:Item>
|
||||
|
||||
<div class="deliLeft">
|
||||
<div class="deliNav">
|
||||
<umbraco:Macro Alias="Deli-ProjectCategories" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav paid">
|
||||
<h3>Top Paid Packages</h3>
|
||||
<umbraco:Macro Alias="Deli-TopPaid" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav hqPicks">
|
||||
<h3>HQ Picks</h3>
|
||||
<umbraco:Macro PickedProjects="[$hQPicks]" Alias="Deli-HQPickedProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="deliRight">
|
||||
<div class="deliPromoBox popular clearfix">
|
||||
<h2><umbraco:Item field="alternativeHeadline" useIfEmpty="pageName" runat="server"></umbraco:Item></h2>
|
||||
<umbraco:Macro PageNumber="" IsCategoryListing="1" Alias="Deli-ProjectListing" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,47 @@
|
||||
<%@ Master Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<div class="deliLeft">
|
||||
<div class="deliNav">
|
||||
<umbraco:Macro Alias="Deli-ProjectCategories" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav paid">
|
||||
<h3>Top Paid Packages</h3>
|
||||
<umbraco:Macro Alias="Deli-TopPaid" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliNav hqPicks">
|
||||
<h3>HQ Picks</h3>
|
||||
<umbraco:Macro PickedProjects="[#hQPicks]" Alias="Deli-HQPickedProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="deliRightWrapper">
|
||||
|
||||
<div class="deliRight">
|
||||
<div class="deliFeatureBox clearfix">
|
||||
<umbraco:Macro ID="Macro1" projectId="[#featuredProject]" FeatureImage="[#featuredProjectImage]" Alias="Deli-FeatureProject" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliPromoBox popular clearfix">
|
||||
<h2>Popular Packages</h2>
|
||||
<a href="<%= Request.Url + "popular/" %>" class="viewAll">All popular</a>
|
||||
<umbraco:Macro ID="Macro2" MaxPageSize="8" paged="0" Alias="Deli-PopularProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div class="deliPromoBox new clearfix">
|
||||
<h2>New Packages</h2>
|
||||
<a href="<%= Request.Url + "newest/" %>" class="viewAll">All new</a>
|
||||
<umbraco:Macro ID="Macro3" MaxPageSize="4" paged="0" Alias="Deli-NewestProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<div style="margin-top:10px; text-align:center; border:0; background:#eee;" class="deliNotification">List your package here! Whether it's free or a commercial, it's easy to list in the Deli. <a href="/linksomewhere">Get started today</a></div>
|
||||
<div class="deliPromoBox deliTags">
|
||||
<h2>Browse by Tag</h2>
|
||||
<umbraco:Macro ID="Macro4" Alias="Deli-TagCloud" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,21 @@
|
||||
<%@ Master Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
|
||||
<div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<h1>Browse projects by tag</h1>
|
||||
<div class="options">
|
||||
<a href="/member/profile/projects" class="act add">Create a new project</a>
|
||||
</div>
|
||||
|
||||
<%-- umbraco:Macro Alias="Project-tagcloud" runat="server"></umbraco:Macro --%>
|
||||
<umbraco:Macro Alias="Deli-TagCloud" runat="server"></umbraco:Macro>
|
||||
<umbraco:Macro Alias="Deli-ProjectListing" runat="server"></umbraco:Macro>
|
||||
|
||||
</div>
|
||||
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,10 @@
|
||||
<%@ Master Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="Main" runat="server">
|
||||
<div id="body" class="subpage">
|
||||
<div class="deliPromoBox popular clearfix">
|
||||
<h2><umbraco:Item field="alternativeHeadline" useIfEmpty="pageName" runat="server"></umbraco:Item></h2>
|
||||
<umbraco:Item field="bodyText" runat="server"></umbraco:Item>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Content>
|
||||
@@ -0,0 +1,14 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Deli.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="TitleArea" runat="server">
|
||||
<div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<h1>Newest packages</h1>
|
||||
</asp:Content>
|
||||
|
||||
<asp:content ContentPlaceHolderId="DeliRight" runat="server">
|
||||
<div class="deliPromoBox clearfix">
|
||||
<umbraco:Macro MaxPageSize="20" paged="1" PageNumber="[@page]" viewAll="[@ViewAll]" Alias="Deli-NewestProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</asp:content>
|
||||
@@ -0,0 +1,14 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Deli.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderId="TitleArea" runat="server">
|
||||
<div style="margin-top: 25px">
|
||||
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
<h1>Popular packages</h1>
|
||||
</asp:Content>
|
||||
|
||||
<asp:content ContentPlaceHolderId="DeliRight" runat="server">
|
||||
<div class="deliPromoBox clearfix">
|
||||
<umbraco:Macro MaxPageSize="20" paged="1" PageNumber="[@page]" viewAll="[@ViewAll]" Alias="Deli-PopularProjects" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</asp:content>
|
||||
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Net.Mail;
|
||||
|
||||
using NotificationsCore;
|
||||
|
||||
using umbraco.cms.businesslogic.member;
|
||||
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
|
||||
namespace Marketplace.NotificationTypes
|
||||
{
|
||||
public class DeliNewMember : Notification
|
||||
{
|
||||
|
||||
public DeliNewMember()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
|
||||
{
|
||||
IMemberProvider MemberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
|
||||
try
|
||||
{
|
||||
SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText);
|
||||
c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
|
||||
|
||||
MailAddress from = new MailAddress(
|
||||
details.SelectSingleNode("//from/email").InnerText,
|
||||
details.SelectSingleNode("//from/name").InnerText);
|
||||
|
||||
string subject = details.SelectSingleNode("//subject").InnerText;
|
||||
string body = details.SelectSingleNode("//body").InnerText;
|
||||
|
||||
//Member m = (Member)args[0];
|
||||
// deli member
|
||||
IMember dMember = (IMember)args[0];
|
||||
|
||||
string domain = details.SelectSingleNode("//domain").InnerText;
|
||||
|
||||
body = string.Format(body,
|
||||
dMember.Name,
|
||||
dMember.Email,
|
||||
args[1].ToString());
|
||||
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.Subject = subject;
|
||||
mm.Body = body;
|
||||
|
||||
mm.To.Add(dMember.Email);
|
||||
mm.From = from;
|
||||
|
||||
c.Send(mm);
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] New deli member message sent" + dMember.Name);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using NotificationsCore;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Marketplace.NotificationTypes
|
||||
{
|
||||
public class DeliNotifyVendor : Notification
|
||||
{
|
||||
public DeliNotifyVendor()
|
||||
{
|
||||
}
|
||||
|
||||
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
|
||||
{
|
||||
|
||||
IListingProvider listingProvider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
ILicenseProvider licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
|
||||
try
|
||||
{
|
||||
SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText);
|
||||
c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
|
||||
|
||||
|
||||
MailAddress from = new MailAddress(
|
||||
details.SelectSingleNode("//from/email").InnerText,
|
||||
details.SelectSingleNode("//from/name").InnerText);
|
||||
|
||||
string subject = details.SelectSingleNode("//subject").InnerText;
|
||||
string body = details.SelectSingleNode("//body").InnerText;
|
||||
|
||||
// deli ordered item
|
||||
IOrderItem dOrder = (IOrderItem)args[0];
|
||||
|
||||
// deli listing
|
||||
IListingItem dListing = listingProvider.GetListing(dOrder.ListingItemId);
|
||||
|
||||
// deli member
|
||||
IMember dMember = (IMember)args[1];
|
||||
|
||||
string domain = details.SelectSingleNode("//domain").InnerText;
|
||||
|
||||
body = string.Format(body,
|
||||
dMember.Name,
|
||||
dOrder.Id.ToString(),
|
||||
dListing.Name,
|
||||
licenseProvider.GetLicense(dOrder.LicenseId).LicenseType.ToString(),
|
||||
dOrder.Quantity,
|
||||
dMember.Name,
|
||||
dMember.Email);
|
||||
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.Subject = subject;
|
||||
mm.Body = body;
|
||||
|
||||
mm.To.Add(dListing.Vendor.Member.Email);
|
||||
mm.From = from;
|
||||
|
||||
c.Send(mm);
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] Deli order vendor notification message sent, order item id: " + dOrder.Id.ToString());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using NotificationsCore;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Marketplace.NotificationTypes
|
||||
{
|
||||
public class DeliOrderComplete : Notification
|
||||
{
|
||||
public DeliOrderComplete()
|
||||
{
|
||||
}
|
||||
|
||||
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
|
||||
{
|
||||
IOrderProvider OrderProvider = (IOrderProvider)MarketplaceProviderManager.Providers["OrderProvider"];
|
||||
IMemberProvider MemberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText);
|
||||
c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
|
||||
|
||||
MailAddress from = new MailAddress(
|
||||
details.SelectSingleNode("//from/email").InnerText,
|
||||
details.SelectSingleNode("//from/name").InnerText);
|
||||
|
||||
string subject = details.SelectSingleNode("//subject").InnerText;
|
||||
string body = details.SelectSingleNode("//body").InnerText;
|
||||
|
||||
// deli order
|
||||
IOrder dOrder = (IOrder)args[0];
|
||||
|
||||
// deli member
|
||||
IMember dMember = (IMember)args[1];
|
||||
|
||||
string domain = details.SelectSingleNode("//domain").InnerText;
|
||||
|
||||
body = string.Format(body,
|
||||
dMember.Name,
|
||||
dOrder.Id.ToString(),
|
||||
dOrder.ProcessedTotal.ToString(),
|
||||
dOrder.Currency.ToString(),
|
||||
dOrder.PaymentDate.ToString(),
|
||||
args[2].ToString());
|
||||
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.Subject = subject;
|
||||
mm.Body = body;
|
||||
|
||||
mm.To.Add(dMember.Email);
|
||||
mm.From = from;
|
||||
|
||||
c.Send(mm);
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] Deli order complete message sent, order id: " + dOrder.Id.ToString());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using NotificationsCore;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Marketplace.NotificationTypes
|
||||
{
|
||||
public class DeliPayoutRequest : Notification
|
||||
{
|
||||
public DeliPayoutRequest()
|
||||
{
|
||||
}
|
||||
|
||||
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
|
||||
{
|
||||
IPayoutProvider payoutProvider = (IPayoutProvider)MarketplaceProviderManager.Providers["PayoutProvider"];
|
||||
IMemberProvider MemberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText);
|
||||
c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
|
||||
|
||||
MailAddress from = new MailAddress(
|
||||
details.SelectSingleNode("//from/email").InnerText,
|
||||
details.SelectSingleNode("//from/name").InnerText);
|
||||
|
||||
string subject = details.SelectSingleNode("//subject").InnerText;
|
||||
string body = details.SelectSingleNode("//body").InnerText;
|
||||
string notify = details.SelectSingleNode("//to").InnerText;
|
||||
|
||||
// deli order
|
||||
IPayout dPayout = (IPayout)args[0];
|
||||
|
||||
// deli member
|
||||
IMember dMember = (IMember)MemberProvider.GetMemberById(dPayout.VendorId);
|
||||
|
||||
string domain = details.SelectSingleNode("//domain").InnerText;
|
||||
|
||||
body = string.Format(body,
|
||||
dMember.Name,
|
||||
GetPayoutValue(dPayout.OrderItems).ToString());
|
||||
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.Subject = subject;
|
||||
mm.Body = body;
|
||||
|
||||
mm.To.Add(notify);
|
||||
mm.From = from;
|
||||
|
||||
c.Send(mm);
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] Deli payout message sent, payout id: " + dPayout.Id.ToString());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message + "++++++++++++++++++++++" + e.Source + "-------" + e.StackTrace);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private double GetPayoutValue(IEnumerable<IOrderItem> items)
|
||||
{
|
||||
double val = 0.00;
|
||||
foreach (var i in items)
|
||||
{
|
||||
val += i.PayoutAmount;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,267 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
|
||||
<!-- these global settings will be passed together with the notification specific settings -->
|
||||
<global>
|
||||
<conn><![CDATA[server=.\sqlexpress;database=finalmigration.our.umbraco.org;user id=our;password=just4cores!; Min Pool Size=5;Max Pool Size=500;Connect Timeout=10;]]></conn>
|
||||
<smtp>mx01.fab-it.dk</smtp>
|
||||
<domain>our.umbraco.org</domain>
|
||||
<from>
|
||||
<name>Our Umbraco</name>
|
||||
<email>robot@umbraco.org</email>
|
||||
</from>
|
||||
</global>
|
||||
|
||||
<sheduled>
|
||||
</sheduled>
|
||||
|
||||
<instant>
|
||||
|
||||
<notification name="VoteForProjectReminderSingle"
|
||||
assembly="NotificationsCore"
|
||||
type="NotificationsCore.NotificationTypes.VoteForProjectReminderSingle">
|
||||
<subject>Umbraco community: Vote for project reminder</subject>
|
||||
<body>We noticed you downloaded the project ‘{0}’ from Umbraco Community Projects and have not yet given the project a vote.
|
||||
Voting for projects helps others find high-quality projects and helps project owners by letting them know which projects the community finds valuable.
|
||||
|
||||
You can view the project here {1}
|
||||
|
||||
|
||||
Thank You from the Umbraco Community!
|
||||
--------------------------------------------------
|
||||
Don't want to get these notifications? Simply update your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="MarkAsSolutionReminderSingle"
|
||||
assembly="NotificationsCore"
|
||||
type="NotificationsCore.NotificationTypes.MarkAsSolutionReminderSingle">
|
||||
<subject>Umbraco community: Solution Reminder</subject>
|
||||
<body>We noticed that the topic ‘{0}’ you created in the Umbraco Community Forum does not have a post marked as a solution.
|
||||
If a post helped answer your question or resolve your issue please mark it as a solution so others can quickly find it. You can view the topic and any posts here {1}.
|
||||
|
||||
|
||||
Thank You from the Umbraco Community!
|
||||
--------------------------------------------------
|
||||
Don't want to get these notifications? Simply update your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="NewTopic"
|
||||
assembly="NotificationsCore"
|
||||
type="NotificationsCore.NotificationTypes.NewForumTopic">
|
||||
<subject>Umbraco community: New topic in '{0}' forum</subject>
|
||||
<body>{2} just added a new topic to the '{0}' forum.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
{3}
|
||||
|
||||
{4}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
You can view the new topic here:
|
||||
{1}
|
||||
|
||||
|
||||
Thank You from the Umbraco Community!
|
||||
--------------------------------------------------
|
||||
You get this notification because you are subscribed to the '{0}' forum notifications.
|
||||
You can unsubscribe from your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="NewComment"
|
||||
assembly="NotificationsCore"
|
||||
type="NotificationsCore.NotificationTypes.NewForumTopicComment">
|
||||
<subject>Umbraco community: New comment in topic '{0}'</subject>
|
||||
<body>{2} just added a new comment to the '{0}' topic.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
{3}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
You can view the new comment here:
|
||||
{1}
|
||||
|
||||
|
||||
Thank You from the Umbraco Community!
|
||||
--------------------------------------------------
|
||||
You get this notification because you are subscribed to the '{0}' topic notifications.
|
||||
You can unsubscribe from your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="DeliNewMember"
|
||||
assembly="Marketplace"
|
||||
type="Marketplace.NotificationTypes.DeliNewMember">
|
||||
<subject>Welcome to the Umbraco Deli</subject>
|
||||
<body>
|
||||
Hi {0} -
|
||||
|
||||
During your purchase from the Umbraco Deli we created
|
||||
a new member account for you, just to save you some
|
||||
time.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Your user name is: {1}
|
||||
Your password is: {2}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
We suggest you protect your information by changing
|
||||
your password after logging in at:
|
||||
|
||||
http://our.umbraco.org/member/login
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Not only does your new member account provide you with
|
||||
access to your purchased licenses, but it also is your key
|
||||
to the Umbraco Community on http://our.umbraco.org/ !
|
||||
|
||||
We encourage you to log in to http://our.umbraco.org/member/login
|
||||
and plug-in to our community.
|
||||
|
||||
|
||||
Thank You from the Umbraco Deli!
|
||||
--------------------------------------------------
|
||||
We sent this notification because we created an account for you.
|
||||
You can unsubscribe from further communication from
|
||||
your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="DeliOrderComplete"
|
||||
assembly="Marketplace"
|
||||
type="Marketplace.NotificationTypes.DeliOrderComplete">
|
||||
<subject>Your Umbraco Deli Order</subject>
|
||||
<body>
|
||||
Hi {0} -
|
||||
|
||||
Your Umbraco Deli purchase is complete! Your order details are below,
|
||||
but you may want to get on it with it and just configure your
|
||||
license here: http://our.umbraco.org/member/profile/my-licenses/
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Deli Order Id: {1}
|
||||
Payment Amount: {2}
|
||||
Payment Currency: {3}
|
||||
Payment Date: {4}
|
||||
Transaction Id: {5}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
|
||||
Thank You from the Umbraco Deli!
|
||||
|
||||
--------------------------------------------------
|
||||
We sent this notification because you completed an order with us.
|
||||
You can unsubscribe from further communication from
|
||||
your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="DeliNotifyVendor"
|
||||
assembly="Marketplace"
|
||||
type="Marketplace.NotificationTypes.DeliNotifyVendor">
|
||||
<subject>You have a new Umbraco Deli Order</subject>
|
||||
<body>
|
||||
Hi {0} -
|
||||
|
||||
An order was just placed on theUmbraco Deli for your project!
|
||||
The details of the order details are below.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Order Item Id: {1}
|
||||
Deli project name: {2}
|
||||
License Type: {3} x {4}
|
||||
Ordered by: {5}, {6}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Thank You from the Umbraco Deli!
|
||||
|
||||
--------------------------------------------------
|
||||
We sent this notification because you are a Deli vendor.
|
||||
You can unsubscribe from further communication from
|
||||
your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="DeliNewMember"
|
||||
assembly="Marketplace"
|
||||
type="Marketplace.NotificationTypes.DeliNewMember">
|
||||
<subject>Welcome to the Umbraco Deli</subject>
|
||||
<body>
|
||||
Hi {0} -
|
||||
|
||||
During your purchase from the Umbraco Deli we created
|
||||
a new member account for you, just to save you some
|
||||
time.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Your user name is: {1}
|
||||
Your password is: {2}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
We suggest you protect your information by changing
|
||||
your password after logging in at:
|
||||
|
||||
http://our.umbraco.org/member/login
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Not only does your new member account provide you with
|
||||
access to your purchased licenses, but it also is your key
|
||||
to the Umbraco Community on http://our.umbraco.org/ !
|
||||
|
||||
We encourage you to log in to http://our.umbraco.org/member/login
|
||||
and plug-in to our community.
|
||||
|
||||
|
||||
Thank You from the Umbraco Deli!
|
||||
--------------------------------------------------
|
||||
We sent this notification because we created an account for you.
|
||||
You can unsubscribe from further communication from
|
||||
your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="DeliPayoutRequest"
|
||||
assembly="Marketplace"
|
||||
type="Marketplace.NotificationTypes.DeliPayoutRequest">
|
||||
<subject>A new payout request has been received</subject>
|
||||
<to>gregory@umbraco.com</to>
|
||||
<body>
|
||||
Hi there -
|
||||
|
||||
A Deli Vendor has requested a payout! Payout details are below:
|
||||
http://our.umbraco.org/umbraco/
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Vendor: {0}
|
||||
Payout Amount: {1}
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
|
||||
Thank You from the Umbraco Deli!
|
||||
|
||||
--------------------------------------------------
|
||||
We sent this notification because your the BOSS!
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
</instant>
|
||||
|
||||
</configuration>
|
||||
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using umbraco.cms.businesslogic;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using our;
|
||||
using Marketplace.Providers.MediaFile;
|
||||
using Marketplace.Umbraco.BusinessLogic;
|
||||
|
||||
namespace Marketplace {
|
||||
public class ProjectFileUploadHandler : IHttpHandler {
|
||||
|
||||
#region IHttpHandler Members
|
||||
|
||||
public bool IsReusable {
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public void ProcessRequest(HttpContext context) {
|
||||
|
||||
HttpPostedFile file = context.Request.Files["Filedata"];
|
||||
string userguid = context.Request.Form["USERGUID"];
|
||||
string projectguid = context.Request.Form["NODEGUID"];
|
||||
string fileType = context.Request.Form["FILETYPE"];
|
||||
string fileName = context.Request.Form["FILENAME"];
|
||||
string umbraoVersion = (context.Request.Form["UMBRACOVERSION"] != null) ? context.Request.Form["UMBRACOVERSION"] : "nan";
|
||||
string dotNetVersion = (context.Request.Form["DOTNETVERSION"] != null) ? context.Request.Form["DOTNETVERSION"] : "nan";
|
||||
string trustLevel = (context.Request.Form["TRUSTLEVEL"] != null) ? context.Request.Form["TRUSTLEVEL"] : "nan";
|
||||
|
||||
|
||||
|
||||
|
||||
List<UmbracoVersion> v = new List<UmbracoVersion>() { UmbracoVersion.DefaultVersion() };
|
||||
|
||||
if (!string.IsNullOrEmpty(umbraoVersion))
|
||||
{
|
||||
v.Clear();
|
||||
v = GetVersionsFromString(umbraoVersion);
|
||||
}
|
||||
|
||||
|
||||
bool trust = false;
|
||||
if(trustLevel == "Medium"){
|
||||
trust = true;
|
||||
}
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(userguid) && !string.IsNullOrEmpty(projectguid) && !string.IsNullOrEmpty(fileType) && !string.IsNullOrEmpty(fileName)) {
|
||||
|
||||
var provider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
var p = provider.GetListing(new Guid(projectguid));
|
||||
Member mem = new Member(new Guid(userguid));
|
||||
|
||||
if (p.Vendor != null && p.Vendor.Member.Id == mem.Id || Utills.IsProjectContributor(mem.Id, p.Id))
|
||||
{
|
||||
|
||||
var fileProvider = (IMediaProvider)MarketplaceProviderManager.Providers["MediaProvider"];
|
||||
|
||||
var packageFileType = (FileType)Enum.Parse(typeof(FileType), (string)fileType , true);
|
||||
|
||||
fileProvider.CreateFile(fileName, p.Version, mem.UniqueId, file, packageFileType, v, dotNetVersion, trust);
|
||||
|
||||
} else {
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, 0, "wrong type or not a owner");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static List<UmbracoVersion> GetVersionsFromString(string p)
|
||||
{
|
||||
var verArray = p.Split(',');
|
||||
var verList = new List<UmbracoVersion>();
|
||||
foreach (var ver in verArray)
|
||||
{
|
||||
verList.Add(UmbracoVersion.AvailableVersions()[ver]);
|
||||
}
|
||||
return verList;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Marketplace")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Microsoft")]
|
||||
[assembly: AssemblyProduct("Marketplace")]
|
||||
[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("b19fabd8-dd28-4981-9123-56d8467905a7")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx")]
|
||||
public string Marketplace_com_umbraco_MemberLookUp {
|
||||
get {
|
||||
return ((string)(this["Marketplace_com_umbraco_MemberLookUp"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://umbraco.com/webservices/orders.asmx")]
|
||||
public string Marketplace_com_umbraco_orders_Orders {
|
||||
get {
|
||||
return ((string)(this["Marketplace_com_umbraco_orders_Orders"]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Marketplace.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Marketplace_com_umbraco_MemberLookUp" Type="(Web Service URL)" Scope="Application">
|
||||
<Value Profile="(Default)">http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx</Value>
|
||||
</Setting>
|
||||
<Setting Name="Marketplace_com_umbraco_orders_Orders" Type="(Web Service URL)" Scope="Application">
|
||||
<Value Profile="(Default)">http://umbraco.com/webservices/orders.asmx</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,95 @@
|
||||
@using Marketplace.Interfaces
|
||||
@using Marketplace.Providers
|
||||
|
||||
@{
|
||||
IMemberProvider memberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
IMember member = memberProvider.GetCurrentMember();
|
||||
IListingProvider provider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
IEnumerable<IListingItem> projects = provider.GetListingsByVendor(member.Id,true,true);
|
||||
|
||||
string editUrl = umbraco.library.NiceUrl(Int32.Parse(Parameter.Edit));
|
||||
string forumUrl = umbraco.library.NiceUrl(Int32.Parse(Parameter.Forum));
|
||||
string licenseUrl = umbraco.library.NiceUrl(Int32.Parse(Parameter.Licenses));
|
||||
string teamUrl = umbraco.library.NiceUrl(Int32.Parse(Parameter.Team));
|
||||
}
|
||||
|
||||
<h3>Your existing projects</h3>
|
||||
|
||||
<ul class="profileProjects">
|
||||
@foreach (var project in projects)
|
||||
{
|
||||
<li>
|
||||
<h3><a href="@project.NiceUrl">
|
||||
@project.Name
|
||||
</a></h3>
|
||||
@if (!string.IsNullOrEmpty(project.DefaultScreenshot))
|
||||
{
|
||||
<img src="/umbraco/imagegen.ashx?image=@project.DefaultScreenshot&pad=true&width=50&height=50" alt="@project.Name" class="projectIcon" style="border:1px solid #ddd"/>
|
||||
}
|
||||
else
|
||||
{
|
||||
<img src="/css/img/package2.png" alt="@project.Name" class="projectIcon" />
|
||||
}
|
||||
<small>
|
||||
@project.CreateDate.ToString("D")
|
||||
</small>
|
||||
<ul class="projectNav">
|
||||
<li><a href="@editUrl?id=@project.Id">Edit</a></li>
|
||||
<li><a href="@forumUrl?id=@project.Id">Forums</a></li>
|
||||
@if (project.ListingType == ListingType.commercial)
|
||||
{
|
||||
<li><a href="@licenseUrl?id=@project.Id">Licenses</a></li>
|
||||
}
|
||||
|
||||
@if (project.OpenForCollab)
|
||||
{
|
||||
<li><a href="@teamUrl?id=@project.Id">Team</a></li>
|
||||
}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
}
|
||||
<li class="add"><h3>
|
||||
<a href="@editUrl">Add new project</a>
|
||||
</h3>
|
||||
<img src="/css/img/add.png" alt="Add new project" />
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@{
|
||||
var contribProjects = provider.GetListingsForContributor(member.Id);
|
||||
}
|
||||
|
||||
@if (contribProjects.Count() > 0)
|
||||
{
|
||||
<h3>Project where you are contributor</h3>
|
||||
<ul class="profileProjects">
|
||||
@foreach (var project in contribProjects)
|
||||
{
|
||||
<li>
|
||||
<h3><a href="@project.NiceUrl">
|
||||
@project.Name
|
||||
</a></h3>
|
||||
<img src="/css/img/package2.png" alt="@project.Name" class="projectIcon" />
|
||||
<small>
|
||||
@project.CreateDate.ToString("D")<br />
|
||||
Owner: <a href="mailto:@project.Vendor.Member.Email">@project.Vendor.Member.Name</a>
|
||||
</small>
|
||||
<ul class="projectNav">
|
||||
<li><a href="@editUrl?id=@project.Id">Edit</a></li>
|
||||
<li><a href="@forumUrl?id=@project.Id">Forums</a></li>
|
||||
@if (project.ListingType == ListingType.commercial)
|
||||
{
|
||||
<li><a href="@licenseUrl?id=@project.Id">Licenses</a></li>
|
||||
}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
@using Marketplace.Interfaces
|
||||
@using Marketplace.Providers
|
||||
|
||||
@{
|
||||
ICategoryProvider categoryProvider = (ICategoryProvider)MarketplaceProviderManager.Providers["CategoryProvider"];
|
||||
IEnumerable<ICategory> cats = categoryProvider.GetAllCategories();
|
||||
var selected = "";
|
||||
}
|
||||
<h3>Project Categories</h3>
|
||||
<ul>
|
||||
@foreach (var cat in cats)
|
||||
{
|
||||
|
||||
<li>
|
||||
<a href="@cat.Url">
|
||||
|
||||
@cat.Name
|
||||
</a>
|
||||
@* <small>(@cat.ProjectCount)</small>*@
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
@@ -0,0 +1,33 @@
|
||||
@using Marketplace.Interfaces
|
||||
@using Marketplace.Providers
|
||||
|
||||
@{
|
||||
var tagsProvider = (IProjectTagProvider)MarketplaceProviderManager.Providers["TagProvider"];
|
||||
var tags = tagsProvider.GetAllTags(false).OrderBy(x => x.Count).Take(50).OrderBy(x => x.Text);
|
||||
max = tags.Max(x => x.LiveCount);
|
||||
}
|
||||
|
||||
@functions{
|
||||
|
||||
public int max { get; set; }
|
||||
public string weight(int liveCount)
|
||||
{
|
||||
double perc = ((double)liveCount / (double)max) * 100;
|
||||
|
||||
if(perc >= 99)return "weight1";
|
||||
if(perc >= 70)return "weight2";
|
||||
if(perc >= 40)return "weight3";
|
||||
if(perc >= 20)return "weight4";
|
||||
return "weight5";
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
<div id="tagCloud">
|
||||
@foreach (var t in tags) {
|
||||
<a href="/projects/tag/@t.Text#projectList" class="@weight(t.LiveCount)">@t.Text</a>
|
||||
}
|
||||
</div>
|
||||
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Marketplace.uVersion;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
|
||||
namespace Marketplace.Razor
|
||||
{
|
||||
public class VersionCompatibilityReport
|
||||
{
|
||||
private List<UVersion> uVersions;
|
||||
private int fileId { get; set; }
|
||||
private int packageId { get; set; }
|
||||
private IListingProvider projectProvider;
|
||||
private IListingItem project;
|
||||
private IMediaFile file;
|
||||
|
||||
|
||||
public VersionCompatibilityReport(int fid, int pid)
|
||||
{
|
||||
uVersions = Marketplace.uVersion.UVersion.GetAllVersions();
|
||||
fileId = fid;
|
||||
packageId = packageId;
|
||||
projectProvider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
project = projectProvider.GetListing(pid, false);
|
||||
file = project.PackageFile.Where(x => x.Id == Int32.Parse(project.CurrentReleaseFile)).FirstOrDefault();
|
||||
}
|
||||
|
||||
public List<verCompat> GetCompatibilityReport()
|
||||
{
|
||||
var compatList = new List<verCompat>();
|
||||
using (Marketplace.Data.MarketplaceDataContext ctx = new Marketplace.Data.MarketplaceDataContext())
|
||||
{
|
||||
|
||||
foreach (var ver in uVersions)
|
||||
{
|
||||
var reports = ctx.DeliVersionCompatibilities.Where(x => x.version == ver.Name && x.projectId == project.Id);
|
||||
|
||||
if (reports.Count() > 0)
|
||||
{
|
||||
float compats = reports.Where(x => x.isCompatible).Count();
|
||||
float numReps = reports.Count();
|
||||
var perc = Convert.ToInt32(((compats / numReps) * 100));
|
||||
|
||||
var smiley = "unhappy";
|
||||
|
||||
if (perc >= 95)
|
||||
{
|
||||
smiley = "joyous";
|
||||
}
|
||||
else if (perc < 95 && perc >= 80)
|
||||
{
|
||||
smiley = "happy";
|
||||
}
|
||||
else if (perc < 80 && perc >= 65)
|
||||
{
|
||||
smiley = "neutral";
|
||||
}
|
||||
else if (perc < 65 && perc >= 50)
|
||||
{
|
||||
smiley = "unhappy";
|
||||
}
|
||||
else
|
||||
{
|
||||
smiley = "superUnhappy";
|
||||
}
|
||||
|
||||
|
||||
|
||||
compatList.Add(new verCompat() { perc = perc, smiley = smiley, version = ver.Name });
|
||||
}
|
||||
else
|
||||
{
|
||||
compatList.Add(new verCompat() { perc = 0, smiley = "untested", version = ver.Name });
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return compatList;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public class verCompat
|
||||
{
|
||||
public int perc { get; set; }
|
||||
public string smiley { get; set; }
|
||||
public string version { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
@using Marketplace.uVersion;
|
||||
@{
|
||||
var versions = UVersion.GetAllVersions();
|
||||
var fileId = @Parameter.fileId;
|
||||
var packageId = @Parameter.packageId;
|
||||
|
||||
var memberProvider = (Marketplace.Interfaces.IMemberProvider)Marketplace.Providers.MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
var mem = memberProvider.GetCurrentMember();
|
||||
|
||||
var projectProvider = (Marketplace.Interfaces.IListingProvider)Marketplace.Providers.MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
var Project = projectProvider.GetListing(Int32.Parse(packageId));
|
||||
|
||||
}
|
||||
|
||||
@if(umbraco.library.IsLoggedOn())
|
||||
{
|
||||
|
||||
if(Marketplace.library.HasDownloaded(mem.Id, Project.Id))
|
||||
{
|
||||
<input type="hidden" value="@fileId" id="packageFileId" />
|
||||
<input type="hidden" value="@packageId" id="packageId" />
|
||||
<table class="projectCompatList">
|
||||
@foreach (var v in versions)
|
||||
{
|
||||
var alias = v.Name.Replace(".", "");
|
||||
<tr>
|
||||
<td><span>@v.Name</span></td>
|
||||
<td><input type="radio" value="1" name="@Library.Concatenate("v",alias)" id="@Library.Concatenate("v",alias, "works")"/><label for="@Library.Concatenate("v",alias,"works")">Works</label></td>
|
||||
<td><input type="radio" value="0" name="@Library.Concatenate("v",alias)" id="@Library.Concatenate("v",alias, "doesntwork")"/><label for="@Library.Concatenate("v", alias, "doesntwork")">Doesn't work</label></td>
|
||||
<td><input type="radio" checked value="-1" name="@Library.Concatenate("v",alias)" id="@Library.Concatenate("v",alias, "nottried")"/><label for="@Library.Concatenate("v", alias, "nottried")">haven't tried</label></td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
|
||||
<input type="button" value="Report Compatibility" id="reportCompatibility" /> @:or <a href="#" class="simplemodal-close">Cancel</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<br /><p><strong>You need to download this package before you can report on it's compatibility</strong></p>
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<br /><p><strong>You must login before you can report on package compatibility.</strong></p>
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
@using Marketplace.Razor;
|
||||
@{
|
||||
int fileId = Int32.Parse(Parameter.fileId);
|
||||
int packageId = Int32.Parse(Parameter.packageId);
|
||||
|
||||
var verReport = new VersionCompatibilityReport(fileId, packageId);
|
||||
}
|
||||
|
||||
This project is compatible with the following versions as reported by community members who have downloaded this package:<br/><br/>
|
||||
|
||||
@{
|
||||
|
||||
foreach (var ver in verReport.GetCompatibilityReport())
|
||||
{
|
||||
if(ver.smiley != "untested"){
|
||||
<span class="smiley @ver.smiley"> @ver.version (@ver.perc%)</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smiley @ver.smiley"> @ver.version (untested)</span>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<br/>
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
using System;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Data;
|
||||
using System.Web.Security;
|
||||
using Umbraco.Web.BaseRest;
|
||||
|
||||
namespace Marketplace
|
||||
{
|
||||
[RestExtension("deli")]
|
||||
public class Rest
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the popular listings.
|
||||
/// </summary>
|
||||
/// <param name="listingType">Type of the listing.</param>
|
||||
/// <param name="skip">The skip.</param>
|
||||
/// <param name="take">The take.</param>
|
||||
/// <returns></returns>
|
||||
[RestExtensionMethod(ReturnXml = false)]
|
||||
public static string GetPopularListings(string listingType, int skip, int take)
|
||||
{
|
||||
|
||||
var ProjectsProvider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
|
||||
IEnumerable<IListingItem> Projects;
|
||||
|
||||
switch (listingType)
|
||||
{
|
||||
case "free":
|
||||
Projects = ProjectsProvider.GetListingsByPopularity(skip, take, true, false).Where(x => x.ListingType == Interfaces.ListingType.free).Take(take);
|
||||
break;
|
||||
|
||||
case "commercial":
|
||||
Projects = ProjectsProvider.GetTopPaidListings(skip, take, true, false);
|
||||
break;
|
||||
|
||||
default:
|
||||
Projects = ProjectsProvider.GetListingsByPopularity(skip, take, true, false);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
return serializer.Serialize(Projects.Select(x => new
|
||||
{
|
||||
Name = x.Name,
|
||||
CategoryName = Marketplace.library.GetCategoryName((int)x.Id),
|
||||
DefaultScreenShot = GetScreenShot(x.DefaultScreenshot),
|
||||
Description = Marketplace.library.ShortenText(x.Description.ToString()),
|
||||
NiceUrl = x.NiceUrl,
|
||||
ListingType = x.ListingType.ToString(),
|
||||
Karma = x.Karma,
|
||||
Downloads = x.Downloads
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the newest listings.
|
||||
/// </summary>
|
||||
/// <param name="listingType">Type of the listing.</param>
|
||||
/// <param name="skip">The skip.</param>
|
||||
/// <param name="take">The take.</param>
|
||||
/// <returns></returns>
|
||||
[RestExtensionMethod(ReturnXml = false)]
|
||||
public static string GetNewestListings(string listingType, int skip, int take)
|
||||
{
|
||||
|
||||
var ProjectsProvider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
|
||||
IEnumerable<IListingItem> Projects;
|
||||
|
||||
switch (listingType)
|
||||
{
|
||||
case "free":
|
||||
Projects = ProjectsProvider.GetListingsByLatest(skip, take, ListingType.free, true, false);
|
||||
break;
|
||||
|
||||
case "commercial":
|
||||
Projects = ProjectsProvider.GetListingsByLatest(skip, take, ListingType.commercial, true, false);
|
||||
break;
|
||||
|
||||
default:
|
||||
Projects = ProjectsProvider.GetListingsByLatest(skip, take, true, false);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
return serializer.Serialize(Projects.Select(x => new
|
||||
{
|
||||
Name = x.Name,
|
||||
CategoryName = Marketplace.library.GetCategoryName((int)x.Id),
|
||||
DefaultScreenShot = GetScreenShot(x.DefaultScreenshot),
|
||||
Description = Marketplace.library.ShortenText(x.Description.ToString()),
|
||||
NiceUrl = x.NiceUrl,
|
||||
ListingType = x.ListingType.ToString(),
|
||||
Karma = x.Karma,
|
||||
Downloads = x.Downloads
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
[RestExtensionMethod(ReturnXml = false)]
|
||||
public static string CompatibilityReport(int projectId, int fileId, string compatArr)
|
||||
{
|
||||
using (var ctx = new MarketplaceDataContext())
|
||||
{
|
||||
int _currentMember = HttpContext.Current.User.Identity.IsAuthenticated ? (int)Membership.GetUser().ProviderUserKey : 0;
|
||||
var versionData = compatArr.Split(',').Select(x => new { version = x.Split('^')[0], compat = x.Split('^')[1] });
|
||||
|
||||
|
||||
// load all the existing member reports for this package by this member. This is to stop multiple insertions of reports for a single member
|
||||
var memberReports = ctx.DeliVersionCompatibilities.Where(x => x.memberId == _currentMember && x.fileId == fileId && x.projectId == projectId).ToList();
|
||||
|
||||
|
||||
|
||||
foreach (var ver in versionData)
|
||||
{
|
||||
if (ver.compat == "1" || ver.compat == "0")
|
||||
{
|
||||
var compVer = new DeliVersionCompatibility() { fileId = fileId, memberId = _currentMember, isCompatible = ver.compat == "1" ? true : false, dateStamp = DateTime.Now, version = ver.version, projectId = projectId };
|
||||
|
||||
//try find an existing report
|
||||
var existingReport = memberReports.Where(x => x.fileId == compVer.fileId && x.memberId == compVer.memberId && x.projectId == compVer.projectId && x.version == compVer.version).FirstOrDefault();
|
||||
if (existingReport != null)
|
||||
{
|
||||
existingReport.isCompatible = compVer.isCompatible;
|
||||
existingReport.dateStamp = DateTime.Now;
|
||||
}
|
||||
else
|
||||
{
|
||||
// otherwise insert the new compat ver report
|
||||
ctx.DeliVersionCompatibilities.InsertOnSubmit(compVer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
ctx.SubmitChanges();
|
||||
|
||||
//give them some Karma if they haven't reported on this before.
|
||||
if (memberReports.Count() == 0)
|
||||
{
|
||||
uPowers.Library.Rest.Action("ProjectVersionVote", fileId);
|
||||
}
|
||||
}
|
||||
return "got it thanks";
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static string GetScreenShot(string ss){
|
||||
if(!string.IsNullOrEmpty(ss)){
|
||||
return "/umbraco/imagegen.ashx?image="+ ss +"&pad=true&width=50&height=50;";
|
||||
}
|
||||
else return "/css/img/package2.png";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file is automatically generated by Visual Studio .Net. It is
|
||||
used to store generic object data source configuration information.
|
||||
Renaming the file extension or editing the content of this file may
|
||||
cause the file to be unrecognizable by the program.
|
||||
-->
|
||||
<GenericObjectDataSource DisplayName="BuyerProxy" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TypeInfo>Marketplace.com.umbraco.orders.BuyerProxy, Web References.com.umbraco.orders.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||
</GenericObjectDataSource>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file is automatically generated by Visual Studio .Net. It is
|
||||
used to store generic object data source configuration information.
|
||||
Renaming the file extension or editing the content of this file may
|
||||
cause the file to be unrecognizable by the program.
|
||||
-->
|
||||
<GenericObjectDataSource DisplayName="OrderProxy" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TypeInfo>Marketplace.com.umbraco.orders.OrderProxy, Web References.com.umbraco.orders.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||
</GenericObjectDataSource>
|
||||
@@ -0,0 +1,741 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.34014.
|
||||
//
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace Marketplace.com.umbraco.orders {
|
||||
using System;
|
||||
using System.Web.Services;
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services.Protocols;
|
||||
using System.Xml.Serialization;
|
||||
using System.ComponentModel;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="OrdersSoap", Namespace="http://tempuri.org/")]
|
||||
public partial class Orders : System.Web.Services.Protocols.SoapHttpClientProtocol {
|
||||
|
||||
private System.Threading.SendOrPostCallback CreateOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback GetFromEcommerceIDOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback GetFromTransactionIDOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback LinkProfilesOperationCompleted;
|
||||
|
||||
private bool useDefaultCredentialsSetExplicitly;
|
||||
|
||||
/// <remarks/>
|
||||
public Orders() {
|
||||
this.Url = global::Marketplace.Properties.Settings.Default.Marketplace_com_umbraco_orders_Orders;
|
||||
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
|
||||
this.UseDefaultCredentials = true;
|
||||
this.useDefaultCredentialsSetExplicitly = false;
|
||||
}
|
||||
else {
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Url {
|
||||
get {
|
||||
return base.Url;
|
||||
}
|
||||
set {
|
||||
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
|
||||
&& (this.useDefaultCredentialsSetExplicitly == false))
|
||||
&& (this.IsLocalFileSystemWebService(value) == false))) {
|
||||
base.UseDefaultCredentials = false;
|
||||
}
|
||||
base.Url = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new bool UseDefaultCredentials {
|
||||
get {
|
||||
return base.UseDefaultCredentials;
|
||||
}
|
||||
set {
|
||||
base.UseDefaultCredentials = value;
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public event CreateCompletedEventHandler CreateCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event GetFromEcommerceIDCompletedEventHandler GetFromEcommerceIDCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event GetFromTransactionIDCompletedEventHandler GetFromTransactionIDCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event LinkProfilesCompletedEventHandler LinkProfilesCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Create", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public OrderProxy Create(OrderProxy order, bool testMode, string login, string password) {
|
||||
object[] results = this.Invoke("Create", new object[] {
|
||||
order,
|
||||
testMode,
|
||||
login,
|
||||
password});
|
||||
return ((OrderProxy)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CreateAsync(OrderProxy order, bool testMode, string login, string password) {
|
||||
this.CreateAsync(order, testMode, login, password, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void CreateAsync(OrderProxy order, bool testMode, string login, string password, object userState) {
|
||||
if ((this.CreateOperationCompleted == null)) {
|
||||
this.CreateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("Create", new object[] {
|
||||
order,
|
||||
testMode,
|
||||
login,
|
||||
password}, this.CreateOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnCreateOperationCompleted(object arg) {
|
||||
if ((this.CreateCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.CreateCompleted(this, new CreateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetFromEcommerceID", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public OrderProxy GetFromEcommerceID(int EcommerceOrderID, string login, string password) {
|
||||
object[] results = this.Invoke("GetFromEcommerceID", new object[] {
|
||||
EcommerceOrderID,
|
||||
login,
|
||||
password});
|
||||
return ((OrderProxy)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetFromEcommerceIDAsync(int EcommerceOrderID, string login, string password) {
|
||||
this.GetFromEcommerceIDAsync(EcommerceOrderID, login, password, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetFromEcommerceIDAsync(int EcommerceOrderID, string login, string password, object userState) {
|
||||
if ((this.GetFromEcommerceIDOperationCompleted == null)) {
|
||||
this.GetFromEcommerceIDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFromEcommerceIDOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("GetFromEcommerceID", new object[] {
|
||||
EcommerceOrderID,
|
||||
login,
|
||||
password}, this.GetFromEcommerceIDOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnGetFromEcommerceIDOperationCompleted(object arg) {
|
||||
if ((this.GetFromEcommerceIDCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.GetFromEcommerceIDCompleted(this, new GetFromEcommerceIDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetFromTransactionID", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public OrderProxy GetFromTransactionID(string transaction, string login, string password) {
|
||||
object[] results = this.Invoke("GetFromTransactionID", new object[] {
|
||||
transaction,
|
||||
login,
|
||||
password});
|
||||
return ((OrderProxy)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetFromTransactionIDAsync(string transaction, string login, string password) {
|
||||
this.GetFromTransactionIDAsync(transaction, login, password, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetFromTransactionIDAsync(string transaction, string login, string password, object userState) {
|
||||
if ((this.GetFromTransactionIDOperationCompleted == null)) {
|
||||
this.GetFromTransactionIDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFromTransactionIDOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("GetFromTransactionID", new object[] {
|
||||
transaction,
|
||||
login,
|
||||
password}, this.GetFromTransactionIDOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnGetFromTransactionIDOperationCompleted(object arg) {
|
||||
if ((this.GetFromTransactionIDCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.GetFromTransactionIDCompleted(this, new GetFromTransactionIDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/LinkProfiles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public BuyerProxy LinkProfiles(string profileEmail, string profilePassword, string login, string password) {
|
||||
object[] results = this.Invoke("LinkProfiles", new object[] {
|
||||
profileEmail,
|
||||
profilePassword,
|
||||
login,
|
||||
password});
|
||||
return ((BuyerProxy)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void LinkProfilesAsync(string profileEmail, string profilePassword, string login, string password) {
|
||||
this.LinkProfilesAsync(profileEmail, profilePassword, login, password, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void LinkProfilesAsync(string profileEmail, string profilePassword, string login, string password, object userState) {
|
||||
if ((this.LinkProfilesOperationCompleted == null)) {
|
||||
this.LinkProfilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnLinkProfilesOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("LinkProfiles", new object[] {
|
||||
profileEmail,
|
||||
profilePassword,
|
||||
login,
|
||||
password}, this.LinkProfilesOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnLinkProfilesOperationCompleted(object arg) {
|
||||
if ((this.LinkProfilesCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.LinkProfilesCompleted(this, new LinkProfilesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
}
|
||||
|
||||
private bool IsLocalFileSystemWebService(string url) {
|
||||
if (((url == null)
|
||||
|| (url == string.Empty))) {
|
||||
return false;
|
||||
}
|
||||
System.Uri wsUri = new System.Uri(url);
|
||||
if (((wsUri.Port >= 1024)
|
||||
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.33440")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
|
||||
public partial class OrderProxy {
|
||||
|
||||
private OrderLineProxy[] orderLinesField;
|
||||
|
||||
private System.DateTime createdField;
|
||||
|
||||
private BuyerProxy buyerField;
|
||||
|
||||
private OrderStatus orderStatusField;
|
||||
|
||||
private string invoicePathField;
|
||||
|
||||
private int deliOrderIDField;
|
||||
|
||||
private int ecommerceOrderIDField;
|
||||
|
||||
private string purchaseOrderField;
|
||||
|
||||
private string transactionIDField;
|
||||
|
||||
/// <remarks/>
|
||||
public OrderLineProxy[] OrderLines {
|
||||
get {
|
||||
return this.orderLinesField;
|
||||
}
|
||||
set {
|
||||
this.orderLinesField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.DateTime Created {
|
||||
get {
|
||||
return this.createdField;
|
||||
}
|
||||
set {
|
||||
this.createdField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public BuyerProxy Buyer {
|
||||
get {
|
||||
return this.buyerField;
|
||||
}
|
||||
set {
|
||||
this.buyerField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public OrderStatus OrderStatus {
|
||||
get {
|
||||
return this.orderStatusField;
|
||||
}
|
||||
set {
|
||||
this.orderStatusField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string InvoicePath {
|
||||
get {
|
||||
return this.invoicePathField;
|
||||
}
|
||||
set {
|
||||
this.invoicePathField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int DeliOrderID {
|
||||
get {
|
||||
return this.deliOrderIDField;
|
||||
}
|
||||
set {
|
||||
this.deliOrderIDField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int EcommerceOrderID {
|
||||
get {
|
||||
return this.ecommerceOrderIDField;
|
||||
}
|
||||
set {
|
||||
this.ecommerceOrderIDField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string PurchaseOrder {
|
||||
get {
|
||||
return this.purchaseOrderField;
|
||||
}
|
||||
set {
|
||||
this.purchaseOrderField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string TransactionID {
|
||||
get {
|
||||
return this.transactionIDField;
|
||||
}
|
||||
set {
|
||||
this.transactionIDField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.33440")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
|
||||
public partial class OrderLineProxy {
|
||||
|
||||
private decimal amountField;
|
||||
|
||||
private string descriptionField;
|
||||
|
||||
private int quantityField;
|
||||
|
||||
private System.Guid productIDField;
|
||||
|
||||
private int vendorEconomicIDField;
|
||||
|
||||
/// <remarks/>
|
||||
public decimal Amount {
|
||||
get {
|
||||
return this.amountField;
|
||||
}
|
||||
set {
|
||||
this.amountField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string description {
|
||||
get {
|
||||
return this.descriptionField;
|
||||
}
|
||||
set {
|
||||
this.descriptionField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int Quantity {
|
||||
get {
|
||||
return this.quantityField;
|
||||
}
|
||||
set {
|
||||
this.quantityField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.Guid ProductID {
|
||||
get {
|
||||
return this.productIDField;
|
||||
}
|
||||
set {
|
||||
this.productIDField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int VendorEconomicID {
|
||||
get {
|
||||
return this.vendorEconomicIDField;
|
||||
}
|
||||
set {
|
||||
this.vendorEconomicIDField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.33440")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
|
||||
public partial class BuyerProxy {
|
||||
|
||||
private string nameField;
|
||||
|
||||
private string emailField;
|
||||
|
||||
private string loginField;
|
||||
|
||||
private string companyField;
|
||||
|
||||
private string vATField;
|
||||
|
||||
private bool vatInvalidField;
|
||||
|
||||
private string addressField;
|
||||
|
||||
private string countryField;
|
||||
|
||||
private string phoneField;
|
||||
|
||||
private string ipField;
|
||||
|
||||
private int umbracoComMemberIDField;
|
||||
|
||||
private System.Guid umbracoComMemberGuidField;
|
||||
|
||||
private int ourMemberIdField;
|
||||
|
||||
private System.Guid ourMemberGuidField;
|
||||
|
||||
private string[] groupsField;
|
||||
|
||||
/// <remarks/>
|
||||
public string Name {
|
||||
get {
|
||||
return this.nameField;
|
||||
}
|
||||
set {
|
||||
this.nameField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Email {
|
||||
get {
|
||||
return this.emailField;
|
||||
}
|
||||
set {
|
||||
this.emailField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Login {
|
||||
get {
|
||||
return this.loginField;
|
||||
}
|
||||
set {
|
||||
this.loginField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Company {
|
||||
get {
|
||||
return this.companyField;
|
||||
}
|
||||
set {
|
||||
this.companyField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string VAT {
|
||||
get {
|
||||
return this.vATField;
|
||||
}
|
||||
set {
|
||||
this.vATField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public bool VatInvalid {
|
||||
get {
|
||||
return this.vatInvalidField;
|
||||
}
|
||||
set {
|
||||
this.vatInvalidField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Address {
|
||||
get {
|
||||
return this.addressField;
|
||||
}
|
||||
set {
|
||||
this.addressField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Country {
|
||||
get {
|
||||
return this.countryField;
|
||||
}
|
||||
set {
|
||||
this.countryField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Phone {
|
||||
get {
|
||||
return this.phoneField;
|
||||
}
|
||||
set {
|
||||
this.phoneField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string IP {
|
||||
get {
|
||||
return this.ipField;
|
||||
}
|
||||
set {
|
||||
this.ipField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int umbracoComMemberID {
|
||||
get {
|
||||
return this.umbracoComMemberIDField;
|
||||
}
|
||||
set {
|
||||
this.umbracoComMemberIDField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.Guid umbracoComMemberGuid {
|
||||
get {
|
||||
return this.umbracoComMemberGuidField;
|
||||
}
|
||||
set {
|
||||
this.umbracoComMemberGuidField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int ourMemberId {
|
||||
get {
|
||||
return this.ourMemberIdField;
|
||||
}
|
||||
set {
|
||||
this.ourMemberIdField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.Guid ourMemberGuid {
|
||||
get {
|
||||
return this.ourMemberGuidField;
|
||||
}
|
||||
set {
|
||||
this.ourMemberGuidField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string[] Groups {
|
||||
get {
|
||||
return this.groupsField;
|
||||
}
|
||||
set {
|
||||
this.groupsField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.33440")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
|
||||
public enum OrderStatus {
|
||||
|
||||
/// <remarks/>
|
||||
Accepted,
|
||||
|
||||
/// <remarks/>
|
||||
Refused,
|
||||
|
||||
/// <remarks/>
|
||||
Error,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
public delegate void CreateCompletedEventHandler(object sender, CreateCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class CreateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal CreateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public OrderProxy Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((OrderProxy)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
public delegate void GetFromEcommerceIDCompletedEventHandler(object sender, GetFromEcommerceIDCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetFromEcommerceIDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal GetFromEcommerceIDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public OrderProxy Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((OrderProxy)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
public delegate void GetFromTransactionIDCompletedEventHandler(object sender, GetFromTransactionIDCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetFromTransactionIDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal GetFromTransactionIDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public OrderProxy Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((OrderProxy)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
public delegate void LinkProfilesCompletedEventHandler(object sender, LinkProfilesCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class LinkProfilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal LinkProfilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public BuyerProxy Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((BuyerProxy)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore 1591
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Results>
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://umbraco.com/webservices/orders.asmx?disco" filename="orders.disco" />
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://umbraco.com/webservices/orders.asmx?wsdl" filename="orders.wsdl" />
|
||||
</Results>
|
||||
</DiscoveryClientResultsFile>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
|
||||
<contractRef ref="http://umbraco.com/webservices/orders.asmx?wsdl" docRef="http://umbraco.com/webservices/orders.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
|
||||
<soap address="http://umbraco.com/webservices/orders.asmx" xmlns:q1="http://tempuri.org/" binding="q1:OrdersSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
<soap address="http://umbraco.com/webservices/orders.asmx" xmlns:q2="http://tempuri.org/" binding="q2:OrdersSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
</discovery>
|
||||
@@ -0,0 +1,267 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
|
||||
<s:import namespace="http://microsoft.com/wsdl/types/" />
|
||||
<s:element name="Create">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="order" type="tns:OrderProxy" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="testMode" type="s:boolean" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="login" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="OrderProxy">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="OrderLines" type="tns:ArrayOfOrderLineProxy" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Created" type="s:dateTime" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Buyer" type="tns:BuyerProxy" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="OrderStatus" type="tns:OrderStatus" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="InvoicePath" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="DeliOrderID" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="EcommerceOrderID" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="PurchaseOrder" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="TransactionID" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfOrderLineProxy">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="OrderLineProxy" nillable="true" type="tns:OrderLineProxy" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="OrderLineProxy">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Amount" type="s:decimal" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="description" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Quantity" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="ProductID" type="s1:guid" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="VendorEconomicID" type="s:int" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="BuyerProxy">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Email" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Login" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Company" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="VAT" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="VatInvalid" type="s:boolean" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Address" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Country" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Phone" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="IP" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="umbracoComMemberID" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="umbracoComMemberGuid" type="s1:guid" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="ourMemberId" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="ourMemberGuid" type="s1:guid" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Groups" type="tns:ArrayOfString" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfString">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:simpleType name="OrderStatus">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="Accepted" />
|
||||
<s:enumeration value="Refused" />
|
||||
<s:enumeration value="Error" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:element name="CreateResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="CreateResult" type="tns:OrderProxy" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetFromEcommerceID">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="EcommerceOrderID" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="login" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetFromEcommerceIDResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetFromEcommerceIDResult" type="tns:OrderProxy" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetFromTransactionID">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="transaction" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="login" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetFromTransactionIDResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetFromTransactionIDResult" type="tns:OrderProxy" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="LinkProfiles">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="profileEmail" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="profilePassword" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="login" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="LinkProfilesResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="LinkProfilesResult" type="tns:BuyerProxy" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
|
||||
<s:simpleType name="guid">
|
||||
<s:restriction base="s:string">
|
||||
<s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="CreateSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:Create" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CreateSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:CreateResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetFromEcommerceIDSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetFromEcommerceID" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetFromEcommerceIDSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetFromEcommerceIDResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetFromTransactionIDSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetFromTransactionID" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetFromTransactionIDSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetFromTransactionIDResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="LinkProfilesSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:LinkProfiles" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="LinkProfilesSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:LinkProfilesResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="OrdersSoap">
|
||||
<wsdl:operation name="Create">
|
||||
<wsdl:input message="tns:CreateSoapIn" />
|
||||
<wsdl:output message="tns:CreateSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetFromEcommerceID">
|
||||
<wsdl:input message="tns:GetFromEcommerceIDSoapIn" />
|
||||
<wsdl:output message="tns:GetFromEcommerceIDSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetFromTransactionID">
|
||||
<wsdl:input message="tns:GetFromTransactionIDSoapIn" />
|
||||
<wsdl:output message="tns:GetFromTransactionIDSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="LinkProfiles">
|
||||
<wsdl:input message="tns:LinkProfilesSoapIn" />
|
||||
<wsdl:output message="tns:LinkProfilesSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="OrdersSoap" type="tns:OrdersSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="Create">
|
||||
<soap:operation soapAction="http://tempuri.org/Create" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetFromEcommerceID">
|
||||
<soap:operation soapAction="http://tempuri.org/GetFromEcommerceID" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetFromTransactionID">
|
||||
<soap:operation soapAction="http://tempuri.org/GetFromTransactionID" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="LinkProfiles">
|
||||
<soap:operation soapAction="http://tempuri.org/LinkProfiles" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="OrdersSoap12" type="tns:OrdersSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="Create">
|
||||
<soap12:operation soapAction="http://tempuri.org/Create" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetFromEcommerceID">
|
||||
<soap12:operation soapAction="http://tempuri.org/GetFromEcommerceID" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetFromTransactionID">
|
||||
<soap12:operation soapAction="http://tempuri.org/GetFromTransactionID" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="LinkProfiles">
|
||||
<soap12:operation soapAction="http://tempuri.org/LinkProfiles" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="Orders">
|
||||
<wsdl:port name="OrdersSoap" binding="tns:OrdersSoap">
|
||||
<soap:address location="http://umbraco.com/webservices/orders.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="OrdersSoap12" binding="tns:OrdersSoap12">
|
||||
<soap12:address location="http://umbraco.com/webservices/orders.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file is automatically generated by Visual Studio .Net. It is
|
||||
used to store generic object data source configuration information.
|
||||
Renaming the file extension or editing the content of this file may
|
||||
cause the file to be unrecognizable by the program.
|
||||
-->
|
||||
<GenericObjectDataSource DisplayName="MemberData" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TypeInfo>Marketplace.com.umbraco.MemberData, Web References.com.umbraco.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||
</GenericObjectDataSource>
|
||||
@@ -0,0 +1,257 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.34014.
|
||||
//
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace Marketplace.com.umbraco {
|
||||
using System;
|
||||
using System.Web.Services;
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services.Protocols;
|
||||
using System.Xml.Serialization;
|
||||
using System.ComponentModel;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="MemberLookUpSoap", Namespace="http://tempuri.org/")]
|
||||
public partial class MemberLookUp : System.Web.Services.Protocols.SoapHttpClientProtocol {
|
||||
|
||||
private System.Threading.SendOrPostCallback GetMemberDataOperationCompleted;
|
||||
|
||||
private bool useDefaultCredentialsSetExplicitly;
|
||||
|
||||
/// <remarks/>
|
||||
public MemberLookUp() {
|
||||
this.Url = global::Marketplace.Properties.Settings.Default.Marketplace_com_umbraco_MemberLookUp;
|
||||
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
|
||||
this.UseDefaultCredentials = true;
|
||||
this.useDefaultCredentialsSetExplicitly = false;
|
||||
}
|
||||
else {
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Url {
|
||||
get {
|
||||
return base.Url;
|
||||
}
|
||||
set {
|
||||
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
|
||||
&& (this.useDefaultCredentialsSetExplicitly == false))
|
||||
&& (this.IsLocalFileSystemWebService(value) == false))) {
|
||||
base.UseDefaultCredentials = false;
|
||||
}
|
||||
base.Url = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new bool UseDefaultCredentials {
|
||||
get {
|
||||
return base.UseDefaultCredentials;
|
||||
}
|
||||
set {
|
||||
base.UseDefaultCredentials = value;
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public event GetMemberDataCompletedEventHandler GetMemberDataCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetMemberData", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public MemberData GetMemberData(string username, string password) {
|
||||
object[] results = this.Invoke("GetMemberData", new object[] {
|
||||
username,
|
||||
password});
|
||||
return ((MemberData)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetMemberDataAsync(string username, string password) {
|
||||
this.GetMemberDataAsync(username, password, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetMemberDataAsync(string username, string password, object userState) {
|
||||
if ((this.GetMemberDataOperationCompleted == null)) {
|
||||
this.GetMemberDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMemberDataOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("GetMemberData", new object[] {
|
||||
username,
|
||||
password}, this.GetMemberDataOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnGetMemberDataOperationCompleted(object arg) {
|
||||
if ((this.GetMemberDataCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.GetMemberDataCompleted(this, new GetMemberDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
}
|
||||
|
||||
private bool IsLocalFileSystemWebService(string url) {
|
||||
if (((url == null)
|
||||
|| (url == string.Empty))) {
|
||||
return false;
|
||||
}
|
||||
System.Uri wsUri = new System.Uri(url);
|
||||
if (((wsUri.Port >= 1024)
|
||||
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.33440")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
|
||||
public partial class MemberData {
|
||||
|
||||
private int idField;
|
||||
|
||||
private string[] memberGroupsField;
|
||||
|
||||
private string companyField;
|
||||
|
||||
private string addressField;
|
||||
|
||||
private string countryField;
|
||||
|
||||
private string phoneField;
|
||||
|
||||
private string vATNumberField;
|
||||
|
||||
private string invoicingEmailField;
|
||||
|
||||
/// <remarks/>
|
||||
public int Id {
|
||||
get {
|
||||
return this.idField;
|
||||
}
|
||||
set {
|
||||
this.idField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string[] MemberGroups {
|
||||
get {
|
||||
return this.memberGroupsField;
|
||||
}
|
||||
set {
|
||||
this.memberGroupsField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Company {
|
||||
get {
|
||||
return this.companyField;
|
||||
}
|
||||
set {
|
||||
this.companyField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Address {
|
||||
get {
|
||||
return this.addressField;
|
||||
}
|
||||
set {
|
||||
this.addressField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Country {
|
||||
get {
|
||||
return this.countryField;
|
||||
}
|
||||
set {
|
||||
this.countryField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Phone {
|
||||
get {
|
||||
return this.phoneField;
|
||||
}
|
||||
set {
|
||||
this.phoneField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string VATNumber {
|
||||
get {
|
||||
return this.vATNumberField;
|
||||
}
|
||||
set {
|
||||
this.vATNumberField = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string InvoicingEmail {
|
||||
get {
|
||||
return this.invoicingEmailField;
|
||||
}
|
||||
set {
|
||||
this.invoicingEmailField = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
public delegate void GetMemberDataCompletedEventHandler(object sender, GetMemberDataCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetMemberDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal GetMemberDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public MemberData Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((MemberData)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore 1591
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Results>
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx?disco" filename="memberlookup.disco" />
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx?wsdl" filename="memberlookup.wsdl" />
|
||||
</Results>
|
||||
</DiscoveryClientResultsFile>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
|
||||
<contractRef ref="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx?wsdl" docRef="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
|
||||
<soap address="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx" xmlns:q1="http://tempuri.org/" binding="q1:MemberLookUpSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
<soap address="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx" xmlns:q2="http://tempuri.org/" binding="q2:MemberLookUpSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
</discovery>
|
||||
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
|
||||
<s:element name="GetMemberData">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetMemberDataResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetMemberDataResult" type="tns:MemberData" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="MemberData">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="MemberGroups" type="tns:ArrayOfString" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Company" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Address" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Country" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Phone" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="VATNumber" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="InvoicingEmail" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfString">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="GetMemberDataSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetMemberData" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetMemberDataSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetMemberDataResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="MemberLookUpSoap">
|
||||
<wsdl:operation name="GetMemberData">
|
||||
<wsdl:input message="tns:GetMemberDataSoapIn" />
|
||||
<wsdl:output message="tns:GetMemberDataSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="MemberLookUpSoap" type="tns:MemberLookUpSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="GetMemberData">
|
||||
<soap:operation soapAction="http://tempuri.org/GetMemberData" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="MemberLookUpSoap12" type="tns:MemberLookUpSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="GetMemberData">
|
||||
<soap12:operation soapAction="http://tempuri.org/GetMemberData" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="MemberLookUp">
|
||||
<wsdl:port name="MemberLookUpSoap" binding="tns:MemberLookUpSoap">
|
||||
<soap:address location="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="MemberLookUpSoap12" binding="tns:MemberLookUpSoap12">
|
||||
<soap12:address location="http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||
|
||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
<!--
|
||||
In the example below, the "SetAttributes" transform will change the value of
|
||||
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||
finds an atrribute "name" that has a value of "MyDB".
|
||||
|
||||
<connectionStrings>
|
||||
<add name="MyDB"
|
||||
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||
</connectionStrings>
|
||||
-->
|
||||
<system.web>
|
||||
<!--
|
||||
In the example below, the "Replace" transform will replace the entire
|
||||
<customErrors> section of your web.config file.
|
||||
Note that because there is only one customErrors section under the
|
||||
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||
|
||||
<customErrors defaultRedirect="GenericError.htm"
|
||||
mode="RemoteOnly" xdt:Transform="Replace">
|
||||
<error statusCode="500" redirect="InternalError.htm"/>
|
||||
</customErrors>
|
||||
-->
|
||||
</system.web>
|
||||
</configuration>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||
|
||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
<!--
|
||||
In the example below, the "SetAttributes" transform will change the value of
|
||||
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||
finds an atrribute "name" that has a value of "MyDB".
|
||||
|
||||
<connectionStrings>
|
||||
<add name="MyDB"
|
||||
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||
</connectionStrings>
|
||||
-->
|
||||
<system.web>
|
||||
<compilation xdt:Transform="RemoveAttributes(debug)" />
|
||||
<!--
|
||||
In the example below, the "Replace" transform will replace the entire
|
||||
<customErrors> section of your web.config file.
|
||||
Note that because there is only one customErrors section under the
|
||||
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||
|
||||
<customErrors defaultRedirect="GenericError.htm"
|
||||
mode="RemoteOnly" xdt:Transform="Replace">
|
||||
<error statusCode="500" redirect="InternalError.htm"/>
|
||||
</customErrors>
|
||||
-->
|
||||
</system.web>
|
||||
</configuration>
|
||||
@@ -0,0 +1,312 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="Marketplace.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
<section name="umbraco.presentation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
<!-- Added in Umbraco 4.6.2 -->
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
<section name="MarketplaceProviders" type="Marketplace.Providers.MarketplaceProviderConfiguration, Marketplace.Providers" />
|
||||
<!-- End of added in Umbraco 4.6.2 -->
|
||||
<section name="clientDependency" type="ClientDependency.Core.Config.ClientDependencySection, ClientDependency.Core" requirePermission="false" /></configSections>
|
||||
<appSettings>
|
||||
<add key="umbracoDbDSN" value="server=.\sqlexpress;database=our;user id=sa;password=password!" />
|
||||
<add key="umbracoConfigurationStatus" value="4.7.0" />
|
||||
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx" />
|
||||
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/communityLogoGenerator" />
|
||||
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />
|
||||
<add key="umbracoStorageDirectory" value="~/App_Data" />
|
||||
<add key="umbracoPath" value="~/umbraco" />
|
||||
<add key="umbracoEnableStat" value="false" />
|
||||
<add key="umbracoHideTopLevelNodeFromPath" value="true" />
|
||||
<add key="umbracoEditXhtmlMode" value="true" />
|
||||
<add key="umbracoUseDirectoryUrls" value="true" />
|
||||
<add key="umbracoDebugMode" value="true" />
|
||||
<add key="umbracoTimeOutInMinutes" value="20" />
|
||||
<add key="umbracoVersionCheckPeriod" value="7" />
|
||||
<add key="umbracoDisableXsltExtensions" value="true" />
|
||||
<add key="umbracoDefaultUILanguage" value="en" />
|
||||
<add key="umbracoProfileUrl" value="member" />
|
||||
<add key="umbracoUseSSL" value="false" />
|
||||
<add key="umbracoUseMediumTrust" value="false" />
|
||||
<!--
|
||||
Set this to true to enable storing the xml cache locally to the IIS server even if the app files are stored centrally on a SAN/NAS
|
||||
Alex Norcliffe 2010 02 for 4.1 -->
|
||||
<add key="umbracoContentXMLUseLocalTemp" value="false" />
|
||||
<!-- Added in Umbraco 4.6.2 -->
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
<add key="enableSimpleMembership" value="false" />
|
||||
<add key="autoFormsAuthentication" value="false" />
|
||||
<!-- End of added in Umbraco 4.6.2 -->
|
||||
<!-- Deli settings -->
|
||||
<add key="deliProjectRoot" value="1113" />
|
||||
<add key="deliWebServiceUser" value="Deli" />
|
||||
<add key="deliWebServicePass" value="DeliDeliDeli" />
|
||||
<add key="deliPayPalTest" value="true" />
|
||||
<add key="deliCartRoot" value="1113" />
|
||||
<add key="deliPayPalReturnUrl" value="1113" />
|
||||
<add key="deli_VAT" value="0.25" />
|
||||
<!-- End Deli settings -->
|
||||
</appSettings>
|
||||
<system.net>
|
||||
<mailSettings>
|
||||
<smtp>
|
||||
<network host="mx01.fab-it.dk" />
|
||||
</smtp>
|
||||
</mailSettings>
|
||||
</system.net>
|
||||
<!-- REMOVE FOR BETA -->
|
||||
<!-- added by NH to test foreign membership providers-->
|
||||
<connectionStrings>
|
||||
<remove name="LocalSqlServer" />
|
||||
<add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=C:\USERS\HARTVIG\DOCUMENTS\VISUAL STUDIO 2005\WEBSITES\AJAXENABLEDWEBSITE2\APP_DATA\ASPNETDB.MDF;Integrated Security=True" providerName="System.Data.SqlClient" />
|
||||
<add name="Marketplace.Data.Properties.Settings.ourConnectionString" connectionString="Data Source=PETER-MAC-PC\SQLEXPRESS;Initial Catalog=our;Persist Security Info=True;User ID=sa;Password=password!" providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
<MarketplaceProviders default="ListingProvider">
|
||||
<providers>
|
||||
<add name="ListingProvider" type="Marketplace.Providers.Listing.NodeListingProvider, Marketplace.Providers" />
|
||||
<add name="VendorProvider" type="Marketplace.Providers.Vendor.MemberVendorProvider, Marketplace.Providers" />
|
||||
<add name="MediaProvider" type="Marketplace.Providers.MediaFile.UWikiMediaProvider, Marketplace.Providers" />
|
||||
<add name="TagProvider" type="Marketplace.Providers.Tags.UmbracoProjectTagProvider, Marketplace.Providers" />
|
||||
<add name="CategoryProvider" type="Marketplace.Providers.Category.UmbracoCategoryProvider, Marketplace.Providers" />
|
||||
<add name="LicenseProvider" type="Marketplace.Providers.License.LicenseProvider, Marketplace.Providers" />
|
||||
<add name="CartProvider" type="Marketplace.Providers.Cart.UmbracoEcommerceCartProvider, Marketplace.Providers" />
|
||||
<add name="OrderProvider" type="Marketplace.Providers.Orders.UmbracoEcommerceOrderProvider, Marketplace.Providers" />
|
||||
<add name="MemberProvider" type="Marketplace.Providers.Members.DeliMemberProvider, Marketplace.Providers" />
|
||||
<add name="memberLicenseProvider" type="Marketplace.Providers.MemberLicense.MemberLicenseProvider, Marketplace.Providers" />
|
||||
<add name="OrderItemProvider" type="Marketplace.Providers.OrderItem.DeliOrderItemProvider, Marketplace.Providers" />
|
||||
<add name="OrderNoteProvider" type="Marketplace.Providers.OrderNote.OrderNoteProvider, Marketplace.Providers" />
|
||||
<add name="PaymentInfoProvider" type="Marketplace.Providers.PaymentInfo.UmbracoEcommercePaymentInfoProvider, Marketplace.Providers" />
|
||||
<add name="PayoutProvider" type="Marketplace.Providers.Payout.PayoutProvider, Marketplace.Providers" />
|
||||
</providers>
|
||||
</MarketplaceProviders>
|
||||
<!--
|
||||
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
|
||||
|
||||
The following attributes can be set on the <httpRuntime> tag.
|
||||
<system.Web>
|
||||
<httpRuntime targetFramework="4.5.1" />
|
||||
</system.Web>
|
||||
-->
|
||||
<system.web>
|
||||
<httpRuntime requestValidationMode="2.0" />
|
||||
<!-- <trust level="Medium" originUrl=".*" />-->
|
||||
<customErrors mode="Off" />
|
||||
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
|
||||
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
|
||||
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
|
||||
<xhtmlConformance mode="Strict" />
|
||||
<pages enableEventValidation="false" controlRenderingCompatibilityVersion="4.0">
|
||||
<!-- ASPNETAJAX -->
|
||||
<controls>
|
||||
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add tagPrefix="umbraco" namespace="umbraco.presentation.templateControls" assembly="umbraco" />
|
||||
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
</controls>
|
||||
<namespaces>
|
||||
<add namespace="ClientDependency.Core" />
|
||||
<add namespace="ClientDependency.Core.Mvc" /></namespaces></pages>
|
||||
<httpModules>
|
||||
<!-- URL REWRTIER -->
|
||||
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
|
||||
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
|
||||
<!-- UMBRACO -->
|
||||
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule" />
|
||||
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule" />
|
||||
<!-- ASPNETAJAX -->
|
||||
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<!-- CLIENT DEPENDENCY -->
|
||||
<!-- ** Need to add the dependency module --><add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" /></httpModules>
|
||||
<httpHandlers>
|
||||
<remove verb="*" path="*.asmx" />
|
||||
<!-- ASPNETAJAX -->
|
||||
<add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
|
||||
<add verb="*" path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
|
||||
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
|
||||
<!-- UMBRACO CHANNELS -->
|
||||
<add verb="*" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
|
||||
<add verb="*" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
|
||||
<!-- ** Need to add the dependency handler --><add verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
|
||||
<add verb="GET,HEAD,POST" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
|
||||
<add verb="GET" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " /></httpHandlers>
|
||||
<compilation defaultLanguage="c#" debug="true" batch="false" targetFramework="4.5.1">
|
||||
<assemblies>
|
||||
<!-- ASP.NET 4.0 Assemblies -->
|
||||
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
|
||||
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
</assemblies>
|
||||
<!-- Added in Umbraco 4.6.2 -->
|
||||
<buildProviders>
|
||||
<add extension=".cshtml" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" />
|
||||
<add extension=".vbhtml" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" />
|
||||
<add extension=".razor" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" />
|
||||
</buildProviders>
|
||||
<!-- End of added in Umbraco 4.6.2 -->
|
||||
</compilation>
|
||||
<authentication mode="Forms">
|
||||
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
|
||||
</authentication>
|
||||
<authorization>
|
||||
<allow users="?" />
|
||||
</authorization>
|
||||
<!-- Membership Provider -->
|
||||
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Another Type" passwordFormat="Hashed" />
|
||||
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" />
|
||||
</providers>
|
||||
</membership>
|
||||
<!-- added by NH to support membership providers in access layer -->
|
||||
<roleManager enabled="true" defaultProvider="UmbracoRoleProvider">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoRoleProvider" type="umbraco.providers.members.UmbracoRoleProvider" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
<!-- Sitemap provider-->
|
||||
<siteMap defaultProvider="UmbracoSiteMapProvider" enabled="true">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoSiteMapProvider" type="umbraco.presentation.nodeFactory.UmbracoSiteMapProvider" defaultDescriptionAlias="description" securityTrimmingEnabled="true" />
|
||||
</providers>
|
||||
</siteMap>
|
||||
</system.web>
|
||||
<!-- ASPNETAJAX -->
|
||||
<system.web.extensions>
|
||||
<scripting>
|
||||
<scriptResourceHandler enableCompression="true" enableCaching="true" />
|
||||
<webServices>
|
||||
<jsonSerialization maxJsonLength="500000" />
|
||||
</webServices>
|
||||
</scripting>
|
||||
</system.web.extensions>
|
||||
<applicationSettings>
|
||||
<Marketplace.Properties.Settings>
|
||||
<setting name="Marketplace_com_umbraco_MemberLookUp" serializeAs="String">
|
||||
<value>http://umbraco.com/umbraco/plugins/memberlookup/memberlookup.asmx</value>
|
||||
</setting>
|
||||
<setting name="Marketplace_com_umbraco_orders_Orders" serializeAs="String">
|
||||
<value>http://umbraco.com/webservices/orders.asmx</value>
|
||||
</setting>
|
||||
</Marketplace.Properties.Settings>
|
||||
<umbraco.presentation.Properties.Settings>
|
||||
<setting name="umbraco_com_regexlib_Webservices" serializeAs="String">
|
||||
<value>http://regexlib.com/WebServices.asmx</value>
|
||||
</setting>
|
||||
</umbraco.presentation.Properties.Settings>
|
||||
</applicationSettings>
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
<modules runAllManagedModulesForAllRequests="true">
|
||||
<remove name="ScriptModule" />
|
||||
<remove name="UrlRewriteModule" />
|
||||
<remove name="umbracoRequestModule" />
|
||||
<remove name="viewstateMoverModule" />
|
||||
<remove name="umbracoBaseRequestModule" />
|
||||
<remove name="ClientDependencyModule" />
|
||||
<!-- Needed for login/membership to work on homepage (as per http://stackoverflow.com/questions/218057/httpcontext-current-session-is-null-when-routing-requests) -->
|
||||
<remove name="FormsAuthentication" />
|
||||
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
|
||||
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
|
||||
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule" />
|
||||
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule" />
|
||||
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<!-- ** Need to add the dependency module --><add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
<!-- Needed for login/membership to work on homepage (as per http://stackoverflow.com/questions/218057/httpcontext-current-session-is-null-when-routing-requests) -->
|
||||
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
|
||||
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" /></modules>
|
||||
<handlers accessPolicy="Read, Write, Script, Execute">
|
||||
<!-- ** Need to add the dependency handler --><remove name="WebServiceHandlerFactory-Integrated" />
|
||||
<remove name="ScriptHandlerFactory" />
|
||||
<remove name="ScriptHandlerFactoryAppServices" />
|
||||
<remove name="ScriptResource" />
|
||||
<remove name="Channels" />
|
||||
<remove name="Channels_Word" />
|
||||
<remove name="ClientDependency" />
|
||||
<remove name="SpellChecker" />
|
||||
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="*" name="Channels" preCondition="integratedMode" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
|
||||
<add verb="*" name="Channels_Word" preCondition="integratedMode" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
|
||||
<add verb="*" name="ClientDependency" preCondition="integratedMode" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
|
||||
<add verb="GET,HEAD,POST" preCondition="integratedMode" name="SpellChecker" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
|
||||
<!-- Wiki upload handler -->
|
||||
<add verb="*" name="wiki_upload" path="umbraco/wiki/upload.aspx" type="uWiki.WikiFileUploadHandler, uWiki" />
|
||||
<!-- project upload handler -->
|
||||
<add verb="*" name="project_upload" path="umbraco/project/upload.aspx" type="Marketplace.ProjectFileUploadHandler, Marketplace" />
|
||||
<!-- default member avatar -->
|
||||
<add verb="*" name="default_avatar" path="media/avatar/*.jpg" type="our.DefaultMemberAvatarHandler, our.umbraco.org" />
|
||||
<!-- deli PayPal IPN handlers -->
|
||||
<add verb="*" name="ipn_dev" path="umbraco/ipn/dev.aspx" type=" Marketplace.HttpHandlers.PayPalIPNHandlerTEST, Marketplace" />
|
||||
<!-- deli PayPal IPN handlers
|
||||
<add verb="*" name="ipn_production" path="umbraco/ipn/production.aspx" type=" Umbraco.Shop.HttpHandlers.IpnProduction, Marketplace" />
|
||||
-->
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /><remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /><remove name="ExtensionlessUrlHandler-Integrated-4.0" /><add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /><add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /><add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /><remove name="DependencyHandler" /><add name="DependencyHandler" preCondition="integratedMode" verb="GET" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " /></handlers>
|
||||
<httpProtocol>
|
||||
<customHeaders>
|
||||
<add name="P3P" value="policyref="http://our.umbraco.org/w3c/p3p.xml"" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
<urlCompression doDynamicCompression="true" />
|
||||
</system.webServer>
|
||||
<runtime>
|
||||
<!-- Old asp.net ajax assembly bindings -->
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<!-- Added in Umbraco 4.6.2 -->
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="umbraco.MacroEngines.RazorUmbracoFactory, umbraco.MacroEngines" />
|
||||
<pages pageBaseType="umbraco.MacroEngines.DynamicNodeContext">
|
||||
<namespaces>
|
||||
<add namespace="Microsoft.Web.Helpers" />
|
||||
<add namespace="umbraco" />
|
||||
<add namespace="Examine" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
<!-- End of added in Umbraco 4.6.2 -->
|
||||
<clientDependency version="1">
|
||||
<!-- Full config documentation is here: https://github.com/Shandem/ClientDependency/wiki/Configuration -->
|
||||
</clientDependency></configuration>
|
||||
@@ -0,0 +1,16 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="setalllive.aspx.cs" Inherits="Marketplace.adhoc.setalllive" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
|
||||
namespace Marketplace.adhoc
|
||||
{
|
||||
public partial class setalllive : System.Web.UI.Page
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
|
||||
var projectsProvider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
|
||||
var projects = projectsProvider.GetAllListings(true, true).ToList();
|
||||
var count = 0;
|
||||
var liveCount = 0;
|
||||
|
||||
var user = new umbraco.BusinessLogic.User(0);
|
||||
foreach (var p in projects)
|
||||
{
|
||||
|
||||
if (!p.Live)
|
||||
{
|
||||
|
||||
count++;
|
||||
Document d = new Document(p.Id);
|
||||
d.getProperty("projectLive").Value = "1";
|
||||
d.Publish(user);
|
||||
umbraco.library.UpdateDocumentCache(d.Id);
|
||||
Response.Write(d.Text + "+++++++:" + d.getProperty("projectLive").Value + "<br/>");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Response.Write(count + " projects updated to be live of " + projects.Count() + "<br/>");
|
||||
Response.Write(liveCount + " are already live");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.adhoc
|
||||
{
|
||||
|
||||
|
||||
public partial class setalllive
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using umbraco;
|
||||
using our;
|
||||
using System.Text.RegularExpressions;
|
||||
using umbraco.NodeFactory;
|
||||
using System.Globalization;
|
||||
using Marketplace.Data;
|
||||
|
||||
namespace Marketplace
|
||||
{
|
||||
[XsltExtension("deli.library")]
|
||||
public class library
|
||||
{
|
||||
|
||||
public static bool HasVendorAccess(int pageId)
|
||||
{
|
||||
var page = new umbraco.NodeFactory.Node(pageId);
|
||||
|
||||
if (page.GetProperty("vendorOnly") != null)
|
||||
{
|
||||
var memberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
var member = memberProvider.GetCurrentMember();
|
||||
|
||||
var vendorOnly = page.GetProperty("vendorOnly").Value == "1" ? true : false;
|
||||
if (vendorOnly)
|
||||
{
|
||||
if (member.IsDeliVendor)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public static string ShortenText(string text)
|
||||
{
|
||||
text = Utills.StripHTML(text).Replace(" ", "");
|
||||
if (text.Length > 210)
|
||||
{
|
||||
|
||||
text = text.Substring(0, 210);
|
||||
text = text.Substring(0, text.LastIndexOf(' '));
|
||||
}
|
||||
|
||||
text = Regex.Replace(text, @"[^a-zA-Z0-9\s.?!&;]", ""); //strip all crap from the listing such as ======================================= !!!!
|
||||
return text.Trim();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static string GetTagsAsCSV(IEnumerable<IProjectTag> tagList)
|
||||
{
|
||||
var tags = string.Empty;
|
||||
int counter = 0;
|
||||
|
||||
foreach (var t in tagList)
|
||||
{
|
||||
tags += t.Text + ", ";
|
||||
counter++;
|
||||
|
||||
if (counter > 3)
|
||||
break;
|
||||
}
|
||||
|
||||
if (tags.Length > 0)
|
||||
{
|
||||
tags = tags.Substring(0, tags.Length - 2);
|
||||
}
|
||||
return tags;
|
||||
}
|
||||
|
||||
public static string GetCategoryName(int projectId)
|
||||
{
|
||||
var node = new Node(projectId);
|
||||
return node.Parent.Name;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static string GetDefaultScreenshot(string prop)
|
||||
{
|
||||
return !String.IsNullOrEmpty(prop) ? "/umbraco/imagegen.ashx?image=" + prop + "&pad=true&width=50&height=50;" : "/css/img/package2.png";
|
||||
}
|
||||
|
||||
public static string GetManufacturerName(IVendor vendor)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(vendor.VendorCompanyName))
|
||||
{
|
||||
return vendor.VendorCompanyName;
|
||||
}
|
||||
else
|
||||
{
|
||||
return vendor.Member.Name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static string GetCountry(string code)
|
||||
{
|
||||
|
||||
|
||||
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
|
||||
{
|
||||
|
||||
RegionInfo ri = new RegionInfo(ci.LCID);
|
||||
if (ri.TwoLetterISORegionName.ToLowerInvariant() == code)
|
||||
return ri.EnglishName;
|
||||
}
|
||||
|
||||
return "";
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Check to see if member has reported on compatibility for a package regardless of version of the package
|
||||
/// </summary>
|
||||
/// <param name="memberId">The members Id</param>
|
||||
/// <param name="packageId">The package Id</param>
|
||||
/// <returns></returns>
|
||||
public static bool HasDownloaded(int memberId, int packageId)
|
||||
{
|
||||
using (var ctx = new MarketplaceDataContext())
|
||||
{
|
||||
var downs = ctx.projectDownloads.Where(x => x.memberId == memberId && x.projectId == packageId);
|
||||
if (downs.Count() > 0)
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency" version="1.7.1.2" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc" version="1.7.0.4" targetFramework="net451" />
|
||||
<package id="Examine" version="0.1.57.2941" targetFramework="net451" />
|
||||
<package id="HtmlAgilityPack" version="1.4.6" targetFramework="net451" />
|
||||
<package id="ImageProcessor" version="1.9.5.0" targetFramework="net451" />
|
||||
<package id="ImageProcessor.Web" version="3.3.0.0" targetFramework="net451" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="1.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi" version="4.0.30506.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Client" version="4.0.30506.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Core" version="4.0.30506.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.30506.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net451" />
|
||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
|
||||
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
|
||||
<package id="MySql.Data" version="6.6.5" targetFramework="net451" />
|
||||
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net451" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
|
||||
<package id="UmbracoCms.Core" version="7.1.6" targetFramework="net451" />
|
||||
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
|
||||
</packages>
|
||||
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using System.Web.Caching;
|
||||
using umbraco.BusinessLogic;
|
||||
|
||||
namespace Marketplace.uVersion
|
||||
{
|
||||
public class config
|
||||
{
|
||||
|
||||
public static XmlDocument _Settings
|
||||
{
|
||||
get
|
||||
{
|
||||
XmlDocument us = (XmlDocument)HttpRuntime.Cache["uVersionSettingsFile"];
|
||||
if (us == null)
|
||||
us = ensureSettingsDocument();
|
||||
return us;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _path = umbraco.GlobalSettings.FullpathToRoot + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar;
|
||||
private static string _filename = "uVersion.config";
|
||||
private static XmlDocument ensureSettingsDocument()
|
||||
{
|
||||
object settingsFile = HttpRuntime.Cache["uVersionSettingsFile"];
|
||||
|
||||
// Check for language file in cache
|
||||
if (settingsFile == null)
|
||||
{
|
||||
XmlDocument temp = new XmlDocument();
|
||||
XmlTextReader settingsReader = new XmlTextReader(_path + _filename);
|
||||
try
|
||||
{
|
||||
temp.Load(settingsReader);
|
||||
HttpRuntime.Cache.Insert("uVersionSettingsFile", temp, new CacheDependency(_path + _filename));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Add(LogTypes.Error, new User(0), -1, "Error reading uVersion setting file: " + e.ToString());
|
||||
}
|
||||
settingsReader.Close();
|
||||
return temp;
|
||||
}
|
||||
else
|
||||
return (XmlDocument)settingsFile;
|
||||
}
|
||||
|
||||
private static void save()
|
||||
{
|
||||
_Settings.Save(_path + _filename);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selects a xml node in the umbraco settings config file.
|
||||
/// </summary>
|
||||
/// <param name="Key">The xpath query to the specific node.</param>
|
||||
/// <returns>If found, it returns the specific configuration xml node.</returns>
|
||||
public static XmlNode GetKeyAsNode(string Key)
|
||||
{
|
||||
if (Key == null)
|
||||
throw new ArgumentException("Key cannot be null");
|
||||
ensureSettingsDocument();
|
||||
if (_Settings == null || _Settings.DocumentElement == null)
|
||||
return null;
|
||||
return _Settings.DocumentElement.SelectSingleNode(Key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the value of configuration xml node with the specified key.
|
||||
/// </summary>
|
||||
/// <param name="Key">The key.</param>
|
||||
/// <returns></returns>
|
||||
public static string GetKey(string Key)
|
||||
{
|
||||
ensureSettingsDocument();
|
||||
|
||||
XmlNode node = _Settings.DocumentElement.SelectSingleNode(Key);
|
||||
if (node == null || node.FirstChild == null || node.FirstChild.Value == null)
|
||||
return string.Empty;
|
||||
return node.FirstChild.Value;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Xml;
|
||||
|
||||
namespace Marketplace.uVersion
|
||||
{
|
||||
public class UVersion
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Description { get; set; }
|
||||
public bool Exists { get; set; }
|
||||
|
||||
|
||||
public UVersion(string name)
|
||||
{
|
||||
XmlNode x = config.GetKeyAsNode("/configuration/versions/version [@voteName = '" + name + "']");
|
||||
if (x != null) {
|
||||
Name = x.Attributes.GetNamedItem("voteName").Value;
|
||||
Description = x.Attributes.GetNamedItem("voteDescription").Value;
|
||||
|
||||
|
||||
|
||||
Exists = true;
|
||||
} else
|
||||
Exists = false;
|
||||
}
|
||||
|
||||
public static List<UVersion> GetAllVersions() {
|
||||
XmlNode x = config.GetKeyAsNode("/configuration/versions");
|
||||
var l = new List<UVersion>();
|
||||
foreach (XmlNode cx in x.ChildNodes) {
|
||||
if (cx.Attributes != null && cx.Attributes.GetNamedItem("vote") != null && cx.Attributes.GetNamedItem("vote").Value == "true")
|
||||
if (cx.Attributes.GetNamedItem("voteName") != null)
|
||||
l.Add(new UVersion(cx.Attributes.GetNamedItem("voteName").Value));
|
||||
}
|
||||
|
||||
return l;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrderReview.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Admin.OrderReview" %>
|
||||
<h2>Deli Orders</h2>
|
||||
<p>Select Date Range
|
||||
<asp:DropDownList ID="DateRangeDdl" runat="server">
|
||||
<asp:ListItem Value="1">1 Day</asp:ListItem>
|
||||
<asp:ListItem Value="3">3 Days</asp:ListItem>
|
||||
<asp:ListItem Value="7" Selected="True">7 Days</asp:ListItem>
|
||||
<asp:ListItem Value="14">14 Days</asp:ListItem>
|
||||
<asp:ListItem Value="30">30 Days</asp:ListItem>
|
||||
<asp:ListItem Value="60">60 Days</asp:ListItem>
|
||||
<asp:ListItem Value="90">90 Days</asp:ListItem>
|
||||
<asp:ListItem Value="120">120 Days</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:Button ID="GetOrdersButton" runat="server" Text="Get Orders"
|
||||
onclick="GetOrdersButton_Click" />
|
||||
</p>
|
||||
|
||||
<%--<asp:GridView ID="OrderView" runat="server" AutoGenerateColumns="false">
|
||||
|
||||
<HeaderStyle BackColor="#D1D1D1"></HeaderStyle>
|
||||
|
||||
<Columns>
|
||||
|
||||
<asp:BoundField HeaderText="Deli Id" DataField="Id" />
|
||||
<asp:BoundField HeaderText="Umbraco Id" DataField="OrderId" />
|
||||
<asp:BoundField HeaderText="Status" DataField="Status" />
|
||||
<asp:BoundField HeaderText="TaxTotal EUR" DataField="TaxTotal" />
|
||||
<asp:BoundField HeaderText="SubTotal EUR" DataField="SubTotal" />
|
||||
<asp:BoundField HeaderText="Total EUR" DataField="Total" />
|
||||
<asp:BoundField HeaderText="Currency" DataField="Currency" />
|
||||
<asp:BoundField HeaderText="Local Total" DataField="ProcessedTotal" />
|
||||
<asp:BoundField HeaderText="Company" DataField="CompanyName" />
|
||||
<asp:BoundField HeaderText="Invoice Email" DataField="CompanyInvoiceEmail" />
|
||||
<asp:BoundField HeaderText="Country" DataField="CompanyCountry" />
|
||||
<asp:BoundField HeaderText="PaymentDate" DataField="PaymentDate" />
|
||||
<asp:BoundField HeaderText="Refunded?" DataField="IsRefunded" />
|
||||
<asp:BoundField HeaderText="Refund Date" DataField="RefundDate" />
|
||||
|
||||
</Columns>
|
||||
</asp:GridView>--%>
|
||||
|
||||
|
||||
<asp:Repeater runat="server" ID="OrderView">
|
||||
<HeaderTemplate>
|
||||
<table class="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Deli Id</th>
|
||||
<th>Economid Id</th>
|
||||
<th>Status</th>
|
||||
<th>Company</th>
|
||||
<th>VAT Id</th>
|
||||
<th>Invoice Email</th>
|
||||
<th>Country</th>
|
||||
<th>Date</th>
|
||||
<th class="right">Sub Total EUR</th>
|
||||
<th class="right">Tax Total EUR</th>
|
||||
<th class="right">Total EUR</th>
|
||||
<th>Currency</th>
|
||||
<th>Refunded?</th>
|
||||
<th>Refund Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:HiddenField ID="rowId" runat="server" Value='<%# Eval("Id") %>' />
|
||||
<span class="expand" id="showHide_<%# Eval("Id") %>">[+]</span>
|
||||
<%# Eval("Id")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("EconomicId")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Status")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Company")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("VatID")%><br />
|
||||
<asp:Literal ID="IsValid" runat="server" />
|
||||
<asp:Button runat="server" ID="ValidateVat" style="font-family:Webdings" Text="a" OnCommand="RowCommand" CommandArgument='<%# Eval("VatID") %>' CommandName="ValidateVat" />
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("InvoiceEmail")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Country")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Date")%>
|
||||
</td>
|
||||
<td class="right">
|
||||
<%# Eval("SubTotal")%>
|
||||
</td>
|
||||
<td class="right">
|
||||
<%# Eval("TaxTotal")%>
|
||||
</td>
|
||||
<td class="right">
|
||||
<%# Eval("Total")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Currency")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Refunded")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("RefundDate")%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="detailsRow" id="details_<%# Eval("Id") %>">
|
||||
<td colspan="13" class="borderTop">
|
||||
<h3>Order details</h3>
|
||||
<p>These are the individual products ordered</p>
|
||||
<asp:Repeater runat="server" ID="orderItemRepeater">
|
||||
<HeaderTemplate>
|
||||
<table class="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Vendor</th>
|
||||
<th>Package</th>
|
||||
<th>License</th>
|
||||
<th>Quantity</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td><%# Eval("Vendor")%></td>
|
||||
<td><%# Eval("Package")%></td>
|
||||
<td><%# Eval("LicenseTypeName")%></td>
|
||||
<td><%# Eval("Quantity")%></td>
|
||||
<td class="right"><%# Eval("Value")%></td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
<FooterTemplate>
|
||||
</table>
|
||||
</FooterTemplate>
|
||||
</asp:Repeater>
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
<FooterTemplate>
|
||||
</table>
|
||||
</FooterTemplate>
|
||||
</asp:Repeater>
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Marketplace.Providers.Orders;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers.OrderNote;
|
||||
using Marketplace.Providers.Listing;
|
||||
using System.Globalization;
|
||||
using umbraco.BasePages;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using umbraco;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin
|
||||
{
|
||||
public partial class OrderReview : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
#region properties
|
||||
|
||||
private UmbracoEcommerceOrderProvider _orderProvider;
|
||||
public UmbracoEcommerceOrderProvider OrderProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderProvider != null)
|
||||
return _orderProvider;
|
||||
else
|
||||
{
|
||||
_orderProvider = (UmbracoEcommerceOrderProvider)MarketplaceProviderManager.Providers["OrderProvider"];
|
||||
return _orderProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IOrder Order;
|
||||
|
||||
private IDeliOrderItemProvider _itemProvider;
|
||||
public IDeliOrderItemProvider ItemProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_itemProvider != null)
|
||||
return _itemProvider;
|
||||
else
|
||||
{
|
||||
_itemProvider = (IDeliOrderItemProvider)MarketplaceProviderManager.Providers["OrderItemProvider"];
|
||||
return _itemProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ILicenseProvider _licenseProvider;
|
||||
public ILicenseProvider LicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_licenseProvider != null)
|
||||
return _licenseProvider;
|
||||
else
|
||||
{
|
||||
_licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
return _licenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMemberLicenseProvider _memberLicenseProvider;
|
||||
public IMemberLicenseProvider MemberLicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberLicenseProvider != null)
|
||||
return _memberLicenseProvider;
|
||||
else
|
||||
{
|
||||
_memberLicenseProvider = (IMemberLicenseProvider)MarketplaceProviderManager.Providers["memberLicenseProvider"];
|
||||
return _memberLicenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private OrderNoteProvider _orderNoteProvider;
|
||||
public OrderNoteProvider OrderNoteProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderNoteProvider != null)
|
||||
return _orderNoteProvider;
|
||||
else
|
||||
{
|
||||
_orderNoteProvider = (OrderNoteProvider)MarketplaceProviderManager.Providers["OrderNoteProvider"];
|
||||
return _orderNoteProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private NodeListingProvider _listingProvider;
|
||||
public NodeListingProvider ListingProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_listingProvider != null)
|
||||
return _listingProvider;
|
||||
else
|
||||
{
|
||||
_listingProvider = (NodeListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
return _listingProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ITaxProvider _taxProvider;
|
||||
public ITaxProvider TaxProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_taxProvider != null)
|
||||
return _taxProvider;
|
||||
else
|
||||
{
|
||||
_taxProvider = (ITaxProvider)MarketplaceProviderManager.Providers["TaxProvider"];
|
||||
return _taxProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private BasePage prnt;
|
||||
|
||||
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
prnt = (BasePage)this.Page;
|
||||
HtmlHead head = (HtmlHead)base.Page.Header;
|
||||
HtmlLink link = new HtmlLink();
|
||||
|
||||
link.Attributes.Add("href", GlobalSettings.Path + "/dashboard/deli/css/deliadmin.css?v2");
|
||||
link.Attributes.Add("type", "text/css");
|
||||
link.Attributes.Add("rel", "stylesheet");
|
||||
head.Controls.Add(link);
|
||||
}
|
||||
|
||||
protected void RowCommand(object s, CommandEventArgs e)
|
||||
{
|
||||
switch (e.CommandName)
|
||||
{
|
||||
case "ValidateVat":
|
||||
var but = (Button)s;
|
||||
var lit = (Literal)but.Parent.FindControl("IsValid");
|
||||
|
||||
if (!string.IsNullOrEmpty((string)e.CommandArgument))
|
||||
{
|
||||
var valid = TaxProvider.SimpleVatValidate((string)e.CommandArgument);
|
||||
lit.Text = valid ? "<span style=\"background:green;padding:3px;text-tranform:uppercase;color:#fff;\">VALID</span>" :
|
||||
"<span style=\"background:red;padding:3px;text-tranform:uppercase;color:#fff;\">INVALID</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
lit.Text = "<span style=\"background:red;padding:3px;text-tranform:uppercase;color:#fff;\">INVALID</span>";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void GetOrdersButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
OrderView.ItemDataBound += new RepeaterItemEventHandler(OrderList_ItemDataBound);
|
||||
|
||||
DateTime endDate = DateTime.Now.AddDays(int.Parse(DateRangeDdl.SelectedValue) * (-1));
|
||||
var Orders = OrderProvider.GetOrdersByDate(endDate).Select(x => new
|
||||
{
|
||||
Id = x.Id,
|
||||
EconomicId = x.OrderId,
|
||||
Status = x.Status,
|
||||
CssClass = x.Status == OrderStatus.Confirmed ? "confirmed" : "notConfirmed",
|
||||
Company = x.CompanyName,
|
||||
VatID = x.Member.CompanyVATNumber,
|
||||
InvoiceEmail = x.CompanyInvoiceEmail,
|
||||
Country = GetCountryFromCode(x.CompanyCountry),
|
||||
Date = x.CreateDate,
|
||||
TaxTotal = x.TaxTotal.ToString("c", new CultureInfo("fr-FR", false)),
|
||||
SubTotal = x.SubTotal.ToString("c", new CultureInfo("fr-FR", false)),
|
||||
Total = x.Total.ToString("c", new CultureInfo("fr-FR", false)),
|
||||
Currency = x.Currency,
|
||||
Refunded = x.IsRefunded,
|
||||
RefundDate = x.RefundDate
|
||||
}).OrderByDescending(x => x.Id);
|
||||
|
||||
OrderView.DataSource = Orders;
|
||||
OrderView.DataBind();
|
||||
}
|
||||
|
||||
protected void OrderList_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
RepeaterItem ri = (RepeaterItem)e.Item;
|
||||
if (ri.ItemType == ListItemType.Item || ri.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
Repeater itemRepeater = ((RepeaterItem)e.Item).FindControl("orderItemRepeater") as Repeater;
|
||||
int rowId = Int32.Parse((((RepeaterItem)e.Item).FindControl("rowId") as HiddenField).Value);
|
||||
|
||||
var orderItems = ItemProvider.GetOrderItems(rowId).Select(x => new
|
||||
{
|
||||
Quantity = x.Quantity,
|
||||
Package = ListingProvider.GetListing(x.ListingItemId, true).Name,
|
||||
Vendor = new Member(ListingProvider.GetListing(x.ListingItemId, true).VendorId).Text,
|
||||
LicenseTypeName = LicenseProvider.GetLicense(x.LicenseId).LicenseType.ToString(),
|
||||
Value = x.NetPrice.ToString("c", new CultureInfo("fr-FR", false)),
|
||||
|
||||
});
|
||||
|
||||
itemRepeater.DataSource = orderItems;
|
||||
itemRepeater.DataBind();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private string GetCountryFromCode(string code){
|
||||
|
||||
string country = "";
|
||||
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
|
||||
{
|
||||
|
||||
RegionInfo ri = new RegionInfo(ci.LCID);
|
||||
if(ri.TwoLetterISORegionName.ToLowerInvariant() == code.ToLowerInvariant()){
|
||||
country = ri.EnglishName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return country;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin {
|
||||
|
||||
|
||||
public partial class OrderReview {
|
||||
|
||||
/// <summary>
|
||||
/// DateRangeDdl control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList DateRangeDdl;
|
||||
|
||||
/// <summary>
|
||||
/// GetOrdersButton control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button GetOrdersButton;
|
||||
|
||||
/// <summary>
|
||||
/// OrderView control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater OrderView;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ProcessRefund.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Admin.ProcessRefund" %>
|
||||
|
||||
<h2>Process Refund</h2>
|
||||
<p>
|
||||
Order Id: <asp:TextBox ID="OrderId" runat="server"></asp:TextBox>
|
||||
<asp:Button ID="GetOrderButton" runat="server" Text="Lookup Order"
|
||||
onclick="GetOrderButton_Click" />
|
||||
</p>
|
||||
<h4>Order Review</h4>
|
||||
<p>
|
||||
<strong><asp:Literal ID="OrderReviewDisplay" runat="server"></asp:Literal></strong>
|
||||
</p>
|
||||
|
||||
<h4>Select an Order item to Refund (also revokes the member license)</h4>
|
||||
<p>
|
||||
<asp:RadioButtonList ID="OrderItems" runat="server">
|
||||
</asp:RadioButtonList>
|
||||
</p>
|
||||
|
||||
<h4>Order Notes</h4>
|
||||
<p>
|
||||
<asp:Repeater ID="OrderNotesRepeater" runat="server">
|
||||
<ItemTemplate>
|
||||
<%# Eval("OrderNote") %> - <%# Eval("OrderNoteDate").ToString() %>
|
||||
<br />
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</p>
|
||||
<p>
|
||||
<asp:Button ID="ProcessRefundButton" runat="server" Text="Process Refund"
|
||||
onclick="ProcessRefundButton_Click" />
|
||||
<asp:Literal ID="RefundConfirmation" runat="server"></asp:Literal>
|
||||
</p>
|
||||
<p>
|
||||
<b>Note</b>: This only processes the Deli refund, please also process via
|
||||
PayPal and E-conomic Credit Note</p>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Marketplace.Providers.Orders;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers.Listing;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Providers.OrderNote;
|
||||
using System.Data;
|
||||
using Marketplace.Providers.OrderItem;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin
|
||||
{
|
||||
public partial class ProcessRefund : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
#region properties
|
||||
|
||||
private UmbracoEcommerceOrderProvider _orderProvider;
|
||||
public UmbracoEcommerceOrderProvider OrderProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderProvider != null)
|
||||
return _orderProvider;
|
||||
else
|
||||
{
|
||||
_orderProvider = (UmbracoEcommerceOrderProvider)MarketplaceProviderManager.Providers["OrderProvider"];
|
||||
return _orderProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IOrder Order;
|
||||
|
||||
private IDeliOrderItemProvider _itemProvider;
|
||||
public IDeliOrderItemProvider ItemProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_itemProvider != null)
|
||||
return _itemProvider;
|
||||
else
|
||||
{
|
||||
_itemProvider = (IDeliOrderItemProvider)MarketplaceProviderManager.Providers["OrderItemProvider"];
|
||||
return _itemProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ILicenseProvider _licenseProvider;
|
||||
public ILicenseProvider LicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_licenseProvider != null)
|
||||
return _licenseProvider;
|
||||
else
|
||||
{
|
||||
_licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
return _licenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMemberLicenseProvider _memberLicenseProvider;
|
||||
public IMemberLicenseProvider MemberLicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberLicenseProvider != null)
|
||||
return _memberLicenseProvider;
|
||||
else
|
||||
{
|
||||
_memberLicenseProvider = (IMemberLicenseProvider)MarketplaceProviderManager.Providers["memberLicenseProvider"];
|
||||
return _memberLicenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private OrderNoteProvider _orderNoteProvider;
|
||||
public OrderNoteProvider OrderNoteProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderNoteProvider != null)
|
||||
return _orderNoteProvider;
|
||||
else
|
||||
{
|
||||
_orderNoteProvider = (OrderNoteProvider)MarketplaceProviderManager.Providers["OrderNoteProvider"];
|
||||
return _orderNoteProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private NodeListingProvider _listingProvider;
|
||||
public NodeListingProvider ListingProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_listingProvider != null)
|
||||
return _listingProvider;
|
||||
else
|
||||
{
|
||||
_listingProvider = (NodeListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
return _listingProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected void GetOrderButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
int oId = 0;
|
||||
|
||||
if (int.TryParse(OrderId.Text, out oId))
|
||||
oId = int.Parse(OrderId.Text);
|
||||
|
||||
if (oId > 0)
|
||||
{
|
||||
Order = OrderProvider.GetOrder(oId);
|
||||
|
||||
OrderReviewDisplay.Text = Order.Member.Name + ", Paid on: " + Order.PaymentDate.ToString() + " Amount Paid: " + Order.ProcessedTotal.ToString() + " in Currency: " + Order.Currency.ToString() + ", Order Status: " + Order.Status.ToString();
|
||||
|
||||
DataTable dt = new DataTable();
|
||||
dt.Columns.Add("id");
|
||||
dt.Columns.Add("item");
|
||||
|
||||
foreach (IOrderItem i in Order.Items)
|
||||
{
|
||||
string itemText = ListingProvider.GetListing(i.ListingItemId).Name +
|
||||
", License Type: " + LicenseProvider.GetLicense(i.LicenseId).LicenseType.ToString() +
|
||||
", Quantity: " + i.Quantity.ToString() +
|
||||
", Net Price: " + i.NetPrice.ToString() + " EUR, each";
|
||||
|
||||
dt.Rows.Add(i.Id, itemText);
|
||||
}
|
||||
|
||||
OrderItems.DataSource = dt;
|
||||
OrderItems.DataTextField = "item";
|
||||
OrderItems.DataValueField = "id";
|
||||
OrderItems.DataBind();
|
||||
|
||||
// order notes
|
||||
IEnumerable<IOrderNote> Notes = OrderNoteProvider.GetOrderNotes(oId);
|
||||
OrderNotesRepeater.DataSource = Notes;
|
||||
OrderNotesRepeater.DataBind();
|
||||
|
||||
}
|
||||
else
|
||||
OrderReviewDisplay.Text = "No order with the Id: " + oId.ToString();
|
||||
|
||||
}
|
||||
|
||||
protected void ProcessRefundButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
int oId = 0;
|
||||
if (int.TryParse(OrderId.Text, out oId))
|
||||
oId = int.Parse(OrderId.Text);
|
||||
|
||||
if (oId > 0)
|
||||
Order = OrderProvider.GetOrder(oId);
|
||||
|
||||
// mark order as refunded
|
||||
Order.Status = OrderStatus.Refunded;
|
||||
Order.IsRefunded = true;
|
||||
Order.RefundDate = DateTime.Now.ToUniversalTime();
|
||||
OrderProvider.SaveOrUpdate(Order);
|
||||
|
||||
// mark item as refunded
|
||||
IOrderItem item = ItemProvider.GetOrderItem(int.Parse(OrderItems.SelectedValue));
|
||||
item.IsRefunded = true;
|
||||
item.RefundDate = DateTime.Now.ToUniversalTime();
|
||||
ItemProvider.SaveOrUpdate(item);
|
||||
|
||||
// revoke member license
|
||||
var licenses = MemberLicenseProvider.GetLicensesByOrderItemId(item.Id);
|
||||
foreach (var license in licenses)
|
||||
{
|
||||
license.IsActive = false;
|
||||
MemberLicenseProvider.SaveOrUpdate(license);
|
||||
}
|
||||
|
||||
// add order note
|
||||
OrderNoteProvider.AddOrderNote((int)Order.Id, (int)Order.Member.Id, "Refund processed for item: " + item.Id.ToString());
|
||||
|
||||
RefundConfirmation.Text = "Refund processed and license revoked.";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin {
|
||||
|
||||
|
||||
public partial class ProcessRefund {
|
||||
|
||||
/// <summary>
|
||||
/// OrderId control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox OrderId;
|
||||
|
||||
/// <summary>
|
||||
/// GetOrderButton control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button GetOrderButton;
|
||||
|
||||
/// <summary>
|
||||
/// OrderReviewDisplay control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal OrderReviewDisplay;
|
||||
|
||||
/// <summary>
|
||||
/// OrderItems control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RadioButtonList OrderItems;
|
||||
|
||||
/// <summary>
|
||||
/// OrderNotesRepeater control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater OrderNotesRepeater;
|
||||
|
||||
/// <summary>
|
||||
/// ProcessRefundButton control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button ProcessRefundButton;
|
||||
|
||||
/// <summary>
|
||||
/// RefundConfirmation control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal RefundConfirmation;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VendorPayout.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Admin.VendorPayout" %>
|
||||
<h2>Vendor Payout</h2>
|
||||
|
||||
<asp:Button ID="GetPayoutButton" runat="server" Text="Get Payout Details"
|
||||
onclick="GetPayoutButton_Click" />
|
||||
|
||||
<asp:PlaceHolder ID="PayoutPlaceholder" runat="server" Visible="false">
|
||||
|
||||
<h3>Period ending <asp:literal ID="EndDate" runat="server" /></h3>
|
||||
|
||||
<p>
|
||||
<asp:Repeater ID="PayoutReport" runat="server">
|
||||
<HeaderTemplate>
|
||||
<table class="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Vendor Name</th>
|
||||
<th>Economid Id</th>
|
||||
<th>Vendor Ref</th>
|
||||
<th>Net Payout</th>
|
||||
<th>Payout Date</th>
|
||||
<tr>
|
||||
</thead>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:Literal ID="VendorName" runat="server" />
|
||||
</td>
|
||||
<td>
|
||||
<asp:Literal ID="EconomicId" runat="server" />
|
||||
</td>
|
||||
<td>
|
||||
<%#Eval("VendorRef").ToString() %>
|
||||
</td>
|
||||
<td>
|
||||
<asp:Literal ID="NetPayout" runat="server" />
|
||||
</td>
|
||||
<td>
|
||||
<%#Eval("PayoutDate").ToString()%>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</ItemTemplate>
|
||||
<FooterTemplate>
|
||||
</table>
|
||||
</FooterTemplate>
|
||||
</asp:Repeater>
|
||||
</p>
|
||||
|
||||
<asp:Button ID="MarkAsPaid" runat="server" Text="Mark as Paid" OnClick="MarkAsPaidButton_Click" Visible="false" />
|
||||
|
||||
</asp:PlaceHolder>
|
||||
@@ -0,0 +1,209 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Data;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.Security;
|
||||
|
||||
using Marketplace.Providers.Orders;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers.Listing;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Providers.OrderNote;
|
||||
using Marketplace.Providers.OrderItem;
|
||||
using Marketplace.Providers.Vendor;
|
||||
using Marketplace.Providers.Payout;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin
|
||||
{
|
||||
public partial class VendorPayout : System.Web.UI.UserControl
|
||||
{
|
||||
#region properties
|
||||
|
||||
public IEnumerable<IOrderItem> PayoutList;
|
||||
public IEnumerable<IPayout> Payouts;
|
||||
|
||||
|
||||
private UmbracoEcommerceOrderProvider _orderProvider;
|
||||
public UmbracoEcommerceOrderProvider OrderProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderProvider != null)
|
||||
return _orderProvider;
|
||||
else
|
||||
{
|
||||
_orderProvider = (UmbracoEcommerceOrderProvider)MarketplaceProviderManager.Providers["OrderProvider"];
|
||||
return _orderProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IDeliOrderItemProvider _itemProvider;
|
||||
public IDeliOrderItemProvider ItemProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_itemProvider != null)
|
||||
return _itemProvider;
|
||||
else
|
||||
{
|
||||
_itemProvider = (IDeliOrderItemProvider)MarketplaceProviderManager.Providers["OrderItemProvider"];
|
||||
return _itemProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ILicenseProvider _licenseProvider;
|
||||
public ILicenseProvider LicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_licenseProvider != null)
|
||||
return _licenseProvider;
|
||||
else
|
||||
{
|
||||
_licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
return _licenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMemberLicenseProvider _memberLicenseProvider;
|
||||
public IMemberLicenseProvider MemberLicenseProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberLicenseProvider != null)
|
||||
return _memberLicenseProvider;
|
||||
else
|
||||
{
|
||||
_memberLicenseProvider = (IMemberLicenseProvider)MarketplaceProviderManager.Providers["memberLicenseProvider"];
|
||||
return _memberLicenseProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private OrderNoteProvider _orderNoteProvider;
|
||||
public OrderNoteProvider OrderNoteProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_orderNoteProvider != null)
|
||||
return _orderNoteProvider;
|
||||
else
|
||||
{
|
||||
_orderNoteProvider = (OrderNoteProvider)MarketplaceProviderManager.Providers["OrderNoteProvider"];
|
||||
return _orderNoteProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private NodeListingProvider _listingProvider;
|
||||
public NodeListingProvider ListingProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_listingProvider != null)
|
||||
return _listingProvider;
|
||||
else
|
||||
{
|
||||
_listingProvider = (NodeListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
return _listingProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private MemberVendorProvider _vendorProvider;
|
||||
public MemberVendorProvider VendorProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_vendorProvider != null)
|
||||
return _vendorProvider;
|
||||
else
|
||||
{
|
||||
_vendorProvider = (MemberVendorProvider)MarketplaceProviderManager.Providers["VendorProvider"];
|
||||
return _vendorProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private PayoutProvider _payoutProvider;
|
||||
public PayoutProvider PayoutProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_payoutProvider != null)
|
||||
return _payoutProvider;
|
||||
else
|
||||
{
|
||||
_payoutProvider = (PayoutProvider)MarketplaceProviderManager.Providers["PayoutProvider"];
|
||||
return _payoutProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
PayoutReport.ItemDataBound += new RepeaterItemEventHandler(PayoutReport_ItemDataBound);
|
||||
}
|
||||
|
||||
void PayoutReport_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
// The data for this item in the repeatercontrol
|
||||
dynamic item = e.Item.DataItem as dynamic;
|
||||
|
||||
if (e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() != "Footer")
|
||||
{
|
||||
Literal VendorName = (Literal)e.Item.FindControl("VendorName");
|
||||
Literal EconomicId = (Literal)e.Item.FindControl("EconomicId");
|
||||
Literal NetPayout = (Literal)e.Item.FindControl("NetPayout");
|
||||
double payoutAmount = 0;
|
||||
|
||||
VendorName.Text = VendorProvider.GetVendorById(item.VendorId).VendorCompanyName;
|
||||
EconomicId.Text = VendorProvider.GetVendorById(item.VendorId).EconomicId.ToString();
|
||||
foreach (IOrderItem i in item.OrderItems)
|
||||
{
|
||||
payoutAmount += (i.NetPrice * .75);
|
||||
}
|
||||
|
||||
NetPayout.Text = payoutAmount.ToString();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void GetPayoutButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
// get last day of previous month
|
||||
var last = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddDays(-1);
|
||||
|
||||
Payouts = PayoutProvider.GetPayouts(null, true);
|
||||
PayoutReport.DataSource = Payouts;
|
||||
PayoutReport.DataBind();
|
||||
|
||||
EndDate.Text = last.ToLongDateString();
|
||||
|
||||
// show details
|
||||
PayoutPlaceholder.Visible = true;
|
||||
|
||||
}
|
||||
|
||||
protected void MarkAsPaidButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
//PayoutProvider.MarkItemsPaid(int.Parse(PayoutId.Text));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin {
|
||||
|
||||
|
||||
public partial class VendorPayout {
|
||||
|
||||
/// <summary>
|
||||
/// GetPayoutButton control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button GetPayoutButton;
|
||||
|
||||
/// <summary>
|
||||
/// PayoutPlaceholder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder PayoutPlaceholder;
|
||||
|
||||
/// <summary>
|
||||
/// EndDate control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal EndDate;
|
||||
|
||||
/// <summary>
|
||||
/// PayoutReport control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater PayoutReport;
|
||||
|
||||
/// <summary>
|
||||
/// MarkAsPaid control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button MarkAsPaid;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VendorPayoutReport.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Admin.VendorPayoutReport" %>
|
||||
<%@ Import Namespace="Marketplace.Interfaces" %>
|
||||
<h2>Payout Report</h2>
|
||||
<p>The following list shows all payouts and their status</p>
|
||||
<asp:Button runat="server" text="Load Pending Report" OnClick="LoadReport" />
|
||||
<asp:Button runat="server" text="Load Processed Report" OnClick="LoadProcessedReport" />
|
||||
<asp:Repeater runat="server" ID="PayoutHistoryList" OnItemCommand="processPayoutRow">
|
||||
<HeaderTemplate>
|
||||
<table class="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Vendor Name</th>
|
||||
<th>Economid Id</th>
|
||||
<th>Vendor Ref</th>
|
||||
<th>Date</th>
|
||||
<th>Status</th>
|
||||
<th class="right">Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:HiddenField ID="rowId" runat="server" Value='<%# Eval("Id") %>' />
|
||||
<span class="expand" id="showHide_<%# Eval("Id") %>">[+]</span>
|
||||
<%# ((IVendor)Eval("Vendor")).Member.Name%>
|
||||
</td>
|
||||
<td>
|
||||
<%# ((IVendor)Eval("Vendor")).EconomicId%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Reference")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("PayoutDate")%>
|
||||
</td>
|
||||
<td>
|
||||
<%# Eval("Status")%>
|
||||
</td>
|
||||
<td class="right">
|
||||
<%# Eval("PayoutAmount")%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="detailsRow" id="details_<%# Eval("Id") %>">
|
||||
<td colspan="6" class="borderTop">
|
||||
<h3>Payout details</h3>
|
||||
<p><strong>Company Name:</strong> <%# ((IVendor)Eval("Vendor")).VendorCompanyName %></p>
|
||||
<p><strong>Billing Email:</strong> <%# ((IVendor)Eval("Vendor")).BillingContactEmail %></p>
|
||||
<p><strong>VAT:</strong> <%# ((IVendor)Eval("Vendor")).VATNumber%></p>
|
||||
<p><strong>Tax ID:</strong> <%# ((IVendor)Eval("Vendor")).TaxId%></p>
|
||||
<p><strong>Paypal:</strong> <%# ((IVendor)Eval("Vendor")).PayPalAccount%></p>
|
||||
<p><strong>IBAN:</strong> <%# ((IVendor)Eval("Vendor")).IBAN%></p>
|
||||
<p><strong>SWIFT:</strong> <%# ((IVendor)Eval("Vendor")).SWIFT%></p>
|
||||
<p><strong>BSB:</strong> <%# ((IVendor)Eval("Vendor")).BSB%></p>
|
||||
<p><strong>Account Number:</strong> <%# ((IVendor)Eval("Vendor")).AccountNumber %></p>
|
||||
|
||||
<asp:Repeater runat="server" ID="payoutItemRepeater">
|
||||
<HeaderTemplate>
|
||||
<table class="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th>License</th>
|
||||
<th>Purchaser</th>
|
||||
<th>Country</th>
|
||||
<th>VAT #</th>
|
||||
<th>Order Date</th>
|
||||
<th class="right">Payout Value*</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td><%# Eval("Package")%></td>
|
||||
<td><%# Eval("LicenseTypeName")%></td>
|
||||
<td><a href="mailto:<%# ((IMember)Eval("Member")).Email %>"><%# ((IMember)Eval("Member")).Name%></a></td>
|
||||
<td><%# ((IMember)Eval("Member")).CompanyCountry%></td>
|
||||
<td><%# ((IMember)Eval("Member")).CompanyVATNumber%></td>
|
||||
<td><%# Eval("OrderDate")%></td>
|
||||
<td class="right"><%# Eval("PayoutAmount")%></td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
<FooterTemplate>
|
||||
</table>
|
||||
</FooterTemplate>
|
||||
</asp:Repeater>
|
||||
<asp:PlaceHolder runat="server" Visible='<%# Eval("Status") != "Processed" %>'>
|
||||
<div style="border:1px solid #ccc;background:#eee;padding:1em;">
|
||||
<h3>Process this Payment Request</h3>
|
||||
<p>Once you have processed this payment request please click the following button.</p>
|
||||
<asp:Button runat="server" ID="processPayment" Text="Process Payment" CommandArgument='<%# Eval("Id") %>' CommandName="Payout" OnClientClick="return confirm('Are you sure you want to process this payment?')" />
|
||||
</div>
|
||||
</asp:PlaceHolder>
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
<FooterTemplate>
|
||||
</table>
|
||||
</FooterTemplate>
|
||||
</asp:Repeater>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$(".detailsRow").hide();
|
||||
|
||||
$(".expand").click(function () {
|
||||
|
||||
var id = $(this).attr("id").split("_")[1];
|
||||
|
||||
if ($("#details_" + id).is(":visible")) {
|
||||
$("#details_" + id).hide();
|
||||
$(this).text("[+]");
|
||||
} else {
|
||||
$("#details_" + id).show();
|
||||
$(this).text("[-]");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,143 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using System.Configuration;
|
||||
using umbraco;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using umbraco.BasePages;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin
|
||||
{
|
||||
public partial class VendorPayoutReport : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
private IDeliOrderItemProvider _orderItemProvider;
|
||||
private IOrderProvider _orderProvider;
|
||||
private IMemberProvider _memberProvider;
|
||||
private IVendorProvider _vendorProvider;
|
||||
private IListingProvider _listingProvider;
|
||||
private ILicenseProvider _licenseProvider;
|
||||
private IPayoutProvider _payoutProvider;
|
||||
private BasePage prnt;
|
||||
|
||||
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
prnt = (BasePage)this.Page;
|
||||
HtmlHead head = (HtmlHead)base.Page.Header;
|
||||
HtmlLink link = new HtmlLink();
|
||||
|
||||
link.Attributes.Add("href", GlobalSettings.Path + "/dashboard/deli/css/deliadmin.css?v2");
|
||||
link.Attributes.Add("type", "text/css");
|
||||
link.Attributes.Add("rel", "stylesheet");
|
||||
head.Controls.Add(link);
|
||||
}
|
||||
|
||||
|
||||
protected void LoadReport(object sender, EventArgs e)
|
||||
{
|
||||
BindListing(true);
|
||||
}
|
||||
|
||||
protected void LoadProcessedReport(object sender, EventArgs e)
|
||||
{
|
||||
BindListing(false);
|
||||
}
|
||||
|
||||
private void BindListing(bool pending)
|
||||
{
|
||||
_memberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
_vendorProvider = (IVendorProvider)MarketplaceProviderManager.Providers["VendorProvider"];
|
||||
_listingProvider = (IListingProvider)MarketplaceProviderManager.Providers["ListingProvider"];
|
||||
_orderProvider = (IOrderProvider)MarketplaceProviderManager.Providers["OrderProvider"];
|
||||
_orderItemProvider = (IDeliOrderItemProvider)MarketplaceProviderManager.Providers["OrderItemProvider"];
|
||||
_licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
_payoutProvider = (IPayoutProvider)MarketplaceProviderManager.Providers["PayoutProvider"];
|
||||
|
||||
|
||||
PayoutHistoryList.ItemDataBound += new RepeaterItemEventHandler(PayoutHistoryList_ItemDataBound);
|
||||
|
||||
var payouts = _payoutProvider.GetPayouts(null, true, pending).OrderByDescending(x => x.PayoutDate).Select(x => new
|
||||
{
|
||||
Id = x.Id,
|
||||
Vendor = _vendorProvider.GetVendorById(x.VendorId),
|
||||
PayoutDate = String.Format("{0:D}",x.PayoutDate),
|
||||
Reference = x.VendorRef,
|
||||
PayoutAmount = GetPayoutValue(x.OrderItems),
|
||||
Status = (x.Processed)?"Processed":"Pending"
|
||||
});
|
||||
|
||||
PayoutHistoryList.DataSource = payouts;
|
||||
PayoutHistoryList.DataBind();
|
||||
}
|
||||
|
||||
protected void PayoutHistoryList_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
RepeaterItem ri = (RepeaterItem)e.Item;
|
||||
if (ri.ItemType == ListItemType.Item || ri.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
Repeater itemRepeater = ((RepeaterItem)e.Item).FindControl("payoutItemRepeater") as Repeater;
|
||||
int rowId = Int32.Parse((((RepeaterItem)e.Item).FindControl("rowId") as HiddenField).Value);
|
||||
|
||||
var payout = _payoutProvider.GetPayout(rowId);
|
||||
|
||||
// bind the table to any order that has not been paid out and does not have a payout id
|
||||
var items = payout.OrderItems
|
||||
.Select(x => new
|
||||
{
|
||||
Id = x.Id,
|
||||
Package = _listingProvider.GetListing(x.ListingItemId, true).Name,
|
||||
LicenseTypeName = _licenseProvider.GetLicense(x.LicenseId).LicenseType.ToString(),
|
||||
Member = _orderProvider.GetOrder(x.OrderId).Member,
|
||||
PayoutAmount = x.PayoutAmount,
|
||||
OrderDate = string.Format("{0:D}", x.CreateDate)
|
||||
});
|
||||
|
||||
itemRepeater.DataSource = items;
|
||||
itemRepeater.DataBind();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void processPayoutRow(Object sender, RepeaterCommandEventArgs e)
|
||||
{
|
||||
|
||||
switch (e.CommandName)
|
||||
{
|
||||
case "Payout":
|
||||
var payoutId = Int32.Parse(e.CommandArgument.ToString());
|
||||
|
||||
_payoutProvider = (IPayoutProvider)MarketplaceProviderManager.Providers["PayoutProvider"];
|
||||
_payoutProvider.MarkItemsPaid(payoutId);
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
BindListing(true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private double GetPayoutValue(IEnumerable<IOrderItem> items)
|
||||
{
|
||||
double val = 0.00;
|
||||
foreach (var i in items)
|
||||
{
|
||||
val += i.PayoutAmount;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Admin {
|
||||
|
||||
|
||||
public partial class VendorPayoutReport {
|
||||
|
||||
/// <summary>
|
||||
/// PayoutHistoryList control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater PayoutHistoryList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Cart.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Cart.Cart" %>
|
||||
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="CartHolder">
|
||||
<table class="dataTable">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Product</th>
|
||||
<th>License Type</th>
|
||||
<th class="money">Price</th>
|
||||
<th class="count">Quantity</th>
|
||||
<th></th>
|
||||
<th class="money">Sub-Total</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<asp:repeater runat="server" ID="CartItems">
|
||||
<ItemTemplate>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><%#Eval("Name") %></td>
|
||||
<td><%#Eval("License") %></td>
|
||||
<td class="money"><asp:Literal id="price" runat="server" /></td>
|
||||
<td class="count">
|
||||
<asp:HiddenField id="LicenseId" value='<%# Eval("Id") %>' runat="server" />
|
||||
<asp:textbox ID="Quantity" columns="3" text='<%# Eval("Quantity") %>' runat="server" OnTextChanged="QuantityOnChange" onkeypress="return isNumberKey(event)" />
|
||||
</td>
|
||||
<td><asp:button ToolTip="Remove item" id="Del" text="remove" runat="server" /></td>
|
||||
|
||||
<td class="money"><asp:Literal id="subtotal" runat="server" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</ItemTemplate>
|
||||
</asp:repeater>
|
||||
|
||||
<tr class="totals">
|
||||
<td colspan="3"></td>
|
||||
<td class="count"><asp:Button runat="server" Text="update" /></td>
|
||||
<td class="count">Total:</td>
|
||||
<td class="money"><asp:literal runat="server" ID="CartTotal" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
//stop things other than numbers being entered into quantity.
|
||||
function isNumberKey(evt) {
|
||||
var charCode = (evt.which) ? evt.which : event.keyCode
|
||||
if (charCode > 31 && (charCode < 48 || charCode > 57))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<fieldset>
|
||||
|
||||
|
||||
<div class="buttons">
|
||||
<asp:linkbutton runat="server" Text="< Continue Shopping" ID="CartNavPrevious" OnClick="CartNavPrevious_Click" />
|
||||
<asp:Button runat="server" Text="Next >" ID="CartNavNext" class="submitButton" OnClick="CartNavNext_Click" />
|
||||
</div>
|
||||
</fieldset>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="CartEmptyHolder" Visible="false">
|
||||
<div>
|
||||
<p>Your cart is currently empty</p>
|
||||
</div>
|
||||
|
||||
</asp:PlaceHolder>
|
||||
@@ -0,0 +1,186 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Providers.Accounting;
|
||||
using Marketplace.Helpers;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart
|
||||
{
|
||||
public partial class Cart : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
#region properties
|
||||
private ICartProvider _cartProvider;
|
||||
public ICartProvider CartProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_cartProvider != null)
|
||||
{
|
||||
return _cartProvider;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cartProvider = (ICartProvider)MarketplaceProviderManager.Providers["CartProvider"];
|
||||
return _cartProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private ICart _cart;
|
||||
public ICart ShoppingCart
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_cart != null)
|
||||
{
|
||||
return _cart;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cart = CartProvider.GetCurrentCart();
|
||||
return _cart;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
_cart = value;
|
||||
}
|
||||
}
|
||||
|
||||
private Currency _currency = Currency.EUR;
|
||||
#endregion
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
CartItems.ItemDataBound += new RepeaterItemEventHandler(CartItems_ItemDataBound);
|
||||
CartItems.ItemCommand +=new RepeaterCommandEventHandler(CartItems_ItemCommand);
|
||||
}
|
||||
|
||||
protected void Page_PreRender(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
if (ShoppingCart != null && ShoppingCart.CartItems.Count > 0)
|
||||
{
|
||||
LoadCart();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
CartHolder.Visible = false;
|
||||
CartEmptyHolder.Visible = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void LoadCart()
|
||||
{
|
||||
var licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
|
||||
// use cart currency
|
||||
_currency = ShoppingCart.Currency;
|
||||
|
||||
//to enusre the cart rounds and adds properly we convert to localised price when its doing the subtotal step.
|
||||
var cartItems = CartProvider.GetCartItems().Select(x => new {
|
||||
Id = x.LicenseId,
|
||||
Name = x.ListingItem.Name,
|
||||
License = licenseProvider.GetLicense(x.LicenseId).LicenseType.LicenseTypeAsString(),
|
||||
Price = _cartProvider.GetLocalizedPrice(x.NetPrice),
|
||||
Quantity = x.Quantity,
|
||||
SubTotal = x.Quantity * _cartProvider.GetLocalizedPrice(x.NetPrice)
|
||||
|
||||
});
|
||||
|
||||
CartItems.DataSource = cartItems;
|
||||
CartItems.DataBind();
|
||||
|
||||
|
||||
CartTotal.Text = DeliCurrency.NiceMoney((decimal)_cartProvider.GetLocalizedCartGrossValue(), DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
|
||||
}
|
||||
|
||||
protected void QuantityOnChange(object sender, EventArgs e)
|
||||
{
|
||||
string licenseId = ((HiddenField)((TextBox)sender).Parent.FindControl("LicenseId")).Value;
|
||||
TextBox qtyBox = (TextBox)sender;
|
||||
int qty = 0;
|
||||
if (!string.IsNullOrEmpty(qtyBox.Text))
|
||||
{
|
||||
qty = int.Parse(qtyBox.Text);
|
||||
}
|
||||
|
||||
var ci = CartProvider.GetCartItems().Where(x => x.LicenseId == Int32.Parse(licenseId)).FirstOrDefault();
|
||||
if (ci != null)
|
||||
{
|
||||
CartProvider.ChangeItemQuantity(ci, qty);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CartItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
// The data for this item in the repeatercontrol
|
||||
dynamic item = e.Item.DataItem as dynamic;
|
||||
|
||||
if (e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() != "Footer")
|
||||
{
|
||||
Button btnDel = (Button)e.Item.FindControl("Del");
|
||||
|
||||
// Assign ids of items to the buttons
|
||||
btnDel.CommandName = "delItem";
|
||||
btnDel.CommandArgument = item.Id.ToString();
|
||||
|
||||
// set the price and subtotal amounts
|
||||
Literal price = (Literal)e.Item.FindControl("price");
|
||||
Literal subtotal = (Literal)e.Item.FindControl("subtotal");
|
||||
|
||||
price.Text = DeliCurrency.NiceMoney((decimal)item.Price, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
|
||||
//no need to localize the price for the subtotal as this is done during the datasource creation
|
||||
subtotal.Text = DeliCurrency.NiceMoney((decimal)item.SubTotal,DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void CartItems_ItemCommand(object source, RepeaterCommandEventArgs e)
|
||||
{
|
||||
string licenseId = e.CommandArgument.ToString();
|
||||
|
||||
switch (e.CommandName)
|
||||
{
|
||||
case "delItem":
|
||||
{
|
||||
var ci = CartProvider.GetCartItems().Where(x => x.LicenseId == Int32.Parse((string)e.CommandArgument)).FirstOrDefault();
|
||||
if (ci != null)
|
||||
{
|
||||
CartProvider.RemoveItem(ci);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void CartNavNext_Click(object s, EventArgs e)
|
||||
{
|
||||
Response.Redirect("cart-details");
|
||||
}
|
||||
|
||||
protected void CartNavPrevious_Click(object s, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Request["returnUrl"]))
|
||||
Response.Redirect(Request["returnUrl"]);
|
||||
else
|
||||
Response.Redirect("/projects");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart {
|
||||
|
||||
|
||||
public partial class Cart {
|
||||
|
||||
/// <summary>
|
||||
/// CartHolder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder CartHolder;
|
||||
|
||||
/// <summary>
|
||||
/// CartItems control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater CartItems;
|
||||
|
||||
/// <summary>
|
||||
/// CartTotal control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal CartTotal;
|
||||
|
||||
/// <summary>
|
||||
/// CartNavPrevious control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton CartNavPrevious;
|
||||
|
||||
/// <summary>
|
||||
/// CartNavNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button CartNavNext;
|
||||
|
||||
/// <summary>
|
||||
/// CartEmptyHolder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder CartEmptyHolder;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CartDetails.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Cart.CartDetails" %>
|
||||
<%@ Register Assembly="Marketplace" TagPrefix="Deli" Namespace="Marketplace.Controls" %>
|
||||
<%@ Register Src="~/usercontrols/our.umbraco.org/Login_novalidationscript.ascx" TagName="Login" TagPrefix="our" %>
|
||||
|
||||
<asp:PlaceHolder ID="NotLoggedIn" runat="server" Visible="false">
|
||||
|
||||
<div class="deliNotification">
|
||||
<h2>Continue without logging in</h2>
|
||||
<p>You can complete your purchase now, we'll create an account for you and email you a temporary password when you're done.</p>
|
||||
<h2>Or if you are an existing member <a href="#" class="show_hide">login here</a></h2>
|
||||
<p style="margin-bottom:0;">Your profile probably already has most of the information we need to process your purchase. Login to retrieve your details.</p>
|
||||
<div id="detailsLoginForm">
|
||||
<div id="detailLogin"><our:Login runat="server" ID="MemberLogin" ErrorMessage="Either your email or password is incorrect" /></div>
|
||||
<p>Can't remember your password? You can retrieve a new one by <a href="<%= RetrievePasswordPage %>" title="Forgot Password">clicking here</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$("#detailsLoginForm").hide();
|
||||
$(".show_hide").show();
|
||||
|
||||
$('.show_hide').click(function () {
|
||||
$("#detailsLoginForm").slideToggle();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="DetailsForm">
|
||||
<script type="text/javascript" src="/scripts/jsvat-custom-deli.js"></script>
|
||||
<div id="cartDetailsForm">
|
||||
<fieldset>
|
||||
<legend>User Information</legend>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="UserName" CssClass="inputLabel">Name</asp:Label>
|
||||
<asp:textbox runat="server" ID="UserName" CssClass="required title" ToolTip="Please enter your name" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="UserEmail" CssClass="inputLabel">Email</asp:Label>
|
||||
<asp:TextBox runat="server" ID="UserEmail" CssClass="required title email" ToolTip="Please enter your email address" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="UserConfirmEmail" CssClass="inputLabel">Confirm Email</asp:Label>
|
||||
<asp:TextBox runat="server" ID="UserConfirmEmail" CssClass="CompareFields title" ToolTip="Please confirm your email address" />
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
|
||||
<legend>Company Details and Invoicing</legend>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="CompanyName" CssClass="inputLabel">Company Name</asp:Label>
|
||||
<asp:TextBox runat="server" ID="CompanyName" CssClass="title" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="CompanyAddress" CssClass="inputLabel">Address</asp:Label>
|
||||
<asp:TextBox runat="server" TextMode="MultiLine" ID="CompanyAddress" CssClass="title" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="CompanyCountry" CssClass="inputLabel">Country</asp:Label>
|
||||
<Deli:CountryDropDownList runat="server" ID="CompanyCountry" CssClass="title required" ToolTip="Please select your country" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="CompanyPhone" CssClass="inputLabel" Visible="false">Phone</asp:Label>
|
||||
<asp:TextBox runat="server" ID="CompanyPhone" CssClass="title" Visible="false" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="CompanyVat" CssClass="inputLabel">VAT-Number</asp:Label>
|
||||
<asp:TextBox runat="server" ID="CompanyVat" CssClass="ValidateVatFormat title" ToolTip="VAT format is invalid. Include country code and no spaces AA1111111111" />
|
||||
</p>
|
||||
<p>
|
||||
<asp:Label runat="server" AssociatedControlID="CompanyInvoiceEmail" CssClass="inputLabel">Invoice Email</asp:Label>
|
||||
<asp:TextBox runat="server" ID="CompanyInvoiceEmail" CssClass="title email required" />
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="buttons">
|
||||
<asp:linkbutton runat="server" Text="< Previous" ID="CartNavPrevious" OnClick="CartNavPrevious_Click" />
|
||||
<asp:Button runat="server" Text="Next >" ID="CartNavNext" OnClick="CartNavNext_Click" class="submitButton"/>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$("#detailLogin input[type=submit]").addClass("cancel");
|
||||
|
||||
jQuery.validator.addMethod("CompareFields", function (value, element) { return value == $("#<%= UserEmail.ClientID %>").val(); }, $("#<%= UserEmail.ClientID %>").attr("tooltip"));
|
||||
|
||||
jQuery.validator.addMethod("ValidateVatFormat", function (value, element) { if (value.length > 0) { return checkVATNumber(value); } else { return true; } }, $("#<%= CompanyVat.ClientID %>").attr("tooltip"));
|
||||
|
||||
$("form").validate({
|
||||
invalidHandler: function (f, v) {
|
||||
var errors = v.numberOfInvalids();
|
||||
if (errors.length > 0) {
|
||||
validator.focusInvalid();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
$(".submitButton").click(function (evt) {
|
||||
// Validate the form and retain the result.
|
||||
var isValid = $("form").valid();
|
||||
|
||||
// If the form didn't validate, prevent the
|
||||
// form submission.
|
||||
if (!isValid)
|
||||
evt.preventDefault();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:Literal ID="DeliMessage" runat="server"></asp:Literal>
|
||||
|
||||
|
||||
@@ -0,0 +1,300 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Providers.Orders;
|
||||
using Marketplace.Providers.Members;
|
||||
using Marketplace.Providers.OrderItem;
|
||||
using System.Web.Security;
|
||||
using NotificationsCore;
|
||||
using NotificationsWeb;
|
||||
using umbraco.NodeFactory;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart
|
||||
{
|
||||
public partial class CartDetails : System.Web.UI.UserControl
|
||||
{
|
||||
private ICartProvider _cartProvider;
|
||||
public ICartProvider CartProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_cartProvider != null)
|
||||
{
|
||||
return _cartProvider;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cartProvider = (ICartProvider)MarketplaceProviderManager.Providers["CartProvider"];
|
||||
return _cartProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ICart _cart;
|
||||
public ICart ShoppingCart
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_cart != null)
|
||||
{
|
||||
return _cart;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cart = CartProvider.GetCurrentCart();
|
||||
return _cart;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
_cart = value;
|
||||
}
|
||||
}
|
||||
|
||||
private IMemberProvider _memberProvider;
|
||||
public IMemberProvider MemberProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberProvider != null)
|
||||
return _memberProvider;
|
||||
else
|
||||
{
|
||||
_memberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
return _memberProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMember _member;
|
||||
public IMember Member
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_member != null)
|
||||
return _member;
|
||||
else
|
||||
{
|
||||
_member = MemberProvider.GetCurrentMember();
|
||||
return _member;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int RetrievePassword { get; set; }
|
||||
public int SignUp { get; set; }
|
||||
|
||||
protected string RetrievePasswordPage { get; set; }
|
||||
protected string SignUpPage { get; set; }
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if(ShoppingCart.CartItems.Count > 0)
|
||||
{
|
||||
if (!IsPostBack && Member != null)
|
||||
{
|
||||
//check to see if member was created during cart process and move them to review step automatically
|
||||
if (!string.IsNullOrEmpty(Request["ss"]))
|
||||
{
|
||||
|
||||
//now that the user is authenticated set their cart currency based on their details
|
||||
SetCurrency();
|
||||
|
||||
CartProvider.InvalidateVat();
|
||||
// send to order review
|
||||
Response.Redirect("cart-review");
|
||||
}
|
||||
|
||||
//otherwise show the form
|
||||
SetupDetails();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Redirect("cart");
|
||||
}
|
||||
|
||||
//check if the user is authenticated, otherwise present login option or continue as 'guest'
|
||||
// can we just use... if(Member == null) for this
|
||||
if (!HttpContext.Current.User.Identity.IsAuthenticated)
|
||||
{
|
||||
RetrievePasswordPage = umbraco.library.NiceUrl(RetrievePassword);
|
||||
SignUpPage = umbraco.library.NiceUrl(SignUp);
|
||||
MemberLogin.NextPage = Node.GetCurrent().Id;
|
||||
NotLoggedIn.Visible = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void SetupDetails()
|
||||
{
|
||||
UserName.Text = Member.Name;
|
||||
UserEmail.Text = Member.Email;
|
||||
CompanyVat.Text = Member.CompanyVATNumber;
|
||||
CompanyName.Text = Member.Company;
|
||||
CompanyCountry.SelectedValue = Member.CompanyCountry;
|
||||
CompanyAddress.Text = Member.CompanyAddress;
|
||||
CompanyInvoiceEmail.Text = Member.CompanyInvoiceEmail;
|
||||
}
|
||||
|
||||
protected void CreateMember()
|
||||
{
|
||||
string Group = "standard";
|
||||
|
||||
if (UserEmail.Text != null)
|
||||
{
|
||||
IMember m = MemberProvider.GetMemberByEmail(UserEmail.Text);
|
||||
if (m == null)
|
||||
{
|
||||
|
||||
m = new DeliMember();
|
||||
|
||||
m.Name = UserName.Text;
|
||||
m.Email = UserEmail.Text;
|
||||
// set using generate password
|
||||
m.Password = Membership.GeneratePassword(8, 0);
|
||||
|
||||
|
||||
//billing info
|
||||
m.CompanyAddress = CompanyAddress.Text;
|
||||
m.CompanyCountry = CompanyCountry.SelectedValue;
|
||||
|
||||
if (CompanyInvoiceEmail.Text.Length != 0)
|
||||
m.CompanyInvoiceEmail = CompanyInvoiceEmail.Text;
|
||||
else
|
||||
m.CompanyInvoiceEmail = UserEmail.Text;
|
||||
|
||||
m.CompanyVATNumber = CompanyVat.Text;
|
||||
|
||||
//Standard values
|
||||
m.ReputationTotal = 20;
|
||||
m.ReputationCurrent = 20;
|
||||
m.ForumPosts = 0;
|
||||
|
||||
m.IsVerified = true;
|
||||
m.TermsOfServiceAcceptanceDate = DateTime.Now.ToUniversalTime();
|
||||
m.CreatedByDeli = true;
|
||||
|
||||
//add the group
|
||||
m.Groups = new string[] { Group };
|
||||
|
||||
MemberProvider.SaveOrUpdate(m);
|
||||
|
||||
// send welcome mail - have to do it here so we have access to the password
|
||||
InstantNotification not = new InstantNotification();
|
||||
not.Invoke(Config.ConfigurationFile, Config.AssemblyDir, "DeliNewMember", m, m.Password);
|
||||
|
||||
// redirect to force Auth cookie to establish
|
||||
Response.Redirect(Request.RawUrl + "?ss=" + Guid.NewGuid().ToString());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetCurrency()
|
||||
{
|
||||
if (Member.CompanyCountry.ToLower() != null)
|
||||
{
|
||||
|
||||
switch (Member.CompanyCountry)
|
||||
{
|
||||
case "dk":
|
||||
CartProvider.SetCurrency(Currency.DKK);
|
||||
break;
|
||||
|
||||
case "us":
|
||||
case "ca":
|
||||
CartProvider.SetCurrency(Currency.USD);
|
||||
break;
|
||||
|
||||
default:
|
||||
CartProvider.SetCurrency(Currency.EUR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void CartNavNext_Click(object s, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
// create new member if not logged in
|
||||
if (Member == null)
|
||||
{
|
||||
CreateMember();
|
||||
}
|
||||
// persist details to member
|
||||
Member.Company = CompanyName.Text;
|
||||
Member.CompanyVATNumber = CompanyVat.Text;
|
||||
Member.CompanyCountry = CompanyCountry.SelectedValue;
|
||||
Member.CompanyAddress = CompanyAddress.Text;
|
||||
|
||||
if (CompanyInvoiceEmail.Text.Length != 0)
|
||||
Member.CompanyInvoiceEmail = CompanyInvoiceEmail.Text;
|
||||
else
|
||||
Member.CompanyInvoiceEmail = UserEmail.Text;
|
||||
|
||||
/*
|
||||
* if the member changes the billing country during the order we need to update their profile billing details and change
|
||||
* currency where applicable
|
||||
*/
|
||||
SetCurrency();
|
||||
|
||||
MemberProvider.SaveOrUpdate(Member);
|
||||
|
||||
//invalidate the Vat Number to force recheck;
|
||||
CartProvider.InvalidateVat();
|
||||
|
||||
// send to order review
|
||||
Response.Redirect("cart-review");
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// put up error and apologize
|
||||
DeliMessage.Text = "Oops! Sorry, little help here:<br />" + ex.Message + "<br />" + ex.InnerException + "<br />" + ex.StackTrace + "<br />";
|
||||
}
|
||||
}
|
||||
|
||||
protected void CartNavPrevious_Click(object s, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
// persist details to member
|
||||
Member.Company = CompanyName.Text;
|
||||
Member.CompanyVATNumber = CompanyVat.Text;
|
||||
|
||||
//invalidate the Vat Number to force recheck;
|
||||
CartProvider.InvalidateVat();
|
||||
|
||||
Member.CompanyCountry = CompanyCountry.SelectedValue;
|
||||
Member.CompanyAddress = CompanyAddress.Text;
|
||||
|
||||
if (CompanyInvoiceEmail.Text.Length != 0)
|
||||
Member.CompanyInvoiceEmail = CompanyInvoiceEmail.Text;
|
||||
else
|
||||
Member.CompanyInvoiceEmail = UserEmail.Text;
|
||||
|
||||
MemberProvider.SaveOrUpdate(Member);
|
||||
|
||||
// send to order review
|
||||
Response.Redirect("cart");
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// put up error and apologize
|
||||
DeliMessage.Text = "Oops! Sorry, little help here:<br />" + ex.Message + "<br />" + ex.InnerException + "<br />" + ex.StackTrace + "<br />";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart {
|
||||
|
||||
|
||||
public partial class CartDetails {
|
||||
|
||||
/// <summary>
|
||||
/// NotLoggedIn control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder NotLoggedIn;
|
||||
|
||||
/// <summary>
|
||||
/// MemberLogin control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::Marketplace.usercontrols.ourUmbraco.Login_novalidationscript MemberLogin;
|
||||
|
||||
/// <summary>
|
||||
/// DetailsForm control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder DetailsForm;
|
||||
|
||||
/// <summary>
|
||||
/// UserName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox UserName;
|
||||
|
||||
/// <summary>
|
||||
/// UserEmail control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox UserEmail;
|
||||
|
||||
/// <summary>
|
||||
/// UserConfirmEmail control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox UserConfirmEmail;
|
||||
|
||||
/// <summary>
|
||||
/// CompanyName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox CompanyName;
|
||||
|
||||
/// <summary>
|
||||
/// CompanyAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox CompanyAddress;
|
||||
|
||||
/// <summary>
|
||||
/// CompanyCountry control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::Marketplace.Controls.CountryDropDownList CompanyCountry;
|
||||
|
||||
/// <summary>
|
||||
/// CompanyPhone control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox CompanyPhone;
|
||||
|
||||
/// <summary>
|
||||
/// CompanyVat control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox CompanyVat;
|
||||
|
||||
/// <summary>
|
||||
/// CompanyInvoiceEmail control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox CompanyInvoiceEmail;
|
||||
|
||||
/// <summary>
|
||||
/// CartNavPrevious control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton CartNavPrevious;
|
||||
|
||||
/// <summary>
|
||||
/// CartNavNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button CartNavNext;
|
||||
|
||||
/// <summary>
|
||||
/// DeliMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal DeliMessage;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CartProgress.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Cart.CartProgress" %>
|
||||
<div class="cartProgress">
|
||||
<ul>
|
||||
<asp:repeater runat="server" ID="ProgressIndicator">
|
||||
<ItemTemplate>
|
||||
<li class="<%#Eval("StepClass") %>"><%# Eval("StepName") %></li>
|
||||
</ItemTemplate>
|
||||
</asp:repeater>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart
|
||||
{
|
||||
public partial class CartProgress : System.Web.UI.UserControl
|
||||
{
|
||||
public int CurrentStepIndex { get; set; }
|
||||
|
||||
private string[] stepArray;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
stepArray = new string[] { "Your Cart", "Your Details", "Review Your Order", "Checkout", "Order Complete" };
|
||||
var steps = stepArray.Select(x => new
|
||||
{
|
||||
StepName = x,
|
||||
StepClass = GetStepClass(x)
|
||||
});
|
||||
|
||||
ProgressIndicator.DataSource = steps;
|
||||
ProgressIndicator.DataBind();
|
||||
}
|
||||
|
||||
private object GetStepClass(string x)
|
||||
{
|
||||
var index = stepArray.ToList().IndexOf(x);
|
||||
var cssClass = "";
|
||||
if (index == 0)
|
||||
{
|
||||
cssClass += "first ";
|
||||
}
|
||||
if (index < CurrentStepIndex)
|
||||
{
|
||||
cssClass += "complete";
|
||||
}
|
||||
if (index == CurrentStepIndex)
|
||||
{
|
||||
cssClass += "current";
|
||||
}
|
||||
return cssClass;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart {
|
||||
|
||||
|
||||
public partial class CartProgress {
|
||||
|
||||
/// <summary>
|
||||
/// ProgressIndicator control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater ProgressIndicator;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CartReview.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Cart.CartReview" %>
|
||||
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="CartHolder">
|
||||
<table class="dataTable">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Product</th>
|
||||
<th>License Type</th>
|
||||
<th class="money">Price</th>
|
||||
<th class="count">Quantity</th>
|
||||
<th class="money">SubTotal</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<asp:repeater runat="server" ID="CartItems">
|
||||
<ItemTemplate>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><%#Eval("Name") %></td>
|
||||
<td><%#Eval("License") %></td>
|
||||
<td class="money"><asp:Literal ID="price" runat="server" /></td>
|
||||
<td class="count">
|
||||
<asp:label ID="Quantity" text='<%# Eval("Quantity") %>' runat="server" />
|
||||
</td>
|
||||
<td class="money"><asp:Literal ID="subtotal" runat="server" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</ItemTemplate>
|
||||
</asp:repeater>
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="TaxRow">
|
||||
<tr>
|
||||
<td colspan="3"></td>
|
||||
<td class="money">Tax:</td>
|
||||
<td class="money"><asp:literal runat="server" ID="TaxTotal" /></td>
|
||||
</tr>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<tr class="totals">
|
||||
<td colspan="3"></td>
|
||||
<td class="money">Total:</td>
|
||||
<td class="money"><asp:literal runat="server" ID="CartTotal" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<asp:PlaceHolder ID="VatBadMessage" runat="server" Visible="false">
|
||||
<div class="deliNotification">
|
||||
<h2>VAT Code not specified or is invalid or cannot be validated at this time</h2>
|
||||
<p>From what you have told us you live in a country that is subject to European VAT, but from what we can tell you either have not specifed a VAT code or the one you have given us is invalid.</p>
|
||||
<p>If you dont have a VAT code or you can't put your hands on it right now, dont worry you can still continue with your purchase but we had to add VAT to your order.</p>
|
||||
<p>If you would like to go back and give us a VAT code <asp:linkbutton runat="server" Text="click here" OnClick="CartNavPrevious_Click" />.</p>
|
||||
</div>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>Your Information</legend>
|
||||
|
||||
|
||||
<p><strong><asp:Literal ID="OrderMembername" runat="server"></asp:Literal></strong></p>
|
||||
<p><strong>Company:</strong></p>
|
||||
<p><asp:Literal ID="OrderCompany" runat="server"></asp:Literal></p>
|
||||
<asp:PlaceHolder runat="server" ID="VATDetails">
|
||||
<p><strong>VAT Details:</strong></p>
|
||||
<p><asp:Literal ID="OrderVATCode" runat="server"></asp:Literal></p>
|
||||
</asp:PlaceHolder>
|
||||
<p><strong>Invoice Email:</strong></p>
|
||||
<p><asp:Literal ID="OrderInvoiceEmail" runat="server"></asp:Literal></p>
|
||||
|
||||
|
||||
<div class="buttons">
|
||||
<asp:linkbutton runat="server" Text="< Make Changes" ID="CartNavPrevious" OnClick="CartNavPrevious_Click" />
|
||||
<asp:Button runat="server" Text="Checkout >" ID="CartNavNext" OnClick="CartNavNext_Click" />
|
||||
</div>
|
||||
</fieldset>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="CartEmptyHolder" Visible="false">
|
||||
<div>
|
||||
<p>Your cart is currently empty</p>
|
||||
</div>
|
||||
|
||||
</asp:PlaceHolder>
|
||||
@@ -0,0 +1,241 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Helpers;
|
||||
using Marketplace.Providers.Orders;
|
||||
using Marketplace.Providers.Accounting;
|
||||
using Marketplace.Controls;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart
|
||||
{
|
||||
public partial class CartReview : System.Web.UI.UserControl
|
||||
{
|
||||
private ICartProvider _cartProvider;
|
||||
public ICartProvider CartProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_cartProvider != null)
|
||||
{
|
||||
return _cartProvider;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cartProvider = (ICartProvider)MarketplaceProviderManager.Providers["CartProvider"];
|
||||
return _cartProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ICart _cart;
|
||||
public ICart ShoppingCart
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_cart != null)
|
||||
{
|
||||
return _cart;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cart = CartProvider.GetCurrentCart();
|
||||
return _cart;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
_cart = value;
|
||||
}
|
||||
}
|
||||
|
||||
private IMemberProvider _memberProvider;
|
||||
public IMemberProvider MemberProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_memberProvider != null)
|
||||
return _memberProvider;
|
||||
else
|
||||
{
|
||||
_memberProvider = (IMemberProvider)MarketplaceProviderManager.Providers["MemberProvider"];
|
||||
return _memberProvider;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMember _member;
|
||||
public IMember Member
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_member != null)
|
||||
return _member;
|
||||
else
|
||||
{
|
||||
_member = MemberProvider.GetCurrentMember();
|
||||
return _member;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Currency _currency = Currency.EUR;
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
CartItems.ItemDataBound += new RepeaterItemEventHandler(CartItems_ItemDataBound);
|
||||
}
|
||||
|
||||
void CartItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
// The data for this item in the repeatercontrol
|
||||
dynamic item = e.Item.DataItem as dynamic;
|
||||
|
||||
if (e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() != "Footer")
|
||||
{
|
||||
// set the price and subtotal amounts
|
||||
Literal price = (Literal)e.Item.FindControl("price");
|
||||
Literal subtotal = (Literal)e.Item.FindControl("subtotal");
|
||||
|
||||
price.Text = DeliCurrency.NiceMoney((decimal)item.Price, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
subtotal.Text = DeliCurrency.NiceMoney((decimal)item.SubTotal, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnPreRender(EventArgs e)
|
||||
{
|
||||
base.OnPreRender(e);
|
||||
if (ShoppingCart != null && ShoppingCart.CartItems.Count > 0)
|
||||
{
|
||||
LoadOrderInfo();
|
||||
LoadCart();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Redirect("cart");
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadOrderInfo()
|
||||
{
|
||||
if (Member != null)
|
||||
{
|
||||
var countryName = GetCountry(Member.CompanyCountry);
|
||||
OrderMembername.Text = Member.Name;
|
||||
OrderCompany.Text = Member.Company + "<br />" + Member.CompanyAddress + "<br />" + countryName;
|
||||
OrderInvoiceEmail.Text = Member.CompanyInvoiceEmail;
|
||||
OrderVATCode.Text = String.IsNullOrEmpty(Member.CompanyVATNumber) ? "NONE SPECIFIED" : Member.CompanyVATNumber;
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Redirect("cart");
|
||||
}
|
||||
}
|
||||
|
||||
private string GetCountry(string code)
|
||||
{
|
||||
|
||||
|
||||
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
|
||||
{
|
||||
|
||||
RegionInfo ri = new RegionInfo(ci.LCID);
|
||||
if (ri.TwoLetterISORegionName.ToLowerInvariant() == code)
|
||||
return ri.EnglishName;
|
||||
}
|
||||
|
||||
return "";
|
||||
|
||||
}
|
||||
|
||||
private void LoadCart()
|
||||
{
|
||||
var licenseProvider = (ILicenseProvider)MarketplaceProviderManager.Providers["LicenseProvider"];
|
||||
|
||||
_currency = ShoppingCart.Currency;
|
||||
|
||||
var cartItems = CartProvider.GetCartItems().Select(x => new
|
||||
{
|
||||
Id = x.LicenseId,
|
||||
Name = x.ListingItem.Name,
|
||||
License = licenseProvider.GetLicense(x.LicenseId).LicenseType.LicenseTypeAsString(),
|
||||
Price = GetLocalisedPrice(x.NetPrice),
|
||||
Quantity = x.Quantity,
|
||||
SubTotal = x.Quantity * GetLocalisedPrice(x.NetPrice)
|
||||
|
||||
});
|
||||
|
||||
CartItems.DataSource = cartItems;
|
||||
CartItems.DataBind();
|
||||
|
||||
// tax check and calcs
|
||||
double cartValue = 0;
|
||||
double taxValue = 0;
|
||||
|
||||
var vatValid = CartProvider.IsVatValid();
|
||||
var vatCountry = CartProvider.IsVatCountry();
|
||||
|
||||
|
||||
taxValue = CartProvider.GetLocalizedTaxTotal();
|
||||
|
||||
cartValue = CartProvider.GetLocalizedCartNetValue();
|
||||
|
||||
|
||||
|
||||
CartTotal.Text = DeliCurrency.NiceMoney((decimal)cartValue, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
|
||||
|
||||
// check to see if there is a tax value and if its a valid vat country
|
||||
// it will always enter this if it is denmark.
|
||||
if (taxValue > 0 && vatCountry)
|
||||
{
|
||||
//it will validate the vat for denmark also to display it.
|
||||
if (!vatValid && Member.CompanyCountry.ToLower() != "dk")
|
||||
{
|
||||
VatBadMessage.Visible = true;
|
||||
OrderVATCode.Text += " (NOT VALID)";
|
||||
}
|
||||
|
||||
TaxRow.Visible = true;
|
||||
TaxTotal.Text = DeliCurrency.NiceMoney((decimal)taxValue, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!vatCountry)
|
||||
{
|
||||
VATDetails.Visible = false;
|
||||
}
|
||||
|
||||
TaxRow.Visible = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private double GetLocalisedPrice(double p)
|
||||
{
|
||||
// do converison if not EUR
|
||||
if (_currency != Currency.EUR)
|
||||
return (double)DeliCurrency.ConvertFromEuro((decimal)p, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
else
|
||||
return p;
|
||||
}
|
||||
|
||||
protected void CartNavNext_Click(object s, EventArgs e)
|
||||
{
|
||||
Response.Redirect("cart-payment");
|
||||
}
|
||||
protected void CartNavPrevious_Click(object s, EventArgs e)
|
||||
{
|
||||
Response.Redirect("cart");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart {
|
||||
|
||||
|
||||
public partial class CartReview {
|
||||
|
||||
/// <summary>
|
||||
/// CartHolder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder CartHolder;
|
||||
|
||||
/// <summary>
|
||||
/// CartItems control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater CartItems;
|
||||
|
||||
/// <summary>
|
||||
/// TaxRow control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder TaxRow;
|
||||
|
||||
/// <summary>
|
||||
/// TaxTotal control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal TaxTotal;
|
||||
|
||||
/// <summary>
|
||||
/// CartTotal control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal CartTotal;
|
||||
|
||||
/// <summary>
|
||||
/// VatBadMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder VatBadMessage;
|
||||
|
||||
/// <summary>
|
||||
/// OrderMembername control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal OrderMembername;
|
||||
|
||||
/// <summary>
|
||||
/// OrderCompany control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal OrderCompany;
|
||||
|
||||
/// <summary>
|
||||
/// VATDetails control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder VATDetails;
|
||||
|
||||
/// <summary>
|
||||
/// OrderVATCode control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal OrderVATCode;
|
||||
|
||||
/// <summary>
|
||||
/// OrderInvoiceEmail control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal OrderInvoiceEmail;
|
||||
|
||||
/// <summary>
|
||||
/// CartNavPrevious control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton CartNavPrevious;
|
||||
|
||||
/// <summary>
|
||||
/// CartNavNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button CartNavNext;
|
||||
|
||||
/// <summary>
|
||||
/// CartEmptyHolder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder CartEmptyHolder;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MicroCart.ascx.cs" Inherits="Marketplace.usercontrols.Deli.Cart.MicroCart" %>
|
||||
<asp:placeholder runat="server" ID="microCartHolder">
|
||||
<span class="microCart"><a href="/Deli/Cart">View Cart (<asp:Literal runat="server" ID="NumItems" />)</a> <asp:Literal runat="server" ID="CartTotal" /></span>
|
||||
</asp:placeholder>
|
||||
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Marketplace.Interfaces;
|
||||
using Marketplace.Providers;
|
||||
using Marketplace.Providers.Accounting;
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart
|
||||
{
|
||||
public partial class MicroCart : System.Web.UI.UserControl
|
||||
{
|
||||
private int _numberOfItems = 0;
|
||||
private double _cartTotal = 0;
|
||||
private ICart cart;
|
||||
private Currency _currency = Currency.EUR;
|
||||
|
||||
|
||||
|
||||
protected void Page_PreRender(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
var cartProvider = (ICartProvider)MarketplaceProviderManager.Providers["CartProvider"];
|
||||
cart = cartProvider.GetCurrentCart();
|
||||
|
||||
_currency = cart.Currency;
|
||||
|
||||
_numberOfItems = cartProvider.GetCartItemCount();
|
||||
|
||||
|
||||
this.Visible = true;
|
||||
_cartTotal = cartProvider.GetLocalizedCartGrossValue();
|
||||
|
||||
|
||||
NumItems.Text = (_numberOfItems == 1) ? _numberOfItems + " Item" : _numberOfItems + " Items";
|
||||
CartTotal.Text = DeliCurrency.NiceMoney((decimal)_cartTotal, DeliCurrency.FromSymbol(_currency.ToString()));
|
||||
|
||||
if (_numberOfItems > 0)
|
||||
{
|
||||
microCartHolder.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
microCartHolder.Visible = false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Marketplace.usercontrols.Deli.Cart {
|
||||
|
||||
|
||||
public partial class MicroCart {
|
||||
|
||||
/// <summary>
|
||||
/// microCartHolder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder microCartHolder;
|
||||
|
||||
/// <summary>
|
||||
/// NumItems control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal NumItems;
|
||||
|
||||
/// <summary>
|
||||
/// CartTotal control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal CartTotal;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user