小编Ian*_*Ian的帖子

Criteria SpatialRestrictions.IsWithinDistance NHibernate.Spatial

有没有人实现过这个,或者知道是否难以实现这个/有任何指针?

public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance)
{
    // TODO: Implement
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

来自NHibernate.Spatial.Criterion.SpatialRestrictions

我可以在hql中使用"NHSP.Distance(PROPERTY,:point)".但是想要将此查询与我现有的Criteria查询相结合.

目前我正在创建一个粗糙的多边形,并使用

criteria.Add(SpatialRestrictions.Intersects("PROPERTY", myPolygon));
Run Code Online (Sandbox Code Playgroud)

编辑 通过在SpatialRelationCriterion上重载构造函数来获得原型,添加新的SpatialRelation.Distance

public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance)
        {
            return new SpatialRelationCriterion(propertyName, SpatialRelation.Distance, anotherGeometry, distance);
        }
Run Code Online (Sandbox Code Playgroud)

为SpatialRelationCriterion添加了一个新字段

private readonly double? distance;

public SpatialRelationCriterion(string propertyName, SpatialRelation relation, object anotherGeometry, double distance)
            : this(propertyName, relation, anotherGeometry)
        {
            this.distance = distance;
        }
Run Code Online (Sandbox Code Playgroud)

编辑ToSqlString

object secondGeometry = Parameter.Placeholder;
                if (!(this.anotherGeometry is IGeometry))
                {
                    secondGeometry = columns2[i];
                }

                if …
Run Code Online (Sandbox Code Playgroud)

.net nhibernate spatial geospatial criteria-api

95
推荐指数
0
解决办法
2903
查看次数

服务帐户Google Analytics OAuth AccessType =离线C#

我已获得可访问Google Analytics帐户的凭据,

我希望使用Google Analytics核心报告API http://code.google.com/apis/analytics/docs/gdata/home.html

我找到了使用用户名/密码调用setUserCredentials的示例,但是看到这些注释不太安全/请求限制较低(并且在最新客户端中不存在).

此外,我似乎使用oauth的示例,但需要用户交互并授予用户谷歌帐户的访问权限.

但是,我希望运行一项不需要任何用户交互的服务,并连接到预定义的谷歌帐户(与查看它的用户无关).

然后,我可以将结果存储在数据库中,最终用户可以从数据库中查询结果.

我第一次登录时看到过有关使用AccessType = Offline的信息,然后返回访问令牌和refreshtoken. http://code.google.com/apis/accounts/docs/OAuth2WebServer.html#offline

但在我的示例中,最终用户永远不会登录到该应用程序.我可以有一个单独的管理应用程序获取刷新令牌,并将刷新令牌存储在配置/查找表中吗?然后,主应用程序可以使用从配置/查找表中提取的刷新令牌,并获取访问令牌以便能够查询Google Analytics帐户.

我正在寻找一个使用AccessType = Offline的C#示例,并分离获取刷新令牌并使用刷新令牌获取访问令牌以查询Google Analytics(分析)帐户.

c# asp.net oauth google-analytics-api

11
推荐指数
1
解决办法
9027
查看次数

Safari和Chrome修改后退按钮上的表单数据

我在Safari和Chrome中遇到了这个奇怪的问题(适用于Firefox和IE).

  1. 我从这个复选框列表开始,其中第一个项目"A"已选中,项目"B"和"C"未选中
  2. 然后我导航到另一个页面,该页面命令出现在复选框列表中的项目
  3. 我改变了列表中项目的顺序,现在它变为'B','A','C'
  4. 我按下后退按钮
  5. 从服务器重新获取页面(我已禁用缓存),我检查从服务器发送的响应,仍检查项目"A",不再是列表中的第一项.
  6. !!!奇怪的行为!!! 页面已在浏览器中加载新订单"B","A","C",但未选中"A",而是选中第一个"B"项.

不知何故,按下后退按钮似乎已恢复检查项目的位置,并且已丢弃从服务器发送的表单数据.

刷新页面时,订单为"B","A","C"和项目"A"现在已经过检查,一切正常.

在两种情况下,Page都将IsPostBack设置为false.

这是Web工具包中的错误吗?

尝试,清除缓存,进入隐私浏览模式,清除历史记录.还是一样的行为.

c# safari google-chrome back-button

7
推荐指数
2
解决办法
2312
查看次数

如何在内存中实现CQS更改?

观看了Greg Yound关于DDD的视频

http://www.infoq.com/interviews/greg-young-ddd

我想知道如何在内存更改时使用DDD实现命令查询分离(CQS)?

使用CQS,您有两个存储库,一个用于命令,一个用于查询.以及两个对象组,命令对象和查询对象.命令对象只有方法,没有可以公开对象形状的属性,不能用于在屏幕上显示数据.另一方面,查询对象用于向屏幕显示数据.

在视频中,命令总是转到数据库,因此您可以使用查询存储库来获取更新的数据并在屏幕上重新显示.

您是否可以在ASP.NET中使用CQS和编辑屏幕,在内存中进行更改并且在更改持久保存到数据库之前需要使用更改多次更新屏幕?

例如

  1. 我从查询存储库中获取一个查询对象并将其显示在屏幕上
  2. 我点击编辑
  3. 我从查询对象存储库中重新获取查询对象,并在编辑模式下将其显示在表单上
  4. 我在表单上更改了一个值,该值自动恢复并获取命令对象并发出相关命令
  5. 怎么做:我现在需要显示更新的对象,因为命令对计算字段进行了更改.由于命令对象尚未保存到数据库,因此无法使用查询存储库.而使用CQS,我并不是要公开要在屏幕上显示的命令对象的形状.如何通过屏幕上显示的更新更改返回查询对象.

我能想到的几个可能的解决方案是拥有会话存储库,或者从命令对象获取查询对象的方法.或者CQS不适用于这种情况吗?

在我看来,在视频中的变化会直接传递到数据库,我还没有找到一个带有CQS的DDD示例,它解决了对域对象进行批量更改以及更新修改后的域对象视图的问题.最后发出一个命令来保存域对象.

domain-driven-design repository-pattern cqrs

6
推荐指数
1
解决办法
2123
查看次数