http://code.google.com/p/sutekishop/downloads/list
关于该项目的BLOG:http://mikehadlow.blogspot.com/search/label/Suteki%20Shop, 只可惜内容少的可怜:(
首先,我们要运行下载包中的SQL脚本以生成数据库并初始化相应数据。SQL文件位于Database文件夹下的create_database.sql(创建数据库和表),insert_static_data(初始化数据)。 因为作者是个英国人,其所使用的数据库脚本与我们国内的中文版SQL会有所不同,而本人所运行的SQL2005是中文的,所以如直接运行create_database中的内容可能会出现一些异常。好在后来我将其中的一些导致出错的内容从create_database中摘了出来发现能安装了,所以下面就将我修改过的
sql脚本内容发上来(文章末尾),大家下载运行一下就可完成数据库的安装了。
接着,我们就在来一下最终的运行效果:)
当点击页面右下方的Login链接时,会显示登陆提示框,我们在这里填入:
Password: 123123
点击“SubmitQuery”按钮:
商品分类,商品信息,所在地信息,User信息等等。
(注:目前列表只显示Role为Administrator或Order Processor的信息)
Email: test@sample.com
Password :123123
Role:Customer
然后点击“Save”按钮:)
这样我们就可以在前台以该用户身份进行登陆了。
同理,我们再去添加“Categories”,“Countries”等信息之后,相应的结果如下所示:
下面以刚才新创建的test@sample.com帐号登陆系统,点击“Movie”-->“动作片”:
我们点击该分类下的电影,比如这个“勇闯夺命岛”之后,进入到“购买流程”。
在接下来的付款环节里,就要填写相应的支付卡,地址等信息了。这个流程只要在线买过东西的朋友应该不会陌生。
Suteki.Shop\Suteki.Common\Validation\ValidationExtensions.cs
{
if (IsString)
{
var trimmedValue = Regex.Replace(value.ToString(), "[^0-9]", "");
trimmedValue.Label(label).IsNumeric().WithLengthRange(13.To(19));
var numbers = trimmedValue.Trim().Reverse().Select(c => int.Parse(c.ToString()));
var oddSum = numbers.AtOddPositions().Sum();
var doubleEvenSum = numbers.AtEvenPositions().SelectMany(i => new[] { (i * 2) % 10, (i * 2) / 10 }).Sum();
//if ((oddSum + doubleEvenSum) % 10 != 0)
//{
// throw new ValidationException(label,"{0} is not a valid credit card number".With(label));
//}
}
return this;
}
这样,系统在成功提交定单信息之后,就会将详细信息显示出来。
到这里,用户购买并下单的流流程就走完了,但整个业务流程并没结束,我们还要切换回管理员身份去查看并进行相应操作:
好了,主要的业务流程就介绍到这里了。
Suteki.Common:该项目包括一些基础的功能类,扩展方法,以及Controller,Model,Filter的基类声明(会在以后文章中分别说明),还包括一些Service接口定制,第三方插件扩展。另外还有相应的ViewData基类和相关附属类型声明。
Suteki.Shop:该项目包括对 Controller,Model,Filter等的具体设计和功能实现。Service, ViewData具体定义和实现,HtmlHelpers扩展,Repositories(CRUD)封装,Views文件夹等等。