private void ToolbarItem_OK_Activated(object sender, EventArgs e) { var AllAddresses = App.AllServerAddresses.Value.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries) .Select(a => new { Address = a.Split('_')[0], Selected = Convert.ToBoolean(a.Split('_')[1]) }).ToArray(); if (ServerAddress.Text == "") { App.ShowError("خطا", "آدرس وارد شده معتبر نیست.", "خوب"); return; } if (EditingAddress == "")//Insert { if (AllAddresses.Any(a => a.Address == ServerAddress.Text.ReplacePersianDigits())) { App.ShowError("خطا", "آدرس وارد شده به ثبت رسیده است.", "خوب"); return; } AllAddresses = AllAddresses.Select(a => new { Address = a.Address, Selected = false }).Union(new[] { new { Address = ServerAddress.Text.ReplacePersianDigits(), Selected = true } }).ToArray(); } else//Update { AllAddresses = AllAddresses.Select(a => new { Address = a.Address == EditingAddress.ReplacePersianDigits() ? ServerAddress.Text.ReplacePersianDigits() : a.Address, Selected = a.Selected }).ToArray(); } App.AllServerAddresses.Value = AllAddresses.Any() ? AllAddresses.Select(a => a.Address + "_" + a.Selected.ToString()).Aggregate((sum, x) => sum + "|" + x) : ""; App.ServerAddress = AllAddresses.First(a => a.Selected).Address; SettingsForm_ServerAddress.RefreshAddressList(); try { Navigation.PopAsync(); } catch (Exception) { } }