예제 #1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            ((PivotItem)bodyPiv.Items[0]).Header = "基本信息";

            if (e.NavigationMode == NavigationMode.New)
            {
                _fieldId = int.Parse(NavigationContext.QueryString["fid"].ToString());
                _field = _fieldDataAccessLayer.Get(_fieldId);
                _fieldCropList = _field.Plantings;
                _fieldSuveryResult.FieldPoints = GeoHelper.ParsePointsFromString(_field.Geo, ';', ',');

                int plantingCount = _fieldCropList.Count;
                esRegion.DefaultValue = _field.RegionName;
                
                _regionDataContext.GetAllRegions((regionData) =>
                {
                    _regionData = regionData;
                    esRegion.DataContext = new ExpanderSelectorDataContext(_regionData.ToList<object>());
                    _cropDataContext.GetAllCrops((cropData) =>
                   {
                       _cropData = cropData;
                       for (_cropTabIndex = 0; _cropTabIndex < plantingCount; _cropTabIndex++)
                       {
                           int index = _cropTabIndex + 1;
                           string headerTxt = "作物" + index;
                           var content = new NyAppWP.Controls.FieldCropTab(_cropData, _fieldCropList[_cropTabIndex], false);
                           bodyPiv.Items.Add(new PivotItem()
                           {
                               Header = headerTxt,
                               Content = content,
                           });
                       }
                       txtFieldArea.Text = _field.Area.ToString("f2", CultureInfo.InvariantCulture);
                       txtFieldName.Text = _field.FarmlandName;
                   });
                });
            }
            //PhoneApplicationService.Current.State.Add("fieldSurveyResult", fsRst);
            //if (PhoneApplicationService.Current.State.ContainsKey("fieldSurveyResult"))
            //{
            //    Object obj;
            //    PhoneApplicationService.Current.State.TryGetValue("fieldSurveyResult", out obj);
            //    FieldSurveyResult fr = (FieldSurveyResult)obj;
            //    if (fr.FieldID == _guid.ToString())
            //    {
            //        var ptList = fr.FieldPoints.ToList();
            //        System.Text.StringBuilder sb = new System.Text.StringBuilder();
            //        foreach (GeoCoordinate coor in ptList)
            //        {
            //            sb.Append(coor.Longitude.ToString("#0.000000")).Append(",").Append(coor.Latitude.ToString("#0.000000")).Append(";");
            //        }

            //        this._fieldGPSPoints = sb.ToString();
            //        this._area = fr.FieldArea;
            //    }
            //}
        }
예제 #2
0
 public FieldWarpper(Field field)
 {
     this.UniqueId = field.UniqueId;
     this.Area = field.Area;
     this.CreatedDate = field.CreatedDate;
     this.FarmlandID = field.FarmlandID;
     this.FarmlandName = field.FarmlandName;
     this.Geo = field.Geo;
     this.OwnerID = field.OwnerID;
     this.Plantings = field.Plantings;
     this.RegionID = field.RegionID;
     this.RegionName = field.RegionName;
 }
예제 #3
0
 public FieldCreator()
 {
     InitializeComponent();
     ((PivotItem)bodyPiv.Items[0]).Header = "基本信息";
     _guid = new Guid();
     _cropDataContext = new CropDataContext();
     _regionDataContext = new RegionDataContext();
     _fieldSuveryResult = new FieldSurveyResult();
     _regionDataContext.GetAllRegions((data) =>
     {
         _regionData = data;
         esRegion.DataContext = new ExpanderSelectorDataContext(_regionData.ToList<object>());
         _service = new FieldService();
         _fieldDataAccessLayer = new FieldDataAccessLayer();
         _field = new Field();
         _fieldCropList = new List<FieldCrop>();
     });
     App.RegionalCultureOverride = Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
     App.UICultureOverride = Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
 }
예제 #4
0
        private async void btnSave_Click(object sender, EventArgs e)
        {

            string fieldName = txtFieldName.Text.Trim();
            var regionInfo = (ExpanderSelectorDataSource)esRegion.Seleted;

            for (int i = 1; i < bodyPiv.Items.Count; i++)
            {
                var content = ((PivotItem)bodyPiv.Items[i]).Content;
                if (content is FieldCropTab)
                {
                    var item = (FieldCropTab)content;
                    if (!item.IsInputValueVailed())
                    {
                        return;
                    }
                }
            }

            if (String.IsNullOrEmpty(fieldName) || String.IsNullOrEmpty(txtFieldArea.Text) || _fieldCropList.Count <= 0 || regionInfo == null)
            {
                MessageBox.Show("农田信息必须完整");
            }
            else
            {
                if (_fieldSuveryResult.FieldPoints != null)
                {
                var ptList = _fieldSuveryResult.FieldPoints.ToList();
                if (ptList.Count() > 0)
                {
                    System.Text.StringBuilder sb = new System.Text.StringBuilder();
                    foreach (GeoCoordinate coor in ptList)
                    {
                        sb.Append(coor.Longitude.ToString("#0.000000")).Append(",").Append(coor.Latitude.ToString("#0.000000")).Append(";");
                    }

                    sb.Remove(sb.Length - 1, 1);

                    this._field.Geo = sb.ToString();
                }
                }


                float area = float.Parse(txtFieldArea.Text);
                _field.Area = area;
                _field.FarmlandName = fieldName;
                //_field.Geo = _fieldGPSPoints;
                _field.CreatedDate = DateTime.Now;
                _field.RegionName = regionInfo.Name;
                _field.RegionID = int.Parse(regionInfo.ID);
                _field.Plantings = _fieldCropList;
                _field = await _service.Add(_field);
                if (_field.FarmlandID > 0)
                {
                    if (_fieldDataAccessLayer.Add(_field))
                    {
                        MessageBox.Show("添加农田成功");
                        NavigationService.GoBack();
                    }
                    else
                    {
                        MessageBox.Show("添加农田失败");
                    }
                }
                else
                {
                    MessageBox.Show("向服务端添加农田失败");
                }
            }

        }