diff --git a/azure_m/azure_m/azure_m.Android/Resources/Resource.designer.cs b/azure_m/azure_m/azure_m.Android/Resources/Resource.designer.cs
index 5028250f883b4f3357ff63de1363adb87ad435df..2ce0df59cf55dc3469660f1b4a1e8699c5e39ec7 100644
--- a/azure_m/azure_m/azure_m.Android/Resources/Resource.designer.cs
+++ b/azure_m/azure_m/azure_m.Android/Resources/Resource.designer.cs
@@ -14,7 +14,7 @@ namespace azure_m.Droid
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.2.4.160")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.2.0.155")]
public partial class Resource
{
diff --git a/azure_m/azure_m/azure_m.Android/azure_m.Android.csproj b/azure_m/azure_m/azure_m.Android/azure_m.Android.csproj
index cb47e3f96af67668d29ae9651acba23b3e392840..99918147beb1faa3cdef3e3c92a7968498b7a530 100644
--- a/azure_m/azure_m/azure_m.Android/azure_m.Android.csproj
+++ b/azure_m/azure_m/azure_m.Android/azure_m.Android.csproj
@@ -64,7 +64,6 @@
-
diff --git a/azure_m/azure_m/azure_m/Models/RequestModels/VirtualNetwork.cs b/azure_m/azure_m/azure_m/Models/RequestModels/VirtualNetwork.cs
index 6f3f3c55bb7ad4baeb5f9fbf9117f5247bde4f80..9b4c77eca1b132a6a90ab04d63547a9f292641ae 100644
--- a/azure_m/azure_m/azure_m/Models/RequestModels/VirtualNetwork.cs
+++ b/azure_m/azure_m/azure_m/Models/RequestModels/VirtualNetwork.cs
@@ -5,9 +5,38 @@
namespace CreateOrUpdate
{
- public class CreateOrUpdateVNRequest:IRequest{}
+ public class CreateOrUpdateVNRequest : IRequest
+ {
+ public CreateOrUpdateVNRequest()
+ {
+ uri = new CreateOrupdateVNUri
+ {
+
+ };
+
+ body = new CreateOrUpdateVNBody
+ {
+ properties = new CreateOrUpdateVNProperties
+ {
+ addressSpace = new AddressSpace { addressPrefixes = new string[2] },
+ subnets = new Subnet[]
+ {
+ new Subnet
+ {
+ properties = new SubnetProperties
+ {
+
+ }
+ }
+ }
+
+ }
+ };
+ }
+ }
- public class CreateOrupdateVNUri {
+ public class CreateOrupdateVNUri
+ {
public string resourceGroupName;
public string virtualNetworkName;
}
@@ -15,24 +44,24 @@
{
public CreateOrUpdateVNProperties properties { get; set; }
- public string location {get;set;}
+ public string location { get; set; }
}
public class CreateOrUpdateVNProperties
{
- public AddressSpace addressSpace { get;set;}
+ public AddressSpace addressSpace { get; set; }
- public Subnet[] subnets { get; set;}
+ public Subnet[] subnets { get; set; }
- public VirtualNetworkBgpCommunities bgpCommunities { get; set;}
+ public VirtualNetworkBgpCommunities bgpCommunities { get; set; }
- public int flowTimeOutInMinutes { get; set;}
+ public int flowTimeOutInMinutes { get; set; }
- public VirtualNetworkEncryption encryption { get; set;}
+ public VirtualNetworkEncryption encryption { get; set; }
}
public class AddressSpace
{
- public string[] addressPrefixes { get; set;}
+ public string[] addressPrefixes { get; set; }
}
public class Subnet
@@ -414,7 +443,7 @@
}
namespace Get
{
- public class GetVNRequest:IRequest { }
+ public class GetVNRequest : IRequest { }
public class GetVNUri
{
@@ -427,7 +456,7 @@
}
namespace List
{
- public class ListVNRequest:IRequest { }
+ public class ListVNRequest : IRequest { }
public class ListVNUri
{
@@ -439,7 +468,7 @@
}
namespace Delete
{
- public class DeleteVNRequest:IRequest { }
+ public class DeleteVNRequest : IRequest { }
public class DeleteVNUri
{
@@ -452,7 +481,7 @@
}
namespace ListAll
{
- public class ListAllVNRequest:IRequest { }
+ public class ListAllVNRequest : IRequest { }
public class ListAllVNUri
{
diff --git a/azure_m/azure_m/azure_m/ViewModels/VNDetailsViewModel.cs b/azure_m/azure_m/azure_m/ViewModels/VNDetailsViewModel.cs
index 70cd250508d57e81cbd54b9515589687e9c7f554..7a0174a373a59f776cef4fc2dd442532ab12ed33 100644
--- a/azure_m/azure_m/azure_m/ViewModels/VNDetailsViewModel.cs
+++ b/azure_m/azure_m/azure_m/ViewModels/VNDetailsViewModel.cs
@@ -7,33 +7,75 @@ using Xamarin.Forms;
using System.Threading.Tasks;
using azure_m.Services;
using System.Diagnostics;
+using System.Linq;
+using azure_m.Models.RequestModels.VNReuestModels.CreateOrUpdate;
+using azure_m.Models.RequestModels.NetworkInterfaceRequestModels;
namespace azure_m.ViewModels
{
public class VNDetailsViewModel : BaseViewModel
{
+ public Guid UID = Guid.NewGuid();
- ContentView basic, ipAddress, security, tag, checkAndCreate;
+ public Dictionary subscribes { get; set; }
- public ObservableCollection pages { get; set; }
+ public List subscribesNames { get; set; }
+ public string subscribeID;
+
+ public List resourceGroups { get; set; }
+
+ public string ResourceGroup;
+
+ public Command vnNameComplete { get; set; }
+
+ public Command IPAddressComplete { get; set; }
+
+ public List AreaSources { get; set; }
+
+ public Command CreateOrUpdateVN { get; set; }
+
+ public CreateOrupdateVNRequest vn = new CreateOrupdateVNRequest();
public VNDetailsViewModel()
{
- Title = "创建虚拟网络";
- basic = new Views.VNDetails.Basic();
- ipAddress = new Views.VNDetails.IPAddress();
- security = new Views.VNDetails.Security();
- tag = new Views.VNDetails.Tag();
- checkAndCreate = new Views.VNDetails.CheckAndCreate();
- pages = new ObservableCollection
- {
- basic, ipAddress, security, tag, checkAndCreate
+#if DEBUG
- };
+ subscribes = new Dictionary { { "免费试用", "123" } };
+ resourceGroups = new List { "wfpres", "wfpppres" };
+ AreaSources = new List { "JapanEast" };
+#endif
+
+ subscribesNames = subscribes.Keys.ToList();
+ Views.AddVNDetailsPage.SubscribeIndexChange += ChangeSubID;
+ Views.AddVNDetailsPage.ResourceGroupIndexChanged += (sender, args) => { vn.uri.resourceGroupName = (sender as Picker).SelectedItem.ToString(); };
+ Views.AddVNDetailsPage.AreaChanged += (sender, args) => { vn.body.location = AreaSources[(sender as Picker).SelectedIndex]; };
+ Views.AddVNDetailsPage.IPAddressChanged += (sender, args) =>
+ {
+ vn.body.properties.addressSpace.addressPrefixes[0] = (sender as Entry).Text;
+ vn.body.properties.subnets[0].name = "default";
+ vn.body.properties.subnets[0].properties.addressPrefix = (sender as Entry).Text;
+ };
+ Views.AddVNDetailsPage.VNNameChanged += (sender, args) =>
+ {
+ vn.uri.virtualNetworkName = (sender as Entry).Text;
+ };
+ //vnNameComplete = new Command((sender) => { vn.uri.virtualNetworkName = (sender as Entry).Text; });
+ //IPAddressComplete = new Command((sender) =>
+ //{
+ // vn.body.properties.addressSpace.addressPrefixes[0] = (sender as Entry).Text;
+ // vn.body.properties.subnets[0].name = "default";
+ // vn.body.properties.subnets[0].properties.addressPrefix = (sender as Entry).Text;
+ //});
}
+
+
+ private void ChangeSubID(object sender, int i)
+ {
+ subscribes.TryGetValue(subscribesNames[i], out subscribeID);
+ }
}
}
diff --git a/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml b/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml
index 3040d8c4b3fbd6f13d492687422a78abd150cac1..9e34bb0623c54964cb4ddf20af3eef131e63ec32 100644
--- a/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml
+++ b/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml
@@ -1,33 +1,221 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml.cs b/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml.cs
index 9d251b54907f9820d4c2a24e44b0789844922e84..07bd379cb4435d75b3cb1b2b5ba4b6b429b55324 100644
--- a/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml.cs
+++ b/azure_m/azure_m/azure_m/Views/AddVNDetailsPage.xaml.cs
@@ -10,11 +10,44 @@ using Xamarin.Forms.Xaml;
namespace azure_m.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class AddVNDetailsPage : ContentPage
+ public partial class AddVNDetailsPage : CarouselPage
{
public AddVNDetailsPage()
{
InitializeComponent();
}
+
+ public static event EventHandler SubscribeIndexChange;
+ private void subscribe_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ SubscribeIndexChange?.Invoke(sender, subscribe.SelectedIndex);
+ c_subscribeName.Text = subscribe.SelectedItem.ToString();
+ }
+
+ public static event EventHandler ResourceGroupIndexChanged;
+ private void resourcesGroup_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ ResourceGroupIndexChanged?.Invoke(sender, EventArgs.Empty);
+ c_resGroup.Text = resourcesGroup.SelectedItem.ToString();
+ }
+
+ public static event EventHandler AreaChanged;
+ private void areas_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (areas.SelectedIndex != -1) { AreaChanged?.Invoke(sender, EventArgs.Empty); }
+ c_areas.Text = areas.SelectedItem.ToString();
+ }
+
+ public static event EventHandler IPAddressChanged;
+ private void IPAddressEntry_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ IPAddressChanged?.Invoke(sender, EventArgs.Empty);
+ }
+
+ public static event EventHandler VNNameChanged;
+ private void VNName_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ VNNameChanged?.Invoke(sender, EventArgs.Empty);
+ }
}
}
\ No newline at end of file
diff --git a/azure_m/azure_m/azure_m/Views/VNDetails/Basic.xaml b/azure_m/azure_m/azure_m/Views/VNDetails/Basic.xaml
index f99895de770e62d09fd594632be2be49de22da91..dabca1d28489747158b20d9f4652ece1b6dd99a4 100644
--- a/azure_m/azure_m/azure_m/Views/VNDetails/Basic.xaml
+++ b/azure_m/azure_m/azure_m/Views/VNDetails/Basic.xaml
@@ -16,7 +16,7 @@
-
+
免费试用