Wednesday, 14 December 2016

Canadian Immigrant Salary Statistics

温哥华港湾(BCbay.com)Luna 综合报道:本周一(12月12日),加拿大统计局公布了一份2014年的“新移民收入及迁徙简报”,报告中对比了2004年-2014年新移民抵达加拿大一年后的收入,并分析了新移民居住地的情况。报告还指出,不同类别移民的收入也不一样,而且差距甚大。
  来加10年移民年收入中位数3.3万
  据悉,该报告根据新移民的报税收入数据得出。早于2004年定居的移民,2005年的收入中位数估计是16,800元。这批移民随着定居时间更久,在这片被称为“世界中心”的北美大地上努力前行,收入也在不断上涨,2009年为$26,000加元,到了2014年,则增至$33,000加元。2011及2012年新移民的在移民加国后一年的收入中位数为21,000元,随后,2013年新移民的在移民加国后一年的收入中位数比其多100元。
  尽管难民赚取的薪金比非难民低,但是,随着来加时间更久,收入还是有所上升。2004年抵加的难民,一年后收入中位数是$14,700加元,2009年收入是$18,800加元,2014年收入是$24,000加元。
  经验类移民收入最高
10.png
  报告还分析了不同类别移民的收入,发现差距较大,其中经验类移民的收入最高。
  据悉,2009年至2014年抵加的所有移民收入中位数为$24,000加元。其中,加拿大经验类别移民的收入中位数高达$50,000加元。
  在2014年定居的移民中,国际留学生、海外劳工、申请难民或持有临时居留签证的占了45%。相比之下,2013年定居的移民中,上述人士所占比例偏低一些(36%)。
  至于在1980至2014年拥有加拿大经验的移民,在2014年申报收入中位数估计是37,000元。同期,没有加国经验的移民同一年只赚取32,000元,前者收入足足高出16%。
  由此可见,具备“加拿大经验”对于工作收入是多么关键。其实,在求职时,零工作经验已经让不少新移民被拒之门外。
  移民收入在加拿大属哪个水平
01.png
  参考统计局今年较早前发布的有关2014年加拿大家庭税后收入中位数的报告,不难发现,和加拿大人的总体收入水平比较,移民的收入处于中上游位置。具体数据是,2014年加拿大所有家庭的税后收入中位数为$78,870加元,2014年加拿大所有收入人群(约2,662万人)的收入中位数是$32,790加元。安省所有家庭的税后收入中位数是78,790加元。卑省为76,770加元。
2.png
  看到这样的数据,我们必须为自己鼓掌!众所周知,新移民在加国的打拼多么艰辛,很多移民都会面临语言、学历、工作经历不被承认的众多难题,生活中也会遭遇各种困扰。在之前所进行的有关移民职场的调查中,发现移民在工作中遭遇的不公主要包括工作环境差,被歧视,被骚扰等等。
  回忆一下自己当初来加国的日子,遭到了多少不公的待遇?
  新移民选择安省定居比例最高
  2014年有87%已报税3年的移民选择继续定居在最初抵加的省份。亚省和安省移民比例最高,分别达到了92%和91%。其他省份留住的移民比例分别是卑诗省88%、萨斯喀彻温省84%、魁北克省83%,曼尼托巴省82%。海洋省份比例最低,为53%。
  来自不同地区的移民收入比较
  报告还对来自不同地区的移民的收入情况作了分析,其中来自美国、英国、(英国以外)欧洲的移民收入偏高。英国的移民收入最高,2014年的平均收入为$60,000,来自亚洲的移民收入更低一些($25,000加元)。最低的则是来自非洲、中乐、大西洋岛国和印度洋地区的移民(21,000加元)。
  这些地区移民2014年的平均收入分别是:
3.png
  此外,根据加拿大移民部的最新数据,移民加拿大的人数在持续上升,今年1月至9月,超过2万中国人移民加拿大。目前,中国是加拿大新移民的第四大来源国,排在菲律宾、印度与叙利亚之后。
  移民越来越多了,究竟会是人多力量大,大家的收入都直线上升?还是人多了竞争便激烈了,有人欢喜有人愁?
5.png
  但愿,老移民薪水涨,新移民也跟上步伐。

Monday, 12 December 2016

卡城最赞的滑冰场都在这里



加国冬天最经典的运动非滑雪莫属了!12月中旬,卡城大部分滑雪场都要开放了,有和寒风亲密接触的室外场馆,也有不受天气限制的室内场馆。挑一个你最喜欢的,带上滑雪板去战个痛快!

Bowness Park Lagoon

地址:8900 48 Ave. N.W.
这个滑雪场人气颇高,2015年1月整修翻新后,服务比以前更加周到了,Skate
Shop里可以租到滑板、头盔、平衡杆……一应俱全,还提供磨冰刀的服务。如果你自带装备,磨冰刀是免费的。滑雪场由卡尔加里大学户外运动中心(University of Calgary Outdoor Centre)运营。

Carburn Park

地址:67 Riverview Dr. S.E.
这家滑雪场自从2012年底开放起,就成了当地社区居民的最爱!附近有许多长凳和野餐桌,滑完雪还可以在这里喝杯热巧克力!

Olympic Plaza

地址:228 8 Ave. S.E.
如果你注重周边的景色,那么千万别错过这家滑雪场!这里非常漂亮,适合晚上悠闲地滑上一场,或者中午小小地溜达一下。在西南角有一间Skate Hut,可以租用滑雪装备,磨冰刀。这个滑雪场从早上10点开到晚上9点。

Prairie Winds Park (rink is closed this winter)

地址:223 Castleridge Blvd. N.E.
这家公园的滑雪场由市政府经营,坐落于Westwind社区。夏天,这里有喷泉和浅水池,到了冬天,这里就变成了理想的滑雪场,无论是越野滑雪、雪橇滑雪还是溜冰,都适合。
虽然今年冬天公园的滑雪场没有开放,但是公园风光也是相当迷人,不妨来走走哦。

Prince's Island Lagoon

地址:4 Street and 1 Avenue S.W.
这里的滑雪场很有特色:2011年市政府引进了充气橡胶坝,阻断了水流,形成了这个滑雪场。这里是免费的!夜晚,周围的灯光让人目眩神迷,和白天又是全然不同的景象。滑累了还可以到附近的Barley Mill喝一杯哦。

Rosemont Rinks

地址:2807 10 St. N.W.
这片滑雪场在联邦公园(Confederation Park),适合全家一起来玩。冰面维护得非常好,赢得了卡尔加里最佳户外溜冰场的大奖,如果你重视场地质量,千万不要错过这家哦!

Southland Leisure Centre

地址:2000 Southland Dr. S.W., 403-648-6555
这家的滑雪场是室内场馆,专门设置了亲子滑雪时间,允许小朋友们进场溜冰。成人入场票价6.2加元,7-17岁儿童半价,2-6岁只要1.55加元。在Pro-shop还可以租借装备、打磨冰刀。

Thomson Family Park

地址:1236 16 Ave. S.W.
这是卡尔加里新建的一座公园,只在10月中旬开放。这里有操场、公共艺术作品区和野餐区,滑雪之余还有好多好玩的地方呢!

University of Calgary Olympic Oval

地址:2500 University Dr. N.W., 403-220-7954, oval.ucalgary.ca
这里的滑雪体验超级棒!奥运会运动员都在这里训练,质量无疑是杠杠的。如果你想要体验一下专业的400米赛道,多多关注oval.ucalgary.ca上面的信息,别错过公共开放日哦!

Westside Recreation Centre

地址:2000 69 St. S.W., 403-531-5875
从9月到次年3月,这家巨大的室内场馆都有开放。这里还有一处冰湖,非常适合初学者练习。入场费是成人15加元,10-17岁儿童9加元,2-9岁儿童4加元,但必须有成人陪伴。
需要注意的是,这里不提供装备出租,所以要自带啦。

Rinks in the Rockies, The Pond

地址:7th Avenue at Mallard Alley, Canmore
这家滑雪场在坎莫尔市中心,周边有山川风光,配有带暖气的瞭望台,可以享受山川美景。在山里游玩一天后,来这里滑滑雪溜溜冰,也是不错的娱乐项目。这家滑雪场一直开到晚上10点,附近的Gear Up Sport可以租到滑雪用具。

Lake Louise

地址:111 Lake Louise Drive, Lake Louise
压轴来了!这个如童话世界般的滑雪场虽然偏远,但绝对值得你驾车前往。CNN曾宣称它是2014年度世界最佳的滑雪场之一,纤尘不染的世外美景绝对令你难忘。
冰面维护良好,每天都有清洁,附近还筑有可爱的冰雪城堡。在旅馆大堂旁边的Chateau Mountain Sports和Wilson Mountain Sports都可以租借滑雪装备。半天的票价是11加元,全天是15加元。

Saturday, 10 December 2016

.asp ajax control


without ajax dropdown box cause auto post back which causes screen flicker
with ajax post back is async, no flicker


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Products.aspx.cs" Inherits="InventoryApp.Web.Products" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                 <div>
   
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
             DataSourceID="SupplierSource" DataTextField="Company"
            DataValueField="Id" Height="16px" Width="244px">
        </asp:DropDownList>
        <asp:ObjectDataSource ID="SupplierSource" runat="server" SelectMethod="GetAll"
            TypeName="InventoryApp.Web.Inventory.Services.InventoryServiceClient"></asp:ObjectDataSource>
        <br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="ProductSource" ForeColor="#333333" GridLines="None" Width="556px" DataKeyNames="Id" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price" />
                <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" />
                <asp:BoundField DataField="Supplier" HeaderText="Supplier" SortExpression="Supplier" />
            </Columns>
            <EditRowStyle BackColor="#999999" />
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#E9E7E2" />
            <SortedAscendingHeaderStyle BackColor="#506C8C" />
            <SortedDescendingCellStyle BackColor="#FFFDF8" />
            <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
        </asp:GridView>
        <asp:ObjectDataSource ID="ProductSource" runat="server"
            SelectMethod="GetProductsBySupplier"
            TypeName="InventoryApp.Web.Inventory.Services.InventoryServiceClient">
            <SelectParameters>
                <asp:ControlParameter ControlID="DropDownList1" Name="id"
                    PropertyName="SelectedValue" Type="Int32" />
            </SelectParameters>
        </asp:ObjectDataSource>
   
                     <br />
                     <asp:TextBox ID="TextBox1" runat="server" Height="24px" Width="203px" ></asp:TextBox>
                     <ajaxToolkit:CalendarExtender ID="TextBox1_CalendarExtender" runat="server" BehaviorID="TextBox1_CalendarExtender" TargetControlID="TextBox1" />
                     <br />
                     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                     <br />
   
    </div>
            </ContentTemplate>
        </asp:UpdatePanel>

     
    </form>
</body>
</html>


Thursday, 8 December 2016

.asp layers, external project access wcf service


presentation -> service -> business -> data

presentation reference -> service
service reference -> business, domain
business reference -> data, domain


run service project -> right click IIS icon -> click service address


click->service.svc


copy web address


open new empty web form solution/project in new visual studio platform(external project)

right click on solution -> add -> service reference


paste address -> go -> select service -> ok

//webform.cs

public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                var proxy = new test_service.InventoryServiceClient(); //call external service

                var suppliers = proxy.GetAll(); //consume service

                GridView1.DataSource = suppliers;

                DataBind();
            }
        }
    }

external service provide gridview









Saturday, 3 December 2016

.asp wcf service


presentation -> wcf service ->database

add wcf_service as reference to presentation
add entity_frame as reference to wcf_service
copy connectionstring from app.config in entity_frame, paste it to web.config in both presentation and wcf_service


add service to wcf_service project


after rename service, make sure name also changed in markup view


//service_interface.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using Wcf_service.domain;

namespace Wcf_service
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface service_interface
    {

        [OperationContract]
        List<dto> get_instructor();

        [OperationContract]
        void add_instructor(dto instructor);

        // TODO: Add your service operations here
    }


    // Use a data contract as illustrated in the sample below to add composite types to service operations.
    //[DataContract]
    //public class CompositeType
    //{
    //    bool boolValue = true;
    //    string stringValue = "Hello ";

    //    [DataMember]
    //    public bool BoolValue
    //    {
    //        get { return boolValue; }
    //        set { boolValue = value; }
    //    }

    //    [DataMember]
    //    public string StringValue
    //    {
    //        get { return stringValue; }
    //        set { stringValue = value; }
    //    }
    //}
}

--------------------------------------------------------
//service_method.cs //implement service interface
using ClassLibrary1; //entity_frame library
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using Wcf_service.domain;

namespace Wcf_service
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    // NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
    public class service_method : service_interface
    {
        public void add_instructor(dto instructor)
        {           
            var i = new Instructor();
            i.FirstName = instructor.FirstName;
            i.LastName = instructor.LastName;

            var db = new CTTIEntities();
            db.Instructors.Add(i);
            db.SaveChanges();
        }

        public List<dto> get_instructor()
        {
            var db = new CTTIEntities();

            var instructors = db.Instructors.
                Select(x => new dto
                {
                    Id = x.Id,
                    FirstName = x.FirstName,
                    LastName = x.LastName
                }).ToList();

            return instructors;
        }
    }
}

--------------------------------------------------------
//~/wcfservie/domain/dto.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Wcf_service.domain
{
    public class dto
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
}


add service reference to presentation
right click on reference -> add service reference -> discover -> expand tree view


select service reference under presentation as data source
add objectdatasource to listview




//default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Wcf_service.domain;

namespace wcf
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            var instructor = new dto();
            instructor.FirstName = TextBox1.Text;
            instructor.LastName = TextBox2.Text;

            //consume service
            var proxy = new wcf_service_reference.service_interfaceClient();
            proxy.add_instructor(instructor);
            Page.DataBind();
        }
    }
}



Friday, 2 December 2016

最全中加直飞航班信息汇总

2016年第一季度前往枫叶之国游览的中国游客超过8.8万人次,让中国超越法国,成为继英国、美国之后,加拿大第三大旅游客源国。同时,随着中国赴加游客的不断增长,中加之间的航线需求日益上涨,航空方面当天也传来利好消息,各大航空公司纷纷开通中国直飞加拿大航线,通往各个华人聚集的城市。
  加拿大总理特鲁多访华时,突破了原本在华开设5个新签证中心的计划,一口气和中国谈下7个新签证中心,也为了满足迅速增长的旅游者和华人的需求。
  接下来小编将会整理出最新最全的中国至加拿大直飞航线,预计到2016年年底,随着新增航线陆续开始运营,中加之间的客座承载量将增加四成左右。届时,中国将有13个门户城市拥有直飞加拿大的国际航班,包括:北京、上海、广州、成都、沈阳、厦门、郑州、昆明、南京、杭州、青岛、重庆、天津。
  目前已有飞机往返温哥华的中国城市包括:北京、上海、广州、成都、沈阳、昆明与厦门。(具体时间按当日飞机时刻表为准)
  ① 加拿大航空:上海、北京起飞
u7zu7chofndd.png
  ② 中国国际航空:北京起飞
1.png
  ③ 东方航空:上海起飞
3.jpeg
  ④ 南方航空:广州起飞
4.png
  ⑤ 海南航空:北京起飞
5.png
  ⑥ 国泰航空:香港起飞
556.png
  ⑦ 四川航空:沈阳起飞
7.png
  开通新航班的中国城市则包括:重庆、天津、厦门、杭州、青岛和郑州。(具体时间按当日飞机时刻表为准)
  ① 四川航空:郑州起飞
1.png
  定期直航以后,郑州到加拿大温哥华,全程只需要十一二个小时即可到达目的地,比原来节约至少6个小时以上。
  ② 东方航空:昆明、南京起飞
22.png
  据悉,江苏省政府国内时间11月30日召开新闻发布会宣布,南京至加拿大温哥华直飞航线将于12月20日正式通航!东方航空将现有部分从上海浦东飞温哥华航线的,调整为昆明-南京-温哥华往返客运航线,初步定为2016年12月20日首航。目前网站购票系统已经放票。
  首航特价也非常优惠:往返经济舱票价只需要990元,公务舱机票8800元。(不含税)
  ③ 首都航空:杭州、青岛起飞
3.png
  12月30日,首都航空将开通杭州飞加拿大温哥华的航线,途中经停青岛(停2个小时)。每周三、五、七执飞,在青岛停留2个小时,空中飞行时间在13个小时左右。此条航线选用的是双通道宽体机A330执飞,商务舱36席、经济舱186席,也是首都航空开辟北美洲际航线的第一站。
  开航期间有促销价。比如2016年12月30日去,2017年1月6日回为:往返不含税仅为864元。
  ④ 天津航空:重庆、天津起飞
bflckgryfse6_800x0.jpeg
  天津航空已经通过民航局申请,开通重庆-天津-温哥华航线。开通正在筹备阶段,很快就能首航。(班次:每周执飞4班,使用A330客机)
  ⑤ 海南航空:天津起飞
guczyb5vw5fd_800x0.jpeg
  海南航空已经通过民航局批准,将很快开通天津-温哥华航线。(班次:每周5班。使用A330客机)
  中加直航城市增加到了13个,相信未来随着中加关系的日渐升温,以及2018加中旅游年的到来,会有越来越多的往返中国和加拿大之间的航班开通,那么从国内来往加拿大旅游、探亲、游学无疑将更加方便经济了