/// <summary> /// 添加节点或更新节点 /// </summary> /// <param name="directoryName">目录名称</param> /// <param name="url">API地址</param> /// <param name="ip">IP地址</param> /// <param name="description">描述</param> /// <param name="weight">权重</param> /// <param name="status">状态</param> /// <param name="directoryId">所属目录</param> public string Add(string directoryName, string url, string ip, string description, int weight, int status,string[] apiList) { var directory = Model.RepositoryRegistry.Directory.FindBy(directoryName); if (directory == null) { return "目录不存在"; } var directoryInfo = new Model.DirectoryInfo(directory.Id, directory.Name); var node = new Model.Node(directoryInfo); node.Description = description; node.Ip = ip; node.Url = url; node.Weight = weight; node.Status = (Model.NodeStatus)status; if (node.Validate()) { Model.RepositoryRegistry.Node.Add(node); var nodes = Model.RepositoryRegistry.Node.Select(directory.Id); this.PublishEvent("Add", new NodeDomainEvent(nodes.Select(m => m.Convert()).ToList())); } this.PublishEvent("Add", new UpdateApiDomainEvent(directory.Id, apiList)); if (node.GetBrokenRules().Count > 0) { return node.GetBrokenRules()[0].Description; } return string.Empty; }
public void SetNode(Model.Node n) { CurrentNode = Nodes.QueryByWmId(n.wm_id); InitTextFields(CurrentNode); InitImages(CurrentNode); InitMapControl(CurrentNode); InitStatus(CurrentNode); }
public void test_add() { Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb"); Model.Node n = new Model.Node(d); Model.RepositoryRegistry.Node.Add(n); var actual = Model.RepositoryRegistry.Node.FindBy(n.Id); NodeAssert(n, actual); }
public void FindByIdsTest() { Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb"); Model.Node n = new Model.Node(d); Model.Node n2 = new Model.Node(d); Model.RepositoryRegistry.Node.Add(n); Model.RepositoryRegistry.Node.Add(n2); var list = Model.RepositoryRegistry.Node.FindByIds(new int[2] { n.Id, n2.Id }); Assert.IsTrue(list.Count() > 0); }
public void test_update() { Model.DirectoryInfo d = new Model.DirectoryInfo(111, "bbb"); Model.Node n = new Model.Node(d); Model.RepositoryRegistry.Node.Add(n); n.Ip = "111"; n.Url = "url"; Model.RepositoryRegistry.Node.Update(n); var actual = Model.RepositoryRegistry.Node.FindBy(n.Id); NodeAssert(n, actual); }
public void SelectTest() { var directory = Directory.DirectoryRepositoryTest.Create(Model.DirectoryType.提供者); Model.RepositoryRegistry.Directory.Add(directory); Model.Node n = new Model.Node(new Model.DirectoryInfo(directory.Id, directory.Name)); n.Ip = "111"; n.Url = "url"; Model.RepositoryRegistry.Node.Add(n); var list = Model.RepositoryRegistry.Node.Select(Model.DirectoryType.提供者); Assert.IsTrue(list.Count() == 1); list = Model.RepositoryRegistry.Node.Select(Model.DirectoryType.消费者); Assert.IsTrue(list.Count() == 0); list = Model.RepositoryRegistry.Node.Select(directory.Id); Assert.IsTrue(list.Count() == 1); }
public override void OnNewParams(object args) { base.OnNewParams(args); node = args as Model.Node; if (node != null) { position = new BasicGeoposition { Latitude = node.lat, Longitude = node.lon }; positionTextBox.Text = String.Format("POSITION".t(R.File.NODE), position?.Latitude, position?.Longitude); } titleTextBlock.Text = Title; initCategoryComboBox(); initStatus(node); nameTextBox.Text = node?.name ?? ""; streetTextBox.Text = node?.street ?? ""; houseNumberTextBox.Text = node?.housenumber ?? ""; phoneNumberTextBox.Text = node?.phone ?? ""; plzTextBox.Text = node?.postcode ?? ""; cityTextBox.Text = node?.city ?? ""; websiteTextBox.Text = node?.website ?? ""; commentTextBox.Text = node?.wheelchairDescription ?? ""; }
private async Task uploadNewPhoto() { FileOpenPicker openPicker = new FileOpenPicker(); openPicker.ViewMode = PickerViewMode.Thumbnail; openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; openPicker.FileTypeFilter.Add(".jpg"); openPicker.FileTypeFilter.Add(".jpeg"); openPicker.FileTypeFilter.Add(".png"); // Launch file open picker and caller app is suspended and may be terminated if required StorageFile file = await openPicker.PickSingleFileAsync(); if (file == null) { return; } var dialog = new ProgressDialog() { Message = "UPLOAD_IMAGE_PROCESSING".t() }; dialog.ShowAsync().Forget(); CurrentNode = CurrentNode.CreateCopyIfNeeded(); if (CurrentNode._ID <= 0) { Nodes.Save(CurrentNode); } var result = await new PhotoUploadTask(CurrentNode, file).Execute(); // wait for the backend to initialize the image before reloading them Task.Delay(3000).Wait(); dialog.Close(); Log.d(result.IsOk); SetNode(CurrentNode); }
private void saveButton_Click(object sender, RoutedEventArgs e) { if (!CheckIfAllRequiredFieldsAreValid()) { return; } bool createNewNode = node == null; if (node == null) { node = new Model.Node() { NodeTag = NodeTag.COPY }; } else { node = node.CreateCopyIfNeeded(); } node.DirtyState = DirtyState.DIRTY_ALL; node.category = categories[categoryComboBox.SelectedIndex]; node.nodeType = nodeTypes[nodeTypeComboBox.SelectedIndex]; node.name = nameTextBox.Text.Trim(); node.wheelchairDescription = commentTextBox.Text.Trim(); node.street = streetTextBox.Text.Trim(); node.postcode = plzTextBox.Text.Trim(); node.city = cityTextBox.Text.Trim(); node.housenumber = houseNumberTextBox.Text.Trim(); node.phone = phoneNumberTextBox.Text.Trim(); node.website = websiteTextBox.Text.Trim(); node.wheelchairStatus = wheelchairStatus.Value.ToApiString(); node.wheelchairToiletStatus = wheelchairWCStatus.Value.ToApiString(); node.lat = position.Value.Latitude; node.lon = position.Value.Longitude; progressBar.Visibility = Visibility.Visible; new NodeEditRequest(node).Execute().ContinueWithOnDispatcher(Dispatcher, task => { progressBar.Visibility = Visibility.Collapsed; if (task.Result.IsOk) { node.DirtyState = DirtyState.CLEAN; Nodes.Save(node); // make sure the changes are diaplayed on the map DataHolder.Instance.ReplaceNode(node); GoBack(); } else { // show error dialog with messages from backend var content = ""; foreach (var key in task.Result.error) { foreach (string value in key.Value) { content += "\u00B7 " + value + "\n"; } } MessageDialog dialog = new MessageDialog(content); dialog.ShowAsync().Forget(); } }, 2000); }