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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +