Silverlight项目笔记6:Linq求差集、交集&检查网络连接状态&重载构造函数复用窗口
1.使用Linq求差集、交集
使用场景:
需要从数据中心获得用户数据,并以此为标准,同步系统的用户信息,对系统中多余的用户进行删除操作,缺失的用户进行添加操作,对信息更新了的用户进行编辑操作更新。
所以需要通过对数据中心以及系统现有用户信息进行比较,分为三部分:
(1) Linq取差集,找出需要删除的用户数据,进行删除(USERNAME为唯一值字段)。
使用的是Except这个方法。

(2)使用Linq提供的Intersect方法,取得两个用户集合的交集,遍历检查进行更新。

(3)同样再次取差集,但这次是新的用户信息集合Except现有用户信息,获取需要添加的数据集合,执行添加操作。

2.检查网络连接状态
一般的网络请求方法都会返回连接的状态信息,比如iOS中NSURLConnection对应“- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response ”(当然现在推荐使用NSURLSession或AFNetworking等第三方库)
C#肯定也提供了类似的方法,即GetResponseAsync,获得请求的HTTP代码进行进行判断。

需要注意的是,在这之前还应该对URL地址输入框进行一个输入验证,因为可能输入的就不是一个URL地址。
对于ArcGIS的动态服务ArcGISDynamicMapServiceLayer以及切片服务ArcGISTiledMapServiceLayer,也可以通过InitializationFailed这个方法做一个简单的服务有效性验证。
3.重载构造函数复用窗口
使用场景:
需要做创建角色以及编辑角色两种操作,操作窗口显示的信息完全一样,差异在于编辑角色信息时不能修改角色名称,以及数据库交互略有差异。
所以完全可以只画一个窗口,针对不同场景做不同操作。通过重载构造函数(编辑操作对应的构造函数需要传入角色信息),并设定一个字段标识方便差异化处理即可。
对于窗口中显示是否能够编辑,对输入框的IsReadOnly属性进行绑定,编辑操作时属性值为true,只读;
对于窗口名称,同样做绑定处理,根据不同操作显示不同名称;
对于数据库交互差异,同样可以通过判断标识符canEdit对差异化部分分类处理。



Silverlight项目笔记6:Linq求差集、交集&检查网络连接状态&重载构造函数复用窗口的更多相关文章
- Android项目实战(五十三):判断网络连接是否为有线状态(tv项目适配)
一般对于android手机,我们可以通过sdk提供的方法判断网络情况 /** * 获取当前的网络状态 :没有网络-0:WIFI网络1:4G网络-4:3G网络-3:2G网络-2 * 自定义 * * @p ...
- Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件
最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...
- Silverlight项目笔记7:xml/json数据解析、TreeView、引用类型与数据绑定错误、图片加载、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题
1.xml/json数据解析 (1)xml数据解析 使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应 ...
- Silverlight项目笔记8:层次布局、客户端读取shp、ExecuteCountAsync、柱状图、url传参
1.层次布局 由于地图窗口和菜单栏都在一个父容器内,在浏览器缩小到一定程度点击地图弹出infoWindow时,会出现菜单栏遮挡infoWindow中间部分的现象,于是通过设置Canvas.ZIndex ...
- Silverlight项目笔记5:Oracle归档模式引起的异常&&表格控件绑定按钮
1.Oracle归档模式产生日志文件引起数据库异常 连接数据库失败,提示监听错误,各种检查监听配置文件,删除再添加监听,无果. sqlplus下重启数据库数据库依然无果,期间碰到多个错误提示: ORA ...
- Silverlight项目笔记4:初识Prism以及IoC
1.Prism Prism是由微软Patterns & Practices团队开发的针对WPF和Silverlight的MVVM框架. Prism的几个关键点: (1)启动器类UnityBoo ...
- Silverlight项目笔记3:Silverlight RIA Services缓存引发的问题
问题描述:使用Silverlight的RIA Services进行数据库更新操作,重复提交时发现异常,SubmitOperation发生错误,提示实体类冲突,检查发现之前删除的数据竟然还存在(数据库 ...
- Silverlight项目笔记2:.svc处理程序映射缺失导致的WCF RIA Services异常
在确定代码.编译结果和数据库都正常的情况下,无法从数据库取到数据.错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相 ...
- Linq 取差集 交集等
string goodsList = context.Request.Form["goodsList"]; if (!string.IsNullOrEmpty(goodsList) ...
随机推荐
- SVN上传代码
概述 SVN上传代码 使用SVN工具上传代码到新浪SAE 1.下载SVN工具http://tortoisesvn.net/downloads.html 2.创建一个文件夹,Checkout,输入SAE ...
- ubuntu启动器和dash里应用图标不正常
在以下目录: /usr/share/applications~/.local/share/applications 添加或编辑(pycharm图标不正常):jetbrains-pycharm.desk ...
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...
- jqmobile小技巧
jqmobile API好像是不全,很多查不到.记录下自己的发现: 1.popup:data-position-to能够指向class或者id:data-position-to="#id|| ...
- 自动化基础普及之selenium是啥?
Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍. Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? ...
- 在Kibana上格式化字段,更好的在dashboard上展示
一.为什么要格式化? 接着之前的文章-利用 ELK系统分析Nginx日志并对数据进行可视化展示.下面是http访问的日志,里面有一个字段,bytes 传输的字节,如下图: 绿色框框内选中的就是本次请求 ...
- ASP.NETC#通用扩展函数之TypeParse 类型转换方便多了
用法: var int1 = "2".TryToInt();//转换为int失败返回0 var int2 = "2x".TryToInt(); var int3 ...
- .NET中的枚举(Enum)
摘要:.NET中的枚举分为简单枚举和标志枚举,这次主要总结一下标志枚举适用条件,以及它的使用方法,并在文章的最后列举枚举使用的一些规范. 在刚接触.NET的枚举时,只用简单的枚举,对于标记枚举,只知道 ...
- 《Out of control》阅读笔记(一)
Out Of Control 说实话,当初买这本书起源于知乎诸位学问人的推荐,脑子一热就买了.为了不浪费这几十块钱,细致了看完了前三章,买来一看才发现原来这本书居然跟计算机有很深刻的关系.其实更准确地 ...
- 使用Eclipse Installer安装Eclipse
由于一些原因,需要重新安装Eclipse,登陆到Eclipse官网下载Eclipse时发现社区又推出了Eclipse Installer.所以就下下来尝尝鲜. 刚开始确实有些选项不太明白,不过现在挺喜 ...