/// <summary> /// Initializes a new instance of the <see cref="MainPageViewModel"/> class. /// </summary> /// <param name="dialog"> /// The dialog. /// </param> public MainPageViewModel(MessageDialogHelper dialog) { if (dialog == null) { throw new ArgumentNullException(nameof(dialog)); } this._dialog = dialog; this.ConnectToBandCommand = new RelayCommand(async () => await this.ConnectToBandAsync()); this.RecordSensorsCommand = new RelayCommand(this.StartRecordingSensors); }
public async void DeleteHotel() { int hotelNr = HotelViewModel.NewHotel.HotelNr; PersistenceFacade facade = new PersistenceFacade(); bool ok = await facade.DeleteHotelAsync(hotelNr); if (!ok) { MessageDialogHelper.Show("Der skete en fejl!", "Hotel blev ikke slettet"); } else { MessageDialogHelper.Show("Alt gik godt!", $"Hotellet {hotelNr} blev slettet"); HotelViewModel.HotelCatalogSingleton.Hotels.Clear(); HotelViewModel.HotelCatalogSingleton.LoadHotels(); } }
private async void DeleteSelectedNote() { try { MyResult _MyResult = await _DALRepository.DeleteNote(NoteId); MessageDialogHelper.Show(_MyResult.Message, "Delete"); if (_MyResult.IsSuccess) { await LoadNotes(); } } catch (Exception ex) { MessageDialogHelper.Show(ex.Message, "Delete"); } }
/// <summary> /// Проверка прав на просмотр документа /// </summary> /// <returns>Если <c>true</c> нет прав на просмотр.</returns> public static bool CheckViewWarehouse(WarehousePermissions edit, params Warehouse[] warehouses) { //Внимание!!! Склад пустой обычно у новых документов. Возможность создания должна проверятся другими условиями. Тут пропускаем. warehouses = warehouses.Where(x => x != null).ToArray(); if (warehouses.Length == 0) { return(false); } if (warehouses.Any(x => CurrentPermissions.Warehouse[WarehousePermissions.WarehouseView, x] || CurrentPermissions.Warehouse[edit, x])) { return(false); } MessageDialogHelper.RunErrorDialog($"У вас нет прав на просмотр документов склада '{string.Join(";", warehouses.Distinct().Select(x => x.Name))}'."); return(true); }
private void Configure() { track = Vodovoz.Repository.Logistics.TrackRepository.GetTrackForRouteList(UoW, routeList.Id); if (track == null) { buttonRecalculateToBase.Sensitive = buttonFindGap.Sensitive = buttonCutTrack.Sensitive = buttonLastAddress.Sensitive = false; MessageDialogHelper.RunInfoDialog($"Маршрутный лист №{routeList.Id}\nТрек не обнаружен"); } else if (routeList.Status < RouteListStatus.OnClosing) { buttonRecalculateToBase.Sensitive = buttonFindGap.Sensitive = buttonCutTrack.Sensitive = buttonLastAddress.Sensitive = false; } ConfigureMap(); OpenMap(); UpdateDistanceLabel(); }
public void ConfigureDlg(IUnitOfWork uow, UserBase user) { var employee = _employeeRepository.GetEmployeesForUser(uow, user.Id).FirstOrDefault(); if (employee == null) { MessageDialogHelper.RunWarningDialog($"К пользователю \"{user.Name}\" не привязан сотрудник, невозможно будет установить права на подразделение для документов."); return; } if (employee.Subdivision == null) { MessageDialogHelper.RunWarningDialog($"Сотрудник \"{employee.ShortName}\" не привязан к подразделению, невозможно будет установить права на подразделение для документов."); return; } UoW = uow; employeeSubdivision = employee.Subdivision; this.user = user; model = new EntitySubdivisionForUserPermissionModel(UoW, employeeSubdivision, user); var subdivisionsVM = new SubdivisionsVM(UoW); treeviewSubdivisions.RepresentationModel = subdivisionsVM; treeviewSubdivisions.YTreeModel = new RecursiveTreeModel <SubdivisionVMNode>(subdivisionsVM.Result, x => x.Parent, x => x.Children); ytreeviewPermissions.ColumnsConfig = ColumnsConfigFactory.Create <EntitySubdivisionForUserPermission>() .AddColumn("Подразделение").AddTextRenderer(x => x.Subdivision.Name) .AddColumn("Документ").AddTextRenderer(x => x.TypeOfEntity.CustomName) .AddColumn("Просмотр").AddToggleRenderer(x => x.CanRead).Editing() .AddColumn("Создание").AddToggleRenderer(x => x.CanCreate).Editing() .AddColumn("Редактирование").AddToggleRenderer(x => x.CanUpdate).Editing() .AddColumn("Удаление").AddToggleRenderer(x => x.CanDelete).Editing() .Finish(); ytreeviewPermissions.ItemsDataSource = model.ObservablePermissionsList; ytreeviewEntities.ColumnsConfig = ColumnsConfigFactory.Create <TypeOfEntity>() .AddColumn("Документ").AddTextRenderer(x => x.CustomName) .Finish(); ytreeviewEntities.ItemsDataSource = model.ObservableTypeOfEntitiesList; Sensitive = true; }
void AddEmployeeDlg_ObjectSelected(object sender, JournalObjectSelectedEventArgs e) { var selectedId = e.GetSelectedIds().FirstOrDefault(); if (selectedId == 0) { return; } var employee = UoW.GetById <Employee>(selectedId); if (Entity.Items.Any(x => x.Employee.Id == employee.Id)) { MessageDialogHelper.RunErrorDialog($"Сотрудник {employee.ShortName} уже присутствует в списке."); return; } Entity.AddItem(employee); }
public UndeliveredOrderDlg() { this.Build(); UoW = UnitOfWorkFactory.CreateWithNewRoot <UndeliveredOrder>(); UndeliveredOrder = UoW.RootObject as UndeliveredOrder; UndeliveredOrder.Author = EmployeeRepository.GetEmployeeForCurrentUser(UoW); UndeliveredOrder.EmployeeRegistrator = EmployeeRepository.GetEmployeeForCurrentUser(UoW); if (UndeliveredOrder.Author == null) { MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать недовозы, так как некого указывать в качестве автора документа."); FailInitialize = true; return; } TabName = "Новый недовоз"; UndeliveredOrder.TimeOfCreation = DateTime.Now; ConfigureDlg(); }
public UndeliveredOrderCommentsDlg(IUnitOfWork uow, int id, CommentedFields field, string valueOfField) { UoW = uow; Field = field; UndeliveredOrder = uow.GetById <UndeliveredOrder>(id); Employee = EmployeeRepository.GetEmployeeForCurrentUser(uow); if (Employee == null) { MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику и вы не можете комментировать недовозы, так как некого указывать в качестве автора."); FailInitialize = true; return; } this.Build(); TabName = "Добавить комментарий"; lblValOfField.Text = valueOfField; ConfigureDlg(); }
public void DoLoginUser() { var dataList = PersistancyService.LoadNotesFromJsonAsync(); foreach (var UserModel in dataList.Result) { if ((UserModel.Email == Email) && (UserModel.Password == Password)) { // Do something if login succeeds GlobalVars.Global_LoggedInBool = true; GlobalVars.Global_LoggedInName = UserModel.Name; MessageDialogHelper.Show("You have been logged in!", "Login Successfull"); break; } // Do something if login fails } }
public async void DeleteGuest() { int guestNr = GuestViewModel.NewGuest.GuestNr; PersistenceGuests facade = new PersistenceGuests(); bool ok = await facade.DeleteGuestAsync(guestNr); if (!ok) { MessageDialogHelper.Show("Der skete en fejl!", "Guest blev ikke slettet"); } else { MessageDialogHelper.Show("Alt gik godt!", $"Guest {guestNr} blev slettet"); GuestViewModel.GuestCatalogSingleton.Guests.Clear(); GuestViewModel.GuestCatalogSingleton.LoadGuest(); } }
protected void OnButtonAddClicked(object sender, EventArgs e) { throw new NotSupportedException("На данный момент не поддерживается добавление номенклатур"); if (DocumentUoW.Root.FromClient == null) { MessageDialogHelper.RunErrorDialog("Не добавлен отправитель."); return; } if (DocumentUoW.Root.FromDeliveryPoint == null) { MessageDialogHelper.RunErrorDialog("Не добавлена точка доставки отправителя."); } ITdiTab mytab = DialogHelper.FindParentTab(this); if (mytab == null) { logger.Warn("Родительская вкладка не найдена."); return; } NomenclatureStockFilterViewModel filter = new NomenclatureStockFilterViewModel( new WarehouseRepository() ); NomenclatureStockBalanceJournalViewModel vm = new NomenclatureStockBalanceJournalViewModel( filter, UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices ); vm.SelectionMode = JournalSelectionMode.Single; vm.OnEntitySelectedResult += (s, ea) => { var selectedNode = ea.SelectedNodes.Cast <NomenclatureStockJournalNode>().FirstOrDefault(); if (selectedNode == null) { return; } var nomenclature = DocumentUoW.GetById <Nomenclature>(selectedNode.Id); throw new NotSupportedException("На данный момент не поддерживается добавление номенклатур"); }; mytab.TabParent.AddSlaveTab(mytab, vm); }
protected void OnButtonRevertClicked(object sender, EventArgs e) { var toRevert = ytreeviewRLTo .GetSelectedObjects <RouteListItemNode>() .Where(x => x.WasTransfered) .Select(x => x.RouteListItem) .ToList(); foreach (var address in toRevert) { if (address.Status == RouteListItemStatus.Transfered) { MessageDialogHelper.RunWarningDialog(string.Format("Адрес {0} сам перенесен в МЛ №{1}. Отмена этого переноса не возможна. Сначала нужно отменить перенос в {1} МЛ.", address?.Order?.DeliveryPoint.ShortAddress, address.TransferedTo?.RouteList.Id)); continue; } RouteListItem pastPlace = (yentryreferenceRLFrom.Subject as RouteList) ?.Addresses ?.FirstOrDefault(x => x.TransferedTo != null && x.TransferedTo.Id == address.Id) ?? _routeListItemRepository.GetTransferedFrom(UoW, address); var previousRouteList = pastPlace?.RouteList; if (pastPlace != null) { previousRouteList.RevertTransferAddress(_wageParameterService, pastPlace, address); pastPlace.NeedToReload = address.NeedToReload; pastPlace.WasTransfered = true; UpdateTranferDocuments(pastPlace.RouteList, address.RouteList); pastPlace.RecalculateTotalCash(); UoW.Save(pastPlace); address.RouteList.TransferAddressTo(address, pastPlace); address.WasTransfered = false; } address.RouteList.CalculateWages(_wageParameterService); address.RecalculateTotalCash(); UoW.Save(address.RouteList); } UoW.Commit(); UpdateNodes(); }
protected void OnButtonColorsLegendClicked(object sender, EventArgs e) { MessageDialogHelper.RunInfoDialog( "<b>Колонка «Получено»:</b>\n" + "<span color='darkgreen'>●</span> — потребность закрыта полностью\n" + "<span color='blue'>●</span> — получено больше необходимого\n" + "<span color='orange'>●</span> — получено меньше необходимого\n" + "<span color='red'>●</span> — получения не было\n" + "\n<b>Колонка «След. получение»:</b>\n" + "<span color='red'>●</span> — получение просрочено\n" + "<span color='darkgreen'>●</span> — возможна выдача раньше срока\n" + "\n<b>Колонка «На складе»:</b>\n" + "<span color='orange'>●</span> — подходящей номенклатуры не найдено\n" + "<span color='red'>●</span> — номенклатура на складе отсутствует\n" + "<span color='blue'>●</span> — на складе не достаточное количество\n" + "<span color='green'>●</span> — на складе достаточное количество" ); }
public void AddTime(TimeSpan time) { if (time == new TimeSpan()) { return; } if (Times.Count >= 12) { return; } if (Times.Any() && Times.Last().Value > time) { MessageDialogHelper.RunWarningDialog("Добавляемое время должно быть позже предыдущего"); return; } Times.Add(new Time(time)); UpdateButtonAddIntervalSensitive(); }
public RouteListCreateDlg() { Build(); UoWGeneric = UnitOfWorkFactory.CreateWithNewRoot <RouteList>(); Entity.Logistician = _employeeRepository.GetEmployeeForCurrentUser(UoW); if (Entity.Logistician == null) { MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать маршрутные листы, так как некого указывать в качестве логиста."); FailInitialize = true; return; } if (ConfigSubdivisionCombo()) { Entity.Date = DateTime.Now; ConfigureDlg(); } }
public async void DeleteSpeaker() { int speakerID = _adminSpeakerViewModel.NewSpeaker.Id; Consumer <Speaker> AdminSpeakerFacade = new Consumer <Speaker>(ConsumerCatalog.GetUrl <Speaker>()); bool ok = await AdminSpeakerFacade.DeleteAsync(new[] { (speakerID) }); if (!ok) { MessageDialogHelper.Show("Der skete en fejl", $"Oplægsholder med id {speakerID} blev ikke slettet"); } else { MessageDialogHelper.Show("Alt gik godt", $"Oplægsholder med id {speakerID} blev slettet"); ClearSpeaker(); _adminSpeakerViewModel.AdminSpeakerSingleton.Reload(((RelayCommand)_adminSpeakerViewModel.DeleteSpeakerCommand).RaiseCanExecuteChanged); } }
// Post greenkeeper public async void PostGreenkeeper() { try { if (Mwm.Greenname == "" || Mwm.Greennumber < 9999999 || Mwm.Greennumber > 100000000) { throw new Exception(); } Greenkeeper temp_green = new Greenkeeper(Mwm.Greennumber, Mwm.Greenname); PersistencyService.PostGreenkeeper(temp_green); Mwm.GreenkeeperInfoCollection.Clear(); await Mwm.GreenkeeperInfoHandler.GetGreenTaskInfoCollection(); } catch (Exception) { MessageDialogHelper.Show("felterne skal udfyldes ordentligt", "Fejl: "); } }
public async void UpdateAsync() { AnsatViewModel.ProgressRingIsActive = true; bool status = await _persistence.PutAsync(AnsatViewModel.NyAnsat.Initial, AnsatViewModel.NyAnsat); AnsatViewModel.ProgressRingIsActive = false; if (status) { MessageDialogHelper.Show("Brugeren blev opdateret", "Succes"); } else { MessageDialogHelper.Show("Brugeren blev ikke opdateret", "Fejl"); } ClearNyAnsat(); }
public async void OnPersonChanged(object sender, SelectionChangedEventArgs args) { try { if (SelectedPerson != null) { CountOfFaces = $"{SelectedPerson.PersistedFaceIds.Count()} trained faces."; } else { CountOfFaces = "Please select a person."; } } catch (Exception ex) { await MessageDialogHelper.MessageDialogAsync("Exception", ex.Message); } }
public PermissionControlledRepresentationJournal( IRepresentationModel representationModel, Buttons buttons = Buttons.All, bool customEdit = false) : base(representationModel) { if (RepresentationModel.EntityType != null) { UpdateUserEntityPermission(); if (!permissionResult.CanRead) { var message = PermissionsSettings.GetEntityReadValidateResult(RepresentationModel.EntityType); MessageDialogHelper.RunErrorDialog(message); FailInitialize = true; } } this.buttons = buttons; _customEdit = customEdit; ConfigureActionButtons(); }
protected void OnCheckNoCloseToggled(object sender, EventArgs e) { if (selectableAdvances == null) { return; } if (checkNoClose.Active && selectableAdvances.Count(x => x.Selected) > 1) { MessageDialogHelper.RunWarningDialog("Частично вернуть можно только один аванс."); checkNoClose.Active = false; return; } yspinMoney.Sensitive = checkNoClose.Active; if (!checkNoClose.Active) { yspinMoney.ValueAsDecimal = selectableAdvances.Where(x => x.Selected).Sum(x => x.Value.UnclosedMoney); } }
private static async Task <string> DeserializeNotesFileAsync(string fileName) { try { StorageFile localFile = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName); return(await FileIO.ReadTextAsync(localFile)); } catch (FileNotFoundException ex) { if (hasbeenshown == false) { MessageDialogHelper.Show("Din inkøbsliste er tom og vil ikke vise nogle vare før du tiæføjer den via vare eller kædesøgning", "Tom Inkøbsliste"); hasbeenshown = true; } return(null); } }
public async void PostFinishedTask() { try { FinishedTask temp_task = new FinishedTask(Mwm.SelectedArea.AreaID, Mwm.SelectedGreenTask.GreenTaskID, Mwm.SelectedGreenKeeper.GreenkeeperID, Mwm.SelectedDate.Date, Mwm.TaskHour, Mwm.TaskMinutes, Mwm.Notes); if (Mwm.TaskHour == 0 && Mwm.TaskMinutes == 0) { throw new Exception(); } PersistencyService.PostFinishedtask(temp_task); Mwm.GreenkeeperInfoCollection.Clear(); await Mwm.GreenkeeperInfoHandler.GetGreenTaskInfoCollection(); } catch (Exception) { MessageDialogHelper.Show("Alle felterne skal udfyldes", "Fejl: "); } }
public async void UpdateHotel() { int hotelNo = HotelViewModel.NewHotel.Id; PersistenceFacade facade = new PersistenceFacade(); bool ok = await facade.PutHotelAsync(hotelNo, HotelViewModel.NewHotel); if (!ok) { MessageDialogHelper.Show("Der skete en fejl", "Hotel blev ikke opdateret"); } else { MessageDialogHelper.Show("Alt gik godt", $"Hotellet {hotelNo} blev Updateret"); HotelViewModel.HotelCatalogSingleton.Hotels.Clear(); HotelViewModel.HotelCatalogSingleton.LoadHotels(); } }
private void Invoke() { string _username = APIMASHGlobals.Instance.UserID; if (_username.Length <= 0) { MessageDialogHelper.ShowMsg("username", "valid geonames username is required to be set, use the CHARMS=>SETTINGS menu to enter yours"); return; } WikipediaSearchHelper _apihelper = new WikipediaSearchHelper(_username, "Orlando", 50); string _apicall = _apihelper.TargetURL; System.Diagnostics.Debug.WriteLine("TargetURL=" + _apicall); m_msghelper.msg("invoking against " + _apicall); m_api_wikipediaSearch.Invoke <APIMASH_WikiPediaLib.APIMASH_OM>(_apicall); }
public DocumentsPrinterDlg(Order order, IEntityDocumentsPrinterFactory entityDocumentsPrinterFactory) { Build(); TabName = "Печать документов заказа"; _entityDocumentsPrinter = (entityDocumentsPrinterFactory ?? throw new ArgumentNullException(nameof(entityDocumentsPrinterFactory))) .CreateOrderDocumentsPrinter(order); if (!string.IsNullOrEmpty(_entityDocumentsPrinter.ODTTemplateNotFoundMessages)) { MessageDialogHelper.RunWarningDialog(_entityDocumentsPrinter.ODTTemplateNotFoundMessages); } _currentOrder = order; Configure(); }
public TransferIncomeDlg(int id, IPermissionService permissionService) { this.Build(); UoWGeneric = UnitOfWorkFactory.CreateForRoot <Income>(id); if (Entity.TypeDocument != IncomeInvoiceDocumentType.IncomeTransferDocument) { throw new InvalidOperationException($"Диалог доступен только для документа типа {nameof(IncomeInvoiceDocumentType.IncomeTransferDocument)}"); } var userPermission = permissionService.ValidateUserPermission(typeof(Income), ServicesConfig.UserService.CurrentUserId); if (!userPermission.CanRead) { MessageDialogHelper.RunErrorDialog("Отсутствуют права на просмотр приходного ордера"); FailInitialize = true; return; } canEdit = userPermission.CanUpdate; ConfigureDlg(); }
public override bool Save() { if (!Entity.CanEdit) { return(false); } if (!UpdateReceivedItemsOnEntity(terminalNomenclatureProvider.GetNomenclatureIdForTerminal)) { return(false); } var valid = new QS.Validation.QSValidator <CarUnloadDocument>(UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } if (!CarUnloadRepository.IsUniqueDocumentAtDay(UoW, Entity.RouteList, Entity.Warehouse, Entity.Id)) { MessageDialogHelper.RunErrorDialog("Документ по данному МЛ и складу уже сформирован"); return(false); } Entity.LastEditor = EmployeeRepository.GetEmployeeForCurrentUser(UoW); Entity.LastEditedTime = DateTime.Now; if (Entity.LastEditor == null) { MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика."); return(false); } if (Entity.RouteList.Status == RouteListStatus.Delivered) { Entity.RouteList.CompleteRouteAndCreateTask(wageParameterService, callTaskWorker); } logger.Info("Сохраняем разгрузочный талон..."); UoWGeneric.Save(); logger.Info("Ok."); return(true); }
private void MapWidgetOnButtonReleaseEvent(object o, ButtonReleaseEventArgs args) { if (args.Event.Button == 1) { _addressIsMoving = false; var newPoint = _mapWidget.FromLocalToLatLng((int)args.Event.X, (int)args.Event.Y); if (!ViewModel.DeliveryPoint.ManualCoordinates && ViewModel.DeliveryPoint.FoundOnOsm) { if (!MessageDialogHelper.RunQuestionDialog( "Координаты точки установлены по адресу. Вы уверены что хотите установить новые координаты?")) { UpdateAddressOnMap(); return; } } ViewModel.WriteCoordinates((decimal)newPoint.Lat, (decimal)newPoint.Lng, true); } }
public async void AddAsync() { AnsatViewModel.ProgressRingIsActive = true; bool status = await _persistence.PostAsync(AnsatViewModel.NyAnsat); AnsatViewModel.ProgressRingIsActive = false; if (status) { MessageDialogHelper.Show("Den nye bruger blev oprette", "Succes"); } else { MessageDialogHelper.Show("Brugeren blev ikke oprettet", "Fejl"); } ClearNyAnsat(); }
private async void Image_Tapped1(object sender, TappedRoutedEventArgs e) { MessageDialogHelper ms = new MessageDialogHelper(); ms.Show("Bạn có muốn thoát chương trình", ""); }
private async Task GetSampleDataAsync() { if (this._groups.Count != 0) return; try { RssReader rss = new RssReader(); HttpClient Client = new HttpClient(); Client.DefaultRequestHeaders.Add("Cache-Control", "no-cache"); var xml = await Client.GetStringAsync(apiUrl1 +"?cache="+Guid.NewGuid().ToString()); var ketqua = rss.KetQua(xml); int i = 0; SampleDataGroup group = new SampleDataGroup("Group-1", "Tour Hot Khuyến Mãi"); foreach (var k in ketqua) { if (!k.Link.Contains("http:") && !k.Link.Contains("https:")) { k.Link = "http:" + k.Link; } string ip = k.Description.Substring(k.Description.LastIndexOf("src") + 5, k.Description.IndexOf("'", k.Description.LastIndexOf("src") + 6) - 5 - k.Description.LastIndexOf("src")); if(!ip.Contains("http:")&&!ip.Contains("https:")) { ip = "http:" + ip; } group.Items.Add(new SampleDataItem(i.ToString(), k.Title, k.Date, k.Description.Substring(k.Description.LastIndexOf("</a>") + 4, k.Description.Length - k.Description.LastIndexOf("</a>") - 4), k.Link, ip)); i++; } this.Groups.Add(group); xml = await Client.GetStringAsync(apiUrl2 + "?cache=" + Guid.NewGuid().ToString()); ketqua = rss.KetQua(xml); group = new SampleDataGroup("Group-2", "Tour Du Lịch Mới Nhất"); foreach (var k in ketqua) { if (!k.Link.Contains("http:") && !k.Link.Contains("https:")) { k.Link = "http:" + k.Link; } string ip = k.Description.Substring(k.Description.LastIndexOf("src") + 5, k.Description.IndexOf("'", k.Description.LastIndexOf("src") + 6) - 5 - k.Description.LastIndexOf("src")); if (!ip.Contains("http:") && !ip.Contains("https:")) { ip = "http:" + ip; } group.Items.Add(new SampleDataItem(i.ToString(), k.Title, k.Date, k.Description.Substring(k.Description.LastIndexOf("</a>") + 4, k.Description.Length - k.Description.LastIndexOf("</a>") - 4),k.Link, ip)); i++; } this.Groups.Add(group); xml = await Client.GetStringAsync(apiUrl3 + "?cache=" + Guid.NewGuid().ToString()); ketqua = rss.KetQua(xml); group = new SampleDataGroup("Group-3", "Ẩm Thực Khám Phá"); foreach (var k in ketqua) { if (!k.Link.Contains("http:") && !k.Link.Contains("https:")) { k.Link = "http:" + k.Link; } string ip = k.Description.Substring(k.Description.LastIndexOf("src") + 5, k.Description.IndexOf("'", k.Description.LastIndexOf("src") + 6) - 5 - k.Description.LastIndexOf("src")); if (!ip.Contains("http:") && !ip.Contains("https:")) { ip = "http:" + ip; } group.Items.Add(new SampleDataItem(i.ToString(), k.Title, k.Date, k.Description.Substring(k.Description.LastIndexOf("</a>") + 4, k.Description.Length - k.Description.LastIndexOf("</a>") - 4), k.Link, ip)); i++; } this.Groups.Add(group); Uri dataUri = new Uri("ms-appx:///DataModel/AboutUs.json"); StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri); string jsonText = await FileIO.ReadTextAsync(file); JsonObject jsonObject = JsonObject.Parse(jsonText); JsonArray jsonArray = jsonObject["Items"].GetArray(); group = new SampleDataGroup("Group-4", "Mô Tả"); foreach (JsonValue itemValue in jsonArray) { JsonObject itemObject = itemValue.GetObject(); group.Items.Add(new SampleDataItem(i.ToString(), itemObject["Title"].GetString(), itemObject["Type"].GetString(), "description", itemObject["Target"].GetString(), itemObject["Icon"].GetString())); i++; } this.Groups.Add(group); } catch (Exception ex) { MessageDialogHelper msg = new MessageDialogHelper(); msg.Show("Vui Lòng kiểm tra kết nối mạng", "Lỗi kết nối!"); } }