From 6a1efab8d5c395137e00c9e5a37ff68aad73ebe1 Mon Sep 17 00:00:00 2001 From: AlexanderTr Date: Sun, 8 Mar 2015 19:26:47 +0300 Subject: [PATCH 01/40] wsp-10323 Convert the VSP provider into one utilizing PowerShell. Step 3 --- .../Virtualization/BiosInfo.cs | 1 + .../Virtualization/DvdDriveInfo.cs | 1 + .../Helpers/BiosHelper.cs | 109 +++++++++ .../Helpers/DvdDriveHelper.cs | 32 ++- .../Helpers/NetworkAdapterHelper.cs | 41 ++-- .../Helpers/VirtualMachineHelper.cs | 58 ++--- .../HyperV2012R2.cs | 212 +++++++++--------- ...oviders.Virtualization.HyperV2012R2.csproj | 1 + 8 files changed, 281 insertions(+), 174 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/BiosInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/BiosInfo.cs index f7fd4a59..796876fc 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/BiosInfo.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/BiosInfo.cs @@ -36,5 +36,6 @@ namespace WebsitePanel.Providers.Virtualization { public bool NumLockEnabled { get; set; } public string[] StartupOrder { get; set; } + public bool BootFromCD { get; set; } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/DvdDriveInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/DvdDriveInfo.cs index df548b0b..34a1100d 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/DvdDriveInfo.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/DvdDriveInfo.cs @@ -39,5 +39,6 @@ namespace WebsitePanel.Providers.Virtualization public int ControllerLocation { get; set; } public string Name { get; set; } public string Id { get; set; } + public string Path { get; set; } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs new file mode 100644 index 00000000..25fcfe3b --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Management.Automation; +using System.Management.Automation.Runspaces; +using System.Text; +using System.Threading.Tasks; + +namespace WebsitePanel.Providers.Virtualization +{ + public static class BiosHelper + { + public static BiosInfo GetVMBios(PowerShellManager powerShell, string name, int generation) + { + BiosInfo info = new BiosInfo(); + + // for Win2012R2+ and Win8.1+ + if (generation == 2) + { + Command cmd = new Command("Get-VMFirmware"); + + cmd.Parameters.Add("VMName", name); + + Collection result = powerShell.Execute(cmd, false); + if (result != null && result.Count > 0) + { + info.NumLockEnabled = true; + + List startupOrders = new List(); + info.BootFromCD = false; + + foreach (dynamic item in (IEnumerable)result[0].GetProperty("BootOrder")) + { + string bootType = item.BootType.ToString(); + + // bootFromCD + if (!startupOrders.Any() && bootType == "Drive") + { + var device = item.Device; + info.BootFromCD = device.GetType().Name == "DvdDrive"; + } + + // startupOrders + startupOrders.Add(bootType); + } + + info.StartupOrder = startupOrders.ToArray(); + } + } + // for others win and linux + else + { + Command cmd = new Command("Get-VMBios"); + + cmd.Parameters.Add("VMName", name); + + Collection result = powerShell.Execute(cmd, false); + if (result != null && result.Count > 0) + { + info.NumLockEnabled = Convert.ToBoolean(result[0].GetProperty("NumLockEnabled")); + + List startupOrders = new List(); + + foreach (var item in (IEnumerable)result[0].GetProperty("StartupOrder")) + startupOrders.Add(item.ToString()); + + info.StartupOrder = startupOrders.ToArray(); + info.BootFromCD = false; + if (info.StartupOrder != null && info.StartupOrder.Length > 0) + info.BootFromCD = info.StartupOrder[0] == "CD"; + } + } + + return info; + } + + public static void UpdateBios(PowerShellManager powerShell, VirtualMachine vm, bool bootFromCD, bool numLockEnabled) + { + // for Win2012R2+ and Win8.1+ + if (vm.Generation == 2) + { + Command cmd = new Command("Set-VMFirmware"); + + cmd.Parameters.Add("VMName", vm.Name); + if (bootFromCD) + cmd.Parameters.Add("FirstBootDevice", DvdDriveHelper.GetPS(powerShell, vm.Name)); + else + cmd.Parameters.Add("FirstBootDevice", VirtualMachineHelper.GetVirtualHardDisksPS(powerShell, vm.Name).FirstOrDefault()); + + powerShell.Execute(cmd, false); + } + // for others win and linux + else + { + Command cmd = new Command("Set-VMBios"); + + cmd.Parameters.Add("VMName", vm.Name); + var bootOrder = bootFromCD + ? new[] { "CD", "IDE", "LegacyNetworkAdapter", "Floppy" } + : new[] { "IDE", "CD", "LegacyNetworkAdapter", "Floppy" }; + cmd.Parameters.Add("StartupOrder", bootOrder); + + powerShell.Execute(cmd, false); + } + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/DvdDriveHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/DvdDriveHelper.cs index 871e8fa3..012232ee 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/DvdDriveHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/DvdDriveHelper.cs @@ -13,8 +13,25 @@ namespace WebsitePanel.Providers.Virtualization { public static DvdDriveInfo Get(PowerShellManager powerShell, string vmName) { - DvdDriveInfo info = new DvdDriveInfo(); + DvdDriveInfo info = null; + PSObject result = GetPS(powerShell, vmName); + + if (result != null) + { + info = new DvdDriveInfo(); + info.Id = result.GetString("Id"); + info.Name = result.GetString("Name"); + info.ControllerType = result.GetEnum("ControllerType"); + info.ControllerNumber = result.GetInt("ControllerNumber"); + info.ControllerLocation = result.GetInt("ControllerLocation"); + info.Path = result.GetString("Path"); + } + return info; + } + + public static PSObject GetPS(PowerShellManager powerShell, string vmName) + { Command cmd = new Command("Get-VMDvdDrive"); cmd.Parameters.Add("VMName", vmName); @@ -23,13 +40,10 @@ namespace WebsitePanel.Providers.Virtualization if (result != null && result.Count > 0) { - info.Id = result[0].GetString("Id"); - info.Name = result[0].GetString("Name"); - info.ControllerType = result[0].GetEnum("ControllerType"); - info.ControllerNumber = result[0].GetInt("ControllerNumber"); - info.ControllerLocation = result[0].GetInt("ControllerLocation"); + return result[0]; } - return info; + + return null; } public static void Set(PowerShellManager powerShell, string vmName, string path) @@ -56,13 +70,9 @@ namespace WebsitePanel.Providers.Virtualization public static void Add(PowerShellManager powerShell, string vmName) { - var dvd = Get(powerShell, vmName); - Command cmd = new Command("Add-VMDvdDrive"); cmd.Parameters.Add("VMName", vmName); - cmd.Parameters.Add("ControllerNumber", dvd.ControllerNumber); - cmd.Parameters.Add("ControllerLocation", dvd.ControllerLocation); powerShell.Execute(cmd, false); } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/NetworkAdapterHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/NetworkAdapterHelper.cs index c00ff956..bd6f9b37 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/NetworkAdapterHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/NetworkAdapterHelper.cs @@ -49,18 +49,17 @@ namespace WebsitePanel.Providers.Virtualization return adapters.FirstOrDefault(a => a.MacAddress == macAddress); } - public static void Update(PowerShellManager powerShell, VirtualMachine vm, string switchId, string portName, string macAddress, string adapterName, bool legacyAdapter) + public static void Update(PowerShellManager powerShell, VirtualMachine vm) { // External NIC if (!vm.ExternalNetworkEnabled && !String.IsNullOrEmpty(vm.ExternalNicMacAddress)) { - // delete adapter Delete(powerShell, vm.Name, vm.ExternalNicMacAddress); vm.ExternalNicMacAddress = null; // reset MAC } - else if (vm.ExternalNetworkEnabled && !String.IsNullOrEmpty(vm.ExternalNicMacAddress)) + else if (vm.ExternalNetworkEnabled && !String.IsNullOrEmpty(vm.ExternalNicMacAddress) + && Get(powerShell,vm.Name,vm.ExternalNicMacAddress) == null) { - // add external adapter Add(powerShell, vm.Name, vm.ExternalSwitchId, vm.ExternalNicMacAddress, EXTERNAL_NETWORK_ADAPTER_NAME, vm.LegacyNetworkAdapter); } @@ -70,35 +69,41 @@ namespace WebsitePanel.Providers.Virtualization Delete(powerShell, vm.Name, vm.PrivateNicMacAddress); vm.PrivateNicMacAddress = null; // reset MAC } - else if (vm.PrivateNetworkEnabled && !String.IsNullOrEmpty(vm.PrivateNicMacAddress)) + else if (vm.PrivateNetworkEnabled && !String.IsNullOrEmpty(vm.PrivateNicMacAddress) + && Get(powerShell, vm.Name, vm.PrivateNicMacAddress) == null) { - Add(powerShell, vm.Name, vm.ExternalSwitchId, vm.ExternalNicMacAddress, PRIVATE_NETWORK_ADAPTER_NAME, vm.LegacyNetworkAdapter); + Add(powerShell, vm.Name, vm.PrivateSwitchId, vm.PrivateNicMacAddress, PRIVATE_NETWORK_ADAPTER_NAME, vm.LegacyNetworkAdapter); } } public static void Add(PowerShellManager powerShell, string vmName, string switchId, string macAddress, string adapterName, bool legacyAdapter) { - //var dvd = Get(powerShell, vmName); + Command cmd = new Command("Add-VMNetworkAdapter"); - //Command cmd = new Command("Add-VMDvdDrive"); + cmd.Parameters.Add("VMName", vmName); + cmd.Parameters.Add("Name", adapterName); + cmd.Parameters.Add("SwitchName", switchId); - //cmd.Parameters.Add("VMName", vmName); - //cmd.Parameters.Add("ControllerNumber", dvd.ControllerNumber); - //cmd.Parameters.Add("ControllerLocation", dvd.ControllerLocation); + if (String.IsNullOrEmpty(macAddress)) + cmd.Parameters.Add("DynamicMacAddress"); + else + cmd.Parameters.Add("StaticMacAddress", macAddress); - //powerShell.Execute(cmd, false); + powerShell.Execute(cmd, false); } public static void Delete(PowerShellManager powerShell, string vmName, string macAddress) { - //var dvd = Get(powerShell, vmName); + var networkAdapter = Get(powerShell, vmName, macAddress); - //Command cmd = new Command("Add-VMDvdDrive"); + if (networkAdapter == null) + return; - //cmd.Parameters.Add("VMName", vmName); - //cmd.Parameters.Add("ControllerNumber", dvd.ControllerNumber); - //cmd.Parameters.Add("ControllerLocation", dvd.ControllerLocation); + Command cmd = new Command("Remove-VMNetworkAdapter"); - //powerShell.Execute(cmd, false); + cmd.Parameters.Add("VMName", vmName); + cmd.Parameters.Add("Name", networkAdapter.Name); + + powerShell.Execute(cmd, false); } } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/VirtualMachineHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/VirtualMachineHelper.cs index 66958337..0d24c149 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/VirtualMachineHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/VirtualMachineHelper.cs @@ -71,47 +71,22 @@ namespace WebsitePanel.Providers.Virtualization if (result != null && result.Count > 0) { info.DynamicMemoryEnabled = Convert.ToBoolean(result[0].GetProperty("DynamicMemoryEnabled")); - info.Startup = Convert.ToInt64(result[0].GetProperty("Startup")); - info.Minimum = Convert.ToInt64(result[0].GetProperty("Minimum")); - info.Maximum = Convert.ToInt64(result[0].GetProperty("Maximum")); + info.Startup = Convert.ToInt64(result[0].GetProperty("Startup")) / Size1M; + info.Minimum = Convert.ToInt64(result[0].GetProperty("Minimum")) / Size1M; + info.Maximum = Convert.ToInt64(result[0].GetProperty("Maximum")) / Size1M; info.Buffer = Convert.ToInt32(result[0].GetProperty("Buffer")); info.Priority = Convert.ToInt32(result[0].GetProperty("Priority")); } return info; } - public static BiosInfo GetVMBios(PowerShellManager powerShell, string name) - { - BiosInfo info = new BiosInfo(); - - Command cmd = new Command("Get-VMBios"); - - cmd.Parameters.Add("VMName", name); - - Collection result = powerShell.Execute(cmd, false); - if (result != null && result.Count > 0) - { - info.NumLockEnabled = Convert.ToBoolean(result[0].GetProperty("NumLockEnabled")); - - List startupOrders = new List(); - - foreach (var item in (IEnumerable)result[0].GetProperty("StartupOrder")) - startupOrders.Add(item.ToString()); - - info.StartupOrder = startupOrders.ToArray(); - } - return info; - } public static VirtualHardDiskInfo[] GetVirtualHardDisks(PowerShellManager powerShell, string name) { - List disks = new List(); - Command cmd = new Command("Get-VMHardDiskDrive"); - cmd.Parameters.Add("VMName", name); + Collection result = GetVirtualHardDisksPS(powerShell, name); - Collection result = powerShell.Execute(cmd, false); if (result != null && result.Count > 0) { foreach (PSObject d in result) @@ -135,6 +110,14 @@ namespace WebsitePanel.Providers.Virtualization return disks.ToArray(); } + public static Collection GetVirtualHardDisksPS(PowerShellManager powerShell, string name) + { + Command cmd = new Command("Get-VMHardDiskDrive"); + cmd.Parameters.Add("VMName", name); + + return powerShell.Execute(cmd, false); + } + public static void GetVirtualHardDiskDetail(PowerShellManager powerShell, string path, ref VirtualHardDiskInfo disk) { if (!string.IsNullOrEmpty(path)) @@ -155,21 +138,6 @@ namespace WebsitePanel.Providers.Virtualization } - - - public static void UpdateBios(PowerShellManager powerShell, VirtualMachine vm, bool bootFromCD, bool numLockEnabled) - { - Command cmd = new Command("Set-VMBios"); - - cmd.Parameters.Add("VMName", vm.Name); - cmd.Parameters.Add(numLockEnabled ? "EnableNumLock" : "DisableNumLock"); - var bootOrder = bootFromCD - ? new[] { "CD", "IDE", "LegacyNetworkAdapter", "Floppy" } - : new[] { "IDE", "CD", "LegacyNetworkAdapter", "Floppy" }; - cmd.Parameters.Add("StartupOrder", bootOrder); - - powerShell.Execute(cmd, false); - } public static void UpdateProcessors(PowerShellManager powerShell, VirtualMachine vm, int cpuCores, int cpuLimitSettings, int cpuReserveSettings, int cpuWeightSettings) { Command cmd = new Command("Set-VMProcessor"); @@ -187,7 +155,7 @@ namespace WebsitePanel.Providers.Virtualization Command cmd = new Command("Set-VMMemory"); cmd.Parameters.Add("VMName", vm.Name); - cmd.Parameters.Add("StartupBytes", ramMB); + cmd.Parameters.Add("StartupBytes", ramMB * Size1M); powerShell.Execute(cmd, false); } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs index 2247adf7..e14db44b 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs @@ -71,6 +71,9 @@ namespace WebsitePanel.Providers.Virtualization private const string KVP_RAM_SUMMARY_KEY = "VM-RAM-Summary"; private const string KVP_HDD_SUMMARY_KEY = "VM-HDD-Summary"; + private const Int64 Size1G = 0x40000000; + private const Int64 Size1M = 0x100000; + #endregion #region Provider Settings @@ -166,10 +169,11 @@ namespace WebsitePanel.Providers.Virtualization vm.Name = result[0].GetProperty("Name").ToString(); vm.State = result[0].GetEnum("State"); vm.CpuUsage = ConvertNullableToInt32(result[0].GetProperty("CpuUsage")); - vm.RamUsage = ConvertNullableToInt64(result[0].GetProperty("MemoryAssigned")); + vm.RamUsage = ConvertNullableToInt64(result[0].GetProperty("MemoryAssigned")) / Size1M; vm.Uptime = Convert.ToInt64(result[0].GetProperty("UpTime").TotalMilliseconds); vm.Status = result[0].GetProperty("Status").ToString(); vm.ReplicationState = result[0].GetProperty("ReplicationState").ToString(); + vm.Generation = result[0].GetInt("Generation"); vm.Heartbeat = VirtualMachineHelper.GetVMHeartBeatStatus(PowerShell, vm.Name); @@ -183,12 +187,9 @@ namespace WebsitePanel.Providers.Virtualization vm.RamSize = memoryInfo.Startup; // BIOS - BiosInfo biosInfo = VirtualMachineHelper.GetVMBios(PowerShell, vm.Name); + BiosInfo biosInfo = BiosHelper.GetVMBios(PowerShell, vm.Name, vm.Generation); vm.NumLockEnabled = biosInfo.NumLockEnabled; - - vm.BootFromCD = false; - if ((biosInfo.StartupOrder != null) && (biosInfo.StartupOrder.Length > 0)) - vm.BootFromCD = (biosInfo.StartupOrder[0] == "CD"); + vm.BootFromCD = biosInfo.BootFromCD; // DVD drive var dvdInfo = DvdDriveHelper.Get(PowerShell, vm.Name); @@ -430,17 +431,15 @@ namespace WebsitePanel.Providers.Virtualization HostedSolutionLog.LogStart("UpdateVirtualMachine"); HostedSolutionLog.DebugInfo("Virtual Machine: {0}", vm.VirtualMachineId); - Runspace runSpace = null; - try { - var realVm = GetVirtualMachine(vm.VirtualMachineId); + var realVm = GetVirtualMachineEx(vm.VirtualMachineId); - VirtualMachineHelper.UpdateBios(PowerShell, realVm, vm.BootFromCD, vm.NumLockEnabled); + DvdDriveHelper.Update(PowerShell, realVm, vm.DvdDriveInstalled); // Dvd should be before bios because bios sets boot order + BiosHelper.UpdateBios(PowerShell, realVm, vm.BootFromCD, vm.NumLockEnabled); VirtualMachineHelper.UpdateProcessors(PowerShell, realVm, vm.CpuCores, CpuLimitSettings, CpuReserveSettings, CpuWeightSettings); VirtualMachineHelper.UpdateMemory(PowerShell, realVm, vm.RamSize); - DvdDriveHelper.Update(PowerShell, realVm, vm.DvdDriveInstalled); - + NetworkAdapterHelper.Update(PowerShell, vm); } catch (Exception ex) { @@ -989,69 +988,68 @@ namespace WebsitePanel.Providers.Virtualization #region DVD operations public string GetInsertedDVD(string vmId) { - // find CD/DVD disk - ManagementObject objDvd = wmi.GetWmiObject( - "Msvm_ResourceAllocationSettingData", "ResourceSubType = 'Microsoft Virtual CD/DVD Disk'" - + " and InstanceID Like 'Microsoft:{0}%'", vmId); + HostedSolutionLog.LogStart("GetInsertedDVD"); + HostedSolutionLog.DebugInfo("Virtual Machine: {0}", vmId); - if (objDvd == null) + DvdDriveInfo dvdInfo; + + try + { + var vm = GetVirtualMachineEx(vmId); + dvdInfo = DvdDriveHelper.Get(PowerShell, vm.Name); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("GetInsertedDVD", ex); + throw; + } + + if (dvdInfo == null) return null; - string[] path = (string[])objDvd["Connection"]; - if (path != null && path.Length > 0) - return path[0]; - - return null; + HostedSolutionLog.LogEnd("GetInsertedDVD"); + return dvdInfo.Path; } public JobResult InsertDVD(string vmId, string isoPath) { - isoPath = FileUtils.EvaluateSystemVariables(isoPath); + HostedSolutionLog.LogStart("InsertDVD"); + HostedSolutionLog.DebugInfo("Virtual Machine: {0}", vmId); + HostedSolutionLog.DebugInfo("Path: {0}", isoPath); - // find DVD drive - ManagementObject objDvdDrive = wmi.GetWmiObject( - "Msvm_ResourceAllocationSettingData", "ResourceSubType = 'Microsoft Synthetic DVD Drive'" - + " and InstanceID Like 'Microsoft:{0}%'", vmId); + try + { + var vm = GetVirtualMachineEx(vmId); + DvdDriveHelper.Set(PowerShell, vm.Name, isoPath); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("InsertDVD", ex); + throw; + } - // create CD/DVD disk - ManagementObject objDefaultDVD = wmi.GetWmiObject( - "Msvm_ResourceAllocationSettingData", "ResourceSubType = 'Microsoft Virtual CD/DVD Disk'" - + " and InstanceID like '%Default'"); - ManagementObject objDvd = (ManagementObject)objDefaultDVD.Clone(); - objDvd["Parent"] = objDvdDrive.Path; - objDvd["Connection"] = new string[] { isoPath }; - - // get VM service - ManagementObject objVmsvc = GetVirtualSystemManagementService(); - - // get method - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("AddVirtualSystemResources"); - inParams["TargetSystem"] = GetVirtualMachineObject(vmId); - inParams["ResourceSettingData"] = new string[] { objDvd.GetText(TextFormat.CimDtd20) }; - - // execute method - ManagementBaseObject outParams = objVmsvc.InvokeMethod("AddVirtualSystemResources", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + HostedSolutionLog.LogEnd("InsertDVD"); + return CreateSuccessJobResult(); } public JobResult EjectDVD(string vmId) { - // find CD/DVD disk - ManagementObject objDvd = wmi.GetWmiObject( - "Msvm_ResourceAllocationSettingData", "ResourceSubType = 'Microsoft Virtual CD/DVD Disk'" - + " and InstanceID Like 'Microsoft:{0}%'", vmId); + HostedSolutionLog.LogStart("InsertDVD"); + HostedSolutionLog.DebugInfo("Virtual Machine: {0}", vmId); - // get VM service - ManagementObject objVmsvc = GetVirtualSystemManagementService(); + try + { + var vm = GetVirtualMachineEx(vmId); + DvdDriveHelper.Set(PowerShell, vm.Name, null); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("InsertDVD", ex); + throw; + } - // get method - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("RemoveVirtualSystemResources"); - inParams["TargetSystem"] = GetVirtualMachineObject(vmId); - inParams["ResourceSettingData"] = new object[] { objDvd.Path.Path }; - - // execute method - ManagementBaseObject outParams = objVmsvc.InvokeMethod("RemoveVirtualSystemResources", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + HostedSolutionLog.LogEnd("InsertDVD"); + return CreateSuccessJobResult(); } #endregion @@ -1071,7 +1069,6 @@ namespace WebsitePanel.Providers.Virtualization HostedSolutionLog.LogStart("GetSwitches"); HostedSolutionLog.DebugInfo("ComputerName: {0}", computerName); - Runspace runSpace = null; List switches = new List(); try @@ -1100,53 +1097,67 @@ namespace WebsitePanel.Providers.Virtualization HostedSolutionLog.LogEnd("GetSwitches"); return switches; - } public bool SwitchExists(string switchId) { - ManagementObject objSwitch = wmi.GetWmiObject("msvm_VirtualSwitch", "Name = '{0}'", switchId); - return (objSwitch != null); + return GetSwitches().Any(s => s.Name == switchId); } public VirtualSwitch CreateSwitch(string name) { - // generate ID for new virtual switch - string id = Guid.NewGuid().ToString(); + // Create private switch - // get switch management object - ManagementObject objNetworkSvc = GetVirtualSwitchManagementService(); + HostedSolutionLog.LogStart("CreateSwitch"); + HostedSolutionLog.DebugInfo("Name: {0}", name); - ManagementBaseObject inParams = objNetworkSvc.GetMethodParameters("CreateSwitch"); - inParams["Name"] = id; - inParams["FriendlyName"] = name; - inParams["NumLearnableAddresses"] = SWITCH_PORTS_NUMBER; + VirtualSwitch virtualSwitch = null; - // invoke method - ManagementBaseObject outParams = objNetworkSvc.InvokeMethod("CreateSwitch", inParams, null); + try + { + Command cmd = new Command("New-VMSwitch"); - // process output parameters - ManagementObject objSwitch = wmi.GetWmiObjectByPath((string)outParams["CreatedVirtualSwitch"]); - return CreateSwitchFromWmiObject(objSwitch); + cmd.Parameters.Add("SwitchType", "Private"); + cmd.Parameters.Add("Name", name); + + Collection result = PowerShell.Execute(cmd, false); + if (result != null && result.Count > 0) + { + virtualSwitch = new VirtualSwitch(); + virtualSwitch.SwitchId = result[0].GetString("Name"); + virtualSwitch.Name = result[0].GetString("Name"); + virtualSwitch.SwitchType = result[0].GetString("SwitchType"); + } + } + catch (Exception ex) + { + HostedSolutionLog.LogError("CreateSwitch", ex); + throw; + } + + HostedSolutionLog.LogEnd("CreateSwitch"); + return virtualSwitch; } public ReturnCode DeleteSwitch(string switchId) { - // find requested switch - ManagementObject objSwitch = wmi.GetWmiObject("msvm_VirtualSwitch", "Name = '{0}'", switchId); + HostedSolutionLog.LogStart("DeleteSwitch"); + HostedSolutionLog.DebugInfo("switchId: {0}", switchId); - if (objSwitch == null) - throw new Exception("Virtual switch with the specified ID was not found."); + try + { + Command cmd = new Command("Remove-VMSwitch"); + cmd.Parameters.Add("Name", switchId); + PowerShell.Execute(cmd, false); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("DeleteSwitch", ex); + throw; + } - // get switch management object - ManagementObject objNetworkSvc = GetVirtualSwitchManagementService(); - - // get method params - ManagementBaseObject inParams = objNetworkSvc.GetMethodParameters("DeleteSwitch"); - inParams["VirtualSwitch"] = objSwitch.Path.Path; - - ManagementBaseObject outParams = (ManagementBaseObject)objNetworkSvc.InvokeMethod("DeleteSwitch", inParams, null); - return (ReturnCode)Convert.ToInt32(outParams["ReturnValue"]); + HostedSolutionLog.LogEnd("DeleteSwitch"); + return ReturnCode.OK; } #endregion @@ -2102,6 +2113,17 @@ exit", Convert.ToInt32(objDisk["Index"]))); #endregion #region Private Methods + + internal int ConvertNullableToInt32(object value) + { + return value == null ? 0 : Convert.ToInt32(value); + } + + internal long ConvertNullableToInt64(object value) + { + return value == null ? 0 : Convert.ToInt64(value); + } + protected JobResult CreateSuccessJobResult() { JobResult result = new JobResult(); @@ -2540,15 +2562,5 @@ exit", Convert.ToInt32(objDisk["Index"]))); #endregion - internal int ConvertNullableToInt32(object value) - { - return value == null ? 0 : Convert.ToInt32(value); - } - - internal long ConvertNullableToInt64(object value) - { - return value == null ? 0 : Convert.ToInt64(value); - } - } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj index 2198fbaa..d033344b 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj @@ -54,6 +54,7 @@ VersionInfo.cs + From 0a64381dacdd1f1fcdb2168135c9fe41940a4dac Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Mon, 9 Mar 2015 03:16:45 -0700 Subject: [PATCH 02/40] webdav portal fixes --- .../Windows2012.cs | 32 +++++++++- .../Extensions/UriExtensions.cs | 8 +++ .../WebsitePanel.WebDav.Core/IResource.cs | 2 +- .../Managers/WebDavManager.cs | 2 +- .../Controllers/FileSystemController.cs | 3 +- .../Helpers/ViewDataHelper.cs | 31 +++++++++ .../Resources/UI.Designer.cs | 63 +++++++++++++++++++ .../Resources/UI.resx | 21 +++++++ .../Views/FileSystem/_ResoursePartial.cshtml | 3 +- .../WebsitePanel.WebDavPortal.csproj | 1 + 10 files changed, 161 insertions(+), 5 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.WebDavPortal/Helpers/ViewDataHelper.cs diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs index b2eed0b3..f0a8caf3 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs @@ -342,7 +342,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage } } - file.Summary = reader[6] as string; + file.Summary = SanitizeXmlString(reader[6] as string); result.Add(file); } @@ -354,6 +354,36 @@ namespace WebsitePanel.Providers.EnterpriseStorage } + public string SanitizeXmlString(string xml) + { + if (xml == null) + { + return null; + } + + var buffer = new StringBuilder(xml.Length); + + foreach (char c in xml.Where(c => IsLegalXmlChar(c))) + { + buffer.Append(c); + } + + return buffer.ToString(); + } + + public bool IsLegalXmlChar(int character) + { + return + ( + character == 0x9 /* == '\t' == 9 */ || + character == 0xA /* == '\n' == 10 */ || + character == 0xD /* == '\r' == 13 */ || + (character >= 0x20 && character <= 0xD7FF) || + (character >= 0xE000 && character <= 0xFFFD) || + (character >= 0x10000 && character <= 0x10FFFF) + ); + } + #region HostingServiceProvider methods public override string[] Install() diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Extensions/UriExtensions.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Extensions/UriExtensions.cs index 8ba4aeeb..0311ecce 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Extensions/UriExtensions.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Extensions/UriExtensions.cs @@ -9,5 +9,13 @@ namespace WebsitePanel.WebDav.Core.Extensions { return new Uri(paths.Aggregate(uri.AbsoluteUri, (current, path) => string.Format("{0}/{1}", current.TrimEnd('/'), path.TrimStart('/')))); } + + public static string ToStringPath(this Uri uri) + { + var hostStart = uri.ToString().IndexOf(uri.Host, System.StringComparison.Ordinal); + var hostLength = uri.Host.Length; + + return uri.ToString().Substring(hostStart + hostLength, uri.ToString().Length - hostStart - hostLength); + } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs index 1a099ebf..2f706746 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs @@ -483,7 +483,7 @@ namespace WebsitePanel.WebDav.Core { _href = href; - var baseUrl = href.AbsoluteUri.Remove(href.AbsoluteUri.Length - href.Segments.Last().Length); + var baseUrl = href.ToString().Remove(href.ToString().Length - href.ToString().Trim('/').Split('/').Last().Length); _baseUri = new Uri(baseUrl); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs index d3f837a7..5853f525 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs @@ -52,7 +52,7 @@ namespace WebsitePanel.WebDav.Core.Managers Href = new Uri(x.Url), ItemType = ItemType.Folder, ContentLength = x.Size * 1024 * 1024, - AllocatedSpace = x.FRSMQuotaMB * 1024 * 1024, + AllocatedSpace = (long)x.FRSMQuotaMB * 1024 * 1024, IsRootItem = true }).ToArray(); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs index 9d4016e1..c66cb750 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs @@ -352,7 +352,8 @@ namespace WebsitePanel.WebDavPortal.Controllers foreach (var item in items) { var opener = _openerManager[Path.GetExtension(item.DisplayName)]; - var pathPart = item.Href.AbsolutePath.Replace("/" + WspContext.User.OrganizationId, "").TrimStart('/'); + //var pathPart = item.Href.ToString().Replace("/" + WspContext.User.OrganizationId, "").TrimStart('/'); + var pathPart = item.Href.ToStringPath().Replace("/" + WspContext.User.OrganizationId, "").TrimStart('/'); switch (opener) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Helpers/ViewDataHelper.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Helpers/ViewDataHelper.cs new file mode 100644 index 00000000..6bcbccc6 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Helpers/ViewDataHelper.cs @@ -0,0 +1,31 @@ +using System; + +namespace WebsitePanel.WebDavPortal.Helpers +{ + public class ViewDataHelper + { + public static string BytesToSize(long bytes) + { + if (bytes == 0) + { + return string.Format("0 {0}", Resources.UI.Byte); + } + + var k = 1024; + + var sizes = new[] + { + Resources.UI.Bytes, + Resources.UI.KilobyteShort, + Resources.UI.MegabyteShort, + Resources.UI.GigabyteShort, + Resources.UI.TerabyteShort, + Resources.UI.PetabyteShort, + Resources.UI.ExabyteShort + }; + + var i = (int) Math.Floor(Math.Log(bytes)/Math.Log(k)); + return string.Format("{0} {1}", Math.Round(bytes/Math.Pow(k, i), 3), sizes[i]); + } + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs index 0aa9d823..4a5a4578 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs @@ -69,6 +69,24 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Byte. + /// + public static string Byte { + get { + return ResourceManager.GetString("Byte", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bytes. + /// + public static string Bytes { + get { + return ResourceManager.GetString("Bytes", resourceCulture); + } + } + /// /// Looks up a localized string similar to Cancel. /// @@ -150,6 +168,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to EB. + /// + public static string ExabyteShort { + get { + return ResourceManager.GetString("ExabyteShort", resourceCulture); + } + } + /// /// Looks up a localized string similar to File. /// @@ -195,6 +222,24 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to KB. + /// + public static string KilobyteShort { + get { + return ResourceManager.GetString("KilobyteShort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MB. + /// + public static string MegabyteShort { + get { + return ResourceManager.GetString("MegabyteShort", resourceCulture); + } + } + /// /// Looks up a localized string similar to Modified. /// @@ -240,6 +285,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to PB. + /// + public static string PetabyteShort { + get { + return ResourceManager.GetString("PetabyteShort", resourceCulture); + } + } + /// /// Looks up a localized string similar to Please wait.... /// @@ -321,6 +375,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to TB. + /// + public static string TerabyteShort { + get { + return ResourceManager.GetString("TerabyteShort", resourceCulture); + } + } + /// /// Looks up a localized string similar to Type. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx index 7d3fbf56..2ffe1406 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx @@ -120,6 +120,12 @@ Actions + + Byte + + + Bytes + Cancel @@ -147,6 +153,9 @@ Error + + EB + File @@ -162,6 +171,12 @@ {0} items was removed. + + KB + + + MB + Modified @@ -177,6 +192,9 @@ or drag and drop files here. + + PB + Please wait... @@ -204,6 +222,9 @@ Table + + TB + Type diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ResoursePartial.cshtml b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ResoursePartial.cshtml index 274f677b..9285872a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ResoursePartial.cshtml +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ResoursePartial.cshtml @@ -4,6 +4,7 @@ @using WebsitePanel.WebDav.Core.Config @using WebsitePanel.WebDavPortal.FileOperations @using Ninject; +@using WebsitePanel.WebDavPortal.Helpers @using WebsitePanel.WebDavPortal.Resources @using WebsitePanel.WebDavPortal.UI @using WebsitePanel.WebDavPortal.UI.Routes @@ -63,7 +64,7 @@

@percent%

-

@Math.Round(Convert.ToDecimal(resource.ContentLength) / 1024, 2) / @Math.Round(Convert.ToDecimal(resource.AllocatedSpace) / 1024, 2) @UI.GigabyteShort

+

@ViewDataHelper.BytesToSize(resource.ContentLength) / @ViewDataHelper.BytesToSize(resource.AllocatedSpace)

}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj index 6ccbc782..a2c21f6c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj @@ -183,6 +183,7 @@ Global.asax + From 2ce49650d4ab2a348762cf3d8db52588ebaed4f3 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Mon, 9 Mar 2015 03:55:14 -0700 Subject: [PATCH 03/40] webdav portal fixes --- WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs index 2f706746..8a46fff6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs @@ -260,7 +260,7 @@ namespace WebsitePanel.WebDav.Core { get { - string displayName = _href.AbsoluteUri.Trim('/').Replace(_baseUri.AbsoluteUri.Trim('/'), ""); + string displayName = _href.ToString().Trim('/').Replace(_baseUri.ToString().Trim('/'), ""); displayName = Regex.Replace(displayName, "\\/$", ""); Match displayNameMatch = Regex.Match(displayName, "([\\/]+)$"); if (displayNameMatch.Success) From d24cad7ac7f271d702f47e56bd088fa04163f9fb Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Mon, 9 Mar 2015 06:53:35 -0700 Subject: [PATCH 04/40] RDS Fixes --- .../Windows2012.cs | 116 +++++++++++++++++- .../App_LocalResources/RDS_Settings.ascx.resx | 3 + .../ProviderControls/RDS_Settings.ascx | 9 ++ .../ProviderControls/RDS_Settings.ascx.cs | 2 + .../RDS_Settings.ascx.designer.cs | 27 ++++ .../UserControls/RDSCollectionApps.ascx.cs | 2 +- 6 files changed, 154 insertions(+), 5 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs index 930584d2..39cac14c 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs @@ -70,7 +70,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices private const string AddNpsString = "netsh nps add np name=\"\"{0}\"\" policysource=\"1\" processingorder=\"{1}\" conditionid=\"0x3d\" conditiondata=\"^5$\" conditionid=\"0x1fb5\" conditiondata=\"{2}\" conditionid=\"0x1e\" conditiondata=\"UserAuthType:(PW|CA)\" profileid=\"0x1005\" profiledata=\"TRUE\" profileid=\"0x100f\" profiledata=\"TRUE\" profileid=\"0x1009\" profiledata=\"0x7\" profileid=\"0x1fe6\" profiledata=\"0x40000000\""; private const string WspAdministratorsGroupDescription = "WSP Org Administrators"; private const string RdsServersOU = "RDSServers"; - private const string RDSHelpDeskComputerGroup = "Websitepanel-RDSHelpDesk-Computer"; + private const string RdsServersRootOU = "RDSRootServers"; + private const string RDSHelpDeskComputerGroup = "Websitepanel-RDSHelpDesk-Computer"; private const string RDSHelpDeskGroup = "WSP-HelpDeskAdministrators"; private const string RDSHelpDeskGroupDescription = "WSP Help Desk Administrators"; private const string LocalAdministratorsGroupName = "Administrators"; @@ -95,6 +96,14 @@ namespace WebsitePanel.Providers.RemoteDesktopServices } } + private string ComputersRootOU + { + get + { + return ProviderSettings["ComputersRootOU"]; + } + } + private string CentralNpsHost { get @@ -313,6 +322,9 @@ namespace WebsitePanel.Providers.RemoteDesktopServices CheckOrCreateHelpDeskComputerGroup(); string helpDeskGroupSamAccountName = CheckOrCreateAdGroup(GetHelpDeskGroupPath(RDSHelpDeskGroup), GetRootOUPath(), RDSHelpDeskGroup, RDSHelpDeskGroupDescription); + string groupName = GetLocalAdminsGroupName(collection.Name); + string groupPath = GetGroupPath(organizationId, collection.Name, groupName); + string localAdminsGroupSamAccountName = CheckOrCreateAdGroup(groupPath, GetOrganizationPath(organizationId), groupName, WspAdministratorsGroupDescription); if (!ActiveDirectoryUtils.AdObjectExists(GetUsersGroupPath(organizationId, collection.Name))) { @@ -344,7 +356,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices //add session servers to group foreach (var rdsServer in collection.Servers) { - AddAdGroupToLocalAdmins(runSpace, rdsServer.FqdName, helpDeskGroupSamAccountName); + AddAdGroupToLocalAdmins(runSpace, rdsServer.FqdName, helpDeskGroupSamAccountName); + AddAdGroupToLocalAdmins(runSpace, rdsServer.FqdName, localAdminsGroupSamAccountName); AddComputerToCollectionAdComputerGroup(organizationId, collection.Name, rdsServer); } } @@ -570,8 +583,12 @@ namespace WebsitePanel.Providers.RemoteDesktopServices ExecuteShellCommand(runSpace, cmd, false); CheckOrCreateHelpDeskComputerGroup(); - string helpDeskGroupSamAccountName = CheckOrCreateAdGroup(GetHelpDeskGroupPath(RDSHelpDeskGroup), GetRootOUPath(), RDSHelpDeskGroup, RDSHelpDeskGroupDescription); + string helpDeskGroupSamAccountName = CheckOrCreateAdGroup(GetHelpDeskGroupPath(RDSHelpDeskGroup), GetRootOUPath(), RDSHelpDeskGroup, RDSHelpDeskGroupDescription); + string groupName = GetLocalAdminsGroupName(collectionName); + string groupPath = GetGroupPath(organizationId, collectionName, groupName); + string localAdminsGroupSamAccountName = CheckOrCreateAdGroup(groupPath, GetOrganizationPath(organizationId), groupName, WspAdministratorsGroupDescription); + AddAdGroupToLocalAdmins(runSpace, server.FqdName, LocalAdministratorsGroupName); AddAdGroupToLocalAdmins(runSpace, server.FqdName, helpDeskGroupSamAccountName); AddComputerToCollectionAdComputerGroup(organizationId, collectionName, server); } @@ -1363,6 +1380,14 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return installationResult; } + private void CheckOrCreateComputersRoot(string computersRootPath) + { + if (ActiveDirectoryUtils.AdObjectExists(computersRootPath) && !ActiveDirectoryUtils.AdObjectExists(GetRdsServersGroupPath())) + { + ActiveDirectoryUtils.CreateGroup(computersRootPath, RdsServersRootOU); + } + } + public void MoveRdsServerToTenantOU(string hostName, string organizationId) { var tenantComputerGroupPath = GetTenantComputerGroupPath(organizationId); @@ -1373,7 +1398,14 @@ namespace WebsitePanel.Providers.RemoteDesktopServices } hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""); - var computerPath = GetComputerPath(hostName, true); + var computerPath = GetComputerPath(hostName, true); + var rootComputerPath = GetRdsServerPath(hostName); + var tenantComputerPath = GetTenantComputerPath(hostName, organizationId); + + if (!string.IsNullOrEmpty(ComputersRootOU)) + { + CheckOrCreateComputersRoot(GetComputersRootPath()); + } if(!ActiveDirectoryUtils.AdObjectExists(computerPath)) { @@ -1385,6 +1417,14 @@ namespace WebsitePanel.Providers.RemoteDesktopServices var computerObject = ActiveDirectoryUtils.GetADObject(computerPath); var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName"); + if (!string.IsNullOrEmpty(ComputersRootOU)) + { + if (ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersRootOU)) + { + ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, GetRdsServersGroupPath()); + } + } + if (!ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersOU)) { DirectoryEntry group = new DirectoryEntry(tenantComputerGroupPath); @@ -1400,6 +1440,12 @@ namespace WebsitePanel.Providers.RemoteDesktopServices var tenantComputerGroupPath = GetTenantComputerGroupPath(organizationId); hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""); var tenantComputerPath = GetTenantComputerPath(hostName, organizationId); + var rootComputerPath = GetRdsServerPath(hostName); + + if (!string.IsNullOrEmpty(ComputersRootOU)) + { + CheckOrCreateComputersRoot(GetComputersRootPath()); + } var computerPath = GetComputerPath(hostName, true); @@ -1417,6 +1463,14 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, tenantComputerGroupPath); } + + if (ActiveDirectoryUtils.AdObjectExists(GetComputersRootPath()) && !string.IsNullOrEmpty(ComputersRootOU) && !ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersRootOU)) + { + DirectoryEntry group = new DirectoryEntry(GetRdsServersGroupPath()); + group.Invoke("Add", computerObject.Path); + + group.CommitChanges(); + } } } @@ -1543,6 +1597,10 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { remoteApp.Users = users; } + else + { + remoteApp.Users = null; + } return remoteApp; } @@ -1734,6 +1792,56 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return sb.ToString(); } + private string GetComputersRootPath() + { + StringBuilder sb = new StringBuilder(); + + AppendProtocol(sb); + AppendDomainController(sb); + AppendOUPath(sb, ComputersRootOU); + AppendDomainPath(sb, RootDomain); + + return sb.ToString(); + } + + private string GetRdsServersGroupPath() + { + StringBuilder sb = new StringBuilder(); + + AppendProtocol(sb); + AppendDomainController(sb); + AppendCNPath(sb, RdsServersRootOU); + AppendOUPath(sb, ComputersRootOU); + AppendDomainPath(sb, RootDomain); + + return sb.ToString(); + } + + private string GetRdsServerPath(string name) + { + StringBuilder sb = new StringBuilder(); + + AppendProtocol(sb); + AppendDomainController(sb); + AppendCNPath(sb, name); + AppendCNPath(sb, RdsServersRootOU); + AppendOUPath(sb, ComputersRootOU); + AppendDomainPath(sb, RootDomain); + + return sb.ToString(); + } + + private string GetRootPath() + { + StringBuilder sb = new StringBuilder(); + + AppendProtocol(sb); + AppendDomainController(sb); + AppendDomainPath(sb, RootDomain); + + return sb.ToString(); + } + internal string GetTenantComputerGroupPath(string organizationId) { StringBuilder sb = new StringBuilder(); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx index d8e514f9..dd9c465d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx @@ -144,4 +144,7 @@ SAN Name: + + Computers Root OU: + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx index 62f67170..415fd085 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx @@ -76,6 +76,15 @@ + + + + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs index 19c684e7..8806b61d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs @@ -83,6 +83,7 @@ namespace WebsitePanel.Portal.ProviderControls UpdateLyncServersGrid(); txtRootOU.Text = settings["RootOU"]; + txtComputersRootOu.Text = settings["ComputersRootOU"]; txtPrimaryDomainController.Text = settings["PrimaryDomainController"]; if (!string.IsNullOrEmpty(settings["UseCentralNPS"]) && bool.TrueString == settings["UseCentralNPS"]) @@ -103,6 +104,7 @@ namespace WebsitePanel.Portal.ProviderControls { settings["ConnectionBroker"] = txtConnectionBroker.Text; settings["RootOU"] = txtRootOU.Text; + settings["ComputersRootOU"] = txtComputersRootOu.Text; settings["PrimaryDomainController"] = txtPrimaryDomainController.Text; settings["UseCentralNPS"] = chkUseCentralNPS.Checked.ToString(); settings["CentralNPS"] = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs index 0a5bf54b..81ceb1a6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs @@ -138,6 +138,33 @@ namespace WebsitePanel.Portal.ProviderControls { /// protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator4; + /// + /// lblComputersRootOU control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblComputersRootOU; + + /// + /// txtComputersRootOu control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtComputersRootOu; + + /// + /// RequiredFieldValidator1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1; + /// /// lblPrimaryDomainController control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionApps.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionApps.ascx.cs index c293ea26..47e39a3d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionApps.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionApps.ascx.cs @@ -215,7 +215,7 @@ namespace WebsitePanel.Portal.RDS.UserControls app.RequiredCommandLine = ((HiddenField)row.FindControl("hfRequiredCommandLine")).Value; var users = ((HiddenField)row.FindControl("hfUsers")).Value; - if (users != null) + if (!string.IsNullOrEmpty(users)) { app.Users = new string[]{"New"}; } From 9c991c861183861f21a3fec333d46aaa4fedf3b2 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Mon, 9 Mar 2015 10:22:42 -0400 Subject: [PATCH 05/40] Added tag build-2.1.0.608 for changeset 4ba072d0a9b2 From 4efc1b045697c4f6e5386fafd5054160636a82be Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Mon, 9 Mar 2015 11:23:41 -0400 Subject: [PATCH 06/40] Added tag build-2.1.0.609 for changeset 4b919035dcca From a7672a30123e510b9f0a60572bcff1958a759d83 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Mon, 9 Mar 2015 12:05:24 -0400 Subject: [PATCH 07/40] Added tag build-2.1.0.610 for changeset 3056ccfd4d17 From fd8ca11f383d14f38bdfcb3911a8a1a059bce7d2 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Tue, 10 Mar 2015 06:31:40 -0700 Subject: [PATCH 08/40] Help desk groups descriptions added --- .../Windows2012.cs | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs index 39cac14c..56a70d39 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs @@ -67,8 +67,10 @@ namespace WebsitePanel.Providers.RemoteDesktopServices private const string Admins = "Admins"; private const string RdsGroupFormat = "rds-{0}-{1}"; private const string RdsModuleName = "RemoteDesktopServices"; - private const string AddNpsString = "netsh nps add np name=\"\"{0}\"\" policysource=\"1\" processingorder=\"{1}\" conditionid=\"0x3d\" conditiondata=\"^5$\" conditionid=\"0x1fb5\" conditiondata=\"{2}\" conditionid=\"0x1e\" conditiondata=\"UserAuthType:(PW|CA)\" profileid=\"0x1005\" profiledata=\"TRUE\" profileid=\"0x100f\" profiledata=\"TRUE\" profileid=\"0x1009\" profiledata=\"0x7\" profileid=\"0x1fe6\" profiledata=\"0x40000000\""; - private const string WspAdministratorsGroupDescription = "WSP Org Administrators"; + private const string AddNpsString = "netsh nps add np name=\"\"{0}\"\" policysource=\"1\" processingorder=\"{1}\" conditionid=\"0x3d\" conditiondata=\"^5$\" conditionid=\"0x1fb5\" conditiondata=\"{2}\" conditionid=\"0x1e\" conditiondata=\"UserAuthType:(PW|CA)\" profileid=\"0x1005\" profiledata=\"TRUE\" profileid=\"0x100f\" profiledata=\"TRUE\" profileid=\"0x1009\" profiledata=\"0x7\" profileid=\"0x1fe6\" profiledata=\"0x40000000\""; + private const string WspAdministratorsGroupDescription = "WSP RDS Collection Adminstrators"; + private const string RdsCollectionUsersGroupDescription = "WSP RDS Collection Users"; + private const string RdsCollectionComputersGroupDescription = "WSP RDS Collection Computers"; private const string RdsServersOU = "RDSServers"; private const string RdsServersRootOU = "RDSRootServers"; private const string RDSHelpDeskComputerGroup = "Websitepanel-RDSHelpDesk-Computer"; @@ -310,27 +312,13 @@ namespace WebsitePanel.Providers.RemoteDesktopServices EditRdsCollectionSettingsInternal(collection, runSpace); var orgPath = GetOrganizationPath(organizationId); - - if (!ActiveDirectoryUtils.AdObjectExists(GetComputerGroupPath(organizationId, collection.Name))) - { - //Create computer group - ActiveDirectoryUtils.CreateGroup(orgPath, GetComputersGroupName(collection.Name)); - - //todo Connection broker server must be added by default ??? - //ActiveDirectoryUtils.AddObjectToGroup(GetComputerPath(ConnectionBroker), GetComputerGroupPath(organizationId, collection.Name)); - } - + CheckOrCreateAdGroup(GetComputerGroupPath(organizationId, collection.Name), orgPath, GetComputersGroupName(collection.Name), RdsCollectionComputersGroupDescription); CheckOrCreateHelpDeskComputerGroup(); string helpDeskGroupSamAccountName = CheckOrCreateAdGroup(GetHelpDeskGroupPath(RDSHelpDeskGroup), GetRootOUPath(), RDSHelpDeskGroup, RDSHelpDeskGroupDescription); string groupName = GetLocalAdminsGroupName(collection.Name); string groupPath = GetGroupPath(organizationId, collection.Name, groupName); string localAdminsGroupSamAccountName = CheckOrCreateAdGroup(groupPath, GetOrganizationPath(organizationId), groupName, WspAdministratorsGroupDescription); - - if (!ActiveDirectoryUtils.AdObjectExists(GetUsersGroupPath(organizationId, collection.Name))) - { - //Create user group - ActiveDirectoryUtils.CreateGroup(orgPath, GetUsersGroupName(collection.Name)); - } + CheckOrCreateAdGroup(GetUsersGroupPath(organizationId, collection.Name), orgPath, GetUsersGroupName(collection.Name), RdsCollectionUsersGroupDescription); var capPolicyName = GetPolicyName(organizationId, collection.Name, RdsPolicyTypes.RdCap); var rapPolicyName = GetPolicyName(organizationId, collection.Name, RdsPolicyTypes.RdRap); From 743563baa20b8db0ea4e8a214b2a248254f6cfd5 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Wed, 11 Mar 2015 01:09:08 -0700 Subject: [PATCH 09/40] RDS fixes --- .../Windows2012.cs | 148 ++++++------------ .../RDS/RDSEditCollectionUsers.ascx.cs | 6 + .../UserControls/RDSCollectionUsers.ascx.cs | 21 ++- 3 files changed, 71 insertions(+), 104 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs index 56a70d39..41c6e520 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs @@ -71,8 +71,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices private const string WspAdministratorsGroupDescription = "WSP RDS Collection Adminstrators"; private const string RdsCollectionUsersGroupDescription = "WSP RDS Collection Users"; private const string RdsCollectionComputersGroupDescription = "WSP RDS Collection Computers"; - private const string RdsServersOU = "RDSServers"; - private const string RdsServersRootOU = "RDSRootServers"; + private const string RdsServersOU = "RDSServersOU"; + private const string RdsServersRootOU = "RDSRootServersOU"; private const string RDSHelpDeskComputerGroup = "Websitepanel-RDSHelpDesk-Computer"; private const string RDSHelpDeskGroup = "WSP-HelpDeskAdministrators"; private const string RDSHelpDeskGroupDescription = "WSP Help Desk Administrators"; @@ -339,11 +339,12 @@ namespace WebsitePanel.Providers.RemoteDesktopServices } //add user group to collection - AddUserGroupsToCollection(runSpace, collection.Name, new List { GetUsersGroupName(collection.Name) }); + AddUserGroupsToCollection(runSpace, collection.Name, new List { GetUsersGroupName(collection.Name) }); //add session servers to group foreach (var rdsServer in collection.Servers) - { + { + MoveRdsServerToTenantOU(rdsServer.Name, organizationId); AddAdGroupToLocalAdmins(runSpace, rdsServer.FqdName, helpDeskGroupSamAccountName); AddAdGroupToLocalAdmins(runSpace, rdsServer.FqdName, localAdminsGroupSamAccountName); AddComputerToCollectionAdComputerGroup(organizationId, collection.Name, rdsServer); @@ -1281,28 +1282,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices } private void AddComputerToCollectionAdComputerGroup(string organizationId, string collectionName, RdsServer server) - { - var computerPath = GetComputerPath(server.Name, false); - var computerGroupName = GetComputersGroupName( collectionName); + { + var computerGroupName = GetComputersGroupName( collectionName); + var computerObject = GetComputerObject(server.Name); - if (!ActiveDirectoryUtils.AdObjectExists(computerPath)) - { - computerPath = GetComputerPath(server.Name, true); - } - - if (ActiveDirectoryUtils.AdObjectExists(computerPath)) - { - var computerObject = ActiveDirectoryUtils.GetADObject(computerPath); + if (computerObject != null) + { var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName"); if (!ActiveDirectoryUtils.IsComputerInGroup(samName, computerGroupName)) { - ActiveDirectoryUtils.AddObjectToGroup(computerPath, GetComputerGroupPath(organizationId, collectionName)); + ActiveDirectoryUtils.AddObjectToGroup(computerObject.Path, GetComputerGroupPath(organizationId, collectionName)); } if (!ActiveDirectoryUtils.IsComputerInGroup(samName, RDSHelpDeskComputerGroup)) { - ActiveDirectoryUtils.AddObjectToGroup(computerPath, GetHelpDeskGroupPath(RDSHelpDeskComputerGroup)); + ActiveDirectoryUtils.AddObjectToGroup(computerObject.Path, GetHelpDeskGroupPath(RDSHelpDeskComputerGroup)); } } @@ -1310,30 +1305,24 @@ namespace WebsitePanel.Providers.RemoteDesktopServices } private void RemoveComputerFromCollectionAdComputerGroup(string organizationId, string collectionName, RdsServer server) - { - var computerPath = GetComputerPath(server.Name, false); + { var computerGroupName = GetComputersGroupName(collectionName); + var computerObject = GetComputerObject(server.Name); - if (!ActiveDirectoryUtils.AdObjectExists(computerPath)) - { - computerPath = GetComputerPath(server.Name, true); - } - - if (ActiveDirectoryUtils.AdObjectExists(computerPath)) - { - var computerObject = ActiveDirectoryUtils.GetADObject(computerPath); + if (computerObject != null) + { var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName"); if (ActiveDirectoryUtils.IsComputerInGroup(samName, computerGroupName)) { - ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, GetComputerGroupPath(organizationId, collectionName)); + ActiveDirectoryUtils.RemoveObjectFromGroup(computerObject.Path, GetComputerGroupPath(organizationId, collectionName)); } if (ActiveDirectoryUtils.AdObjectExists(GetHelpDeskGroupPath(RDSHelpDeskComputerGroup))) { if (ActiveDirectoryUtils.IsComputerInGroup(samName, RDSHelpDeskComputerGroup)) { - ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, GetHelpDeskGroupPath(RDSHelpDeskComputerGroup)); + ActiveDirectoryUtils.RemoveObjectFromGroup(computerObject.Path, GetHelpDeskGroupPath(RDSHelpDeskComputerGroup)); } } } @@ -1372,7 +1361,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { if (ActiveDirectoryUtils.AdObjectExists(computersRootPath) && !ActiveDirectoryUtils.AdObjectExists(GetRdsServersGroupPath())) { - ActiveDirectoryUtils.CreateGroup(computersRootPath, RdsServersRootOU); + //ActiveDirectoryUtils.CreateGroup(computersRootPath, RdsServersRootOU); + ActiveDirectoryUtils.CreateOrganizationalUnit(RdsServersRootOU, computersRootPath); } } @@ -1382,82 +1372,57 @@ namespace WebsitePanel.Providers.RemoteDesktopServices if (!ActiveDirectoryUtils.AdObjectExists(tenantComputerGroupPath)) { - ActiveDirectoryUtils.CreateGroup(GetOrganizationPath(organizationId), RdsServersOU); + ActiveDirectoryUtils.CreateOrganizationalUnit(RdsServersOU, GetOrganizationPath(organizationId)); } - hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""); - var computerPath = GetComputerPath(hostName, true); + hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""); var rootComputerPath = GetRdsServerPath(hostName); var tenantComputerPath = GetTenantComputerPath(hostName, organizationId); if (!string.IsNullOrEmpty(ComputersRootOU)) { CheckOrCreateComputersRoot(GetComputersRootPath()); - } + } + + var computerObject = GetComputerObject(hostName); - if(!ActiveDirectoryUtils.AdObjectExists(computerPath)) + if (computerObject != null) { - computerPath = GetComputerPath(hostName, false); - } - - if (ActiveDirectoryUtils.AdObjectExists(computerPath)) - { - var computerObject = ActiveDirectoryUtils.GetADObject(computerPath); var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName"); - if (!string.IsNullOrEmpty(ComputersRootOU)) - { - if (ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersRootOU)) - { - ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, GetRdsServersGroupPath()); - } - } - if (!ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersOU)) - { + { DirectoryEntry group = new DirectoryEntry(tenantComputerGroupPath); - group.Invoke("Add", computerObject.Path); - - group.CommitChanges(); + computerObject.MoveTo(group); } - } + } } public void RemoveRdsServerFromTenantOU(string hostName, string organizationId) { var tenantComputerGroupPath = GetTenantComputerGroupPath(organizationId); - hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""); - var tenantComputerPath = GetTenantComputerPath(hostName, organizationId); - var rootComputerPath = GetRdsServerPath(hostName); + hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""); if (!string.IsNullOrEmpty(ComputersRootOU)) { CheckOrCreateComputersRoot(GetComputersRootPath()); - } + } - var computerPath = GetComputerPath(hostName, true); - - if (!ActiveDirectoryUtils.AdObjectExists(computerPath)) + if (!ActiveDirectoryUtils.AdObjectExists(tenantComputerGroupPath)) { - computerPath = GetComputerPath(hostName, false); + ActiveDirectoryUtils.CreateOrganizationalUnit(RdsServersOU, GetOrganizationPath(organizationId)); } - - if (ActiveDirectoryUtils.AdObjectExists(computerPath)) + + var computerObject = GetComputerObject(hostName); + + if (computerObject != null) { - var computerObject = ActiveDirectoryUtils.GetADObject(computerPath); var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName"); - - if (ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersOU)) - { - ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, tenantComputerGroupPath); - } - + if (ActiveDirectoryUtils.AdObjectExists(GetComputersRootPath()) && !string.IsNullOrEmpty(ComputersRootOU) && !ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersRootOU)) { DirectoryEntry group = new DirectoryEntry(GetRdsServersGroupPath()); - group.Invoke("Add", computerObject.Path); - - group.CommitChanges(); + computerObject.MoveTo(group); } } } @@ -1744,26 +1709,17 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return sb.ToString(); } - private string GetComputerPath(string objName, bool domainController) + private DirectoryEntry GetComputerObject(string computerName) { - StringBuilder sb = new StringBuilder(); - // append provider - AppendProtocol(sb); - AppendDomainController(sb); - AppendCNPath(sb, objName); - if (domainController) + DirectorySearcher deSearch = new DirectorySearcher { - AppendOUPath(sb, AdDcComputers); - } - else - { - AppendCNPath(sb, Computers); - - } - AppendDomainPath(sb, RootDomain); - - return sb.ToString(); - } + Filter = string.Format("(&(objectCategory=computer)(name={0}))", computerName) + }; + + SearchResult results = deSearch.FindOne(); + + return results.GetDirectoryEntry(); + } private string GetTenantComputerPath(string objName, string organizationId) { @@ -1772,7 +1728,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices AppendProtocol(sb); AppendDomainController(sb); AppendCNPath(sb, objName); - AppendCNPath(sb, RdsServersOU); + AppendOUPath(sb, RdsServersOU); AppendOUPath(sb, organizationId); AppendOUPath(sb, RootOU); AppendDomainPath(sb, RootDomain); @@ -1798,7 +1754,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices AppendProtocol(sb); AppendDomainController(sb); - AppendCNPath(sb, RdsServersRootOU); + AppendOUPath(sb, RdsServersRootOU); AppendOUPath(sb, ComputersRootOU); AppendDomainPath(sb, RootDomain); @@ -1812,7 +1768,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices AppendProtocol(sb); AppendDomainController(sb); AppendCNPath(sb, name); - AppendCNPath(sb, RdsServersRootOU); + AppendOUPath(sb, RdsServersRootOU); AppendOUPath(sb, ComputersRootOU); AppendDomainPath(sb, RootDomain); @@ -1836,7 +1792,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices AppendProtocol(sb); AppendDomainController(sb); - AppendCNPath(sb, RdsServersOU); + AppendOUPath(sb, RdsServersOU); AppendOUPath(sb, organizationId); AppendOUPath(sb, RootOU); AppendDomainPath(sb, RootDomain); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs index 5bcd026b..8af9191a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs @@ -77,6 +77,12 @@ namespace WebsitePanel.Portal.RDS { usersQuota.QuotaAvailable = tenantStats.AllocatedRdsUsers - tenantStats.CreatedRdsUsers; } + + if (cntx.Quotas.ContainsKey(Quotas.RDS_USERS)) + { + int rdsUsersCount = ES.Services.RDS.GetOrganizationRdsUsersCount(PanelRequest.ItemID); + users.ButtonAddEnabled = (!(cntx.Quotas[Quotas.RDS_USERS].QuotaAllocatedValue <= rdsUsersCount) || (cntx.Quotas[Quotas.RDS_USERS].QuotaAllocatedValue == -1)); + } } private bool SaveRdsUsers() diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs index 40c4311a..76837a86 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs @@ -42,6 +42,18 @@ namespace WebsitePanel.Portal.RDS.UserControls { public const string DirectionString = "DirectionString"; + public bool ButtonAddEnabled + { + get + { + return btnAdd.Enabled; + } + set + { + btnAdd.Enabled = value; + } + } + protected enum SelectedState { All, @@ -74,14 +86,7 @@ namespace WebsitePanel.Portal.RDS.UserControls }"; Page.ClientScript.RegisterClientScriptBlock(typeof(RDSCollectionUsers), "SelectAllCheckboxes", script, true); - } - - PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); - if (cntx.Quotas.ContainsKey(Quotas.RDS_USERS)) - { - int rdsUsersCount = ES.Services.RDS.GetOrganizationRdsUsersCount(PanelRequest.ItemID); - btnAdd.Enabled = (!(cntx.Quotas[Quotas.RDS_USERS].QuotaAllocatedValue <= rdsUsersCount) || (cntx.Quotas[Quotas.RDS_USERS].QuotaAllocatedValue == -1)); - } + } } protected void btnAdd_Click(object sender, EventArgs e) From 50e902b94d17a98d4d0fc1eb9e7322fb55656abc Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Wed, 11 Mar 2015 05:34:35 -0700 Subject: [PATCH 10/40] webdav portal create new ability added --- .../Config/Entities/OfficeOnlineCollection.cs | 2 + .../WebConfigSections/OfficeOnlineElement.cs | 8 ++ .../OfficeOnlineElementCollection.cs | 8 ++ .../Entities/Owa/CheckFileInfo.cs | 7 +- .../Interfaces/Owa/IWopiServer.cs | 6 +- .../Managers/WebDavManager.cs | 4 +- .../Owa/CobaltSessionManager.cs | 17 ++- .../Owa/WopiServer.cs | 42 ++++-- .../App_Start/RouteConfig.cs | 14 ++ .../App_Start/Routes/FileSystemRouteNames.cs | 3 + .../Content/OwaFiles/New.docx | Bin 0 -> 12551 bytes .../Content/OwaFiles/New.pptx | Bin 0 -> 31787 bytes .../Content/OwaFiles/New.xlsx | Bin 0 -> 7344 bytes .../Content/Site.css | 10 ++ .../Controllers/Api/OwaController.cs | 14 +- .../Controllers/FileSystemController.cs | 31 +++++ .../Resources/UI.Designer.cs | 72 ++++++++++ .../Resources/UI.resx | 24 ++++ .../Scripts/appScripts/dialogs.js | 16 ++- .../Scripts/appScripts/fileBrowsing.js | 41 +++++- .../Scripts/appScripts/wsp-webdav.js | 1 + .../Scripts/appScripts/wsp.js | 126 ++++++++++++++++++ .../Views/FileSystem/ShowContent.cshtml | 35 ++++- .../FileSystem/_ShowContentTopMenu.cshtml | 13 +- .../WebsitePanel.WebDavPortal/Web.config | 14 +- .../WebsitePanel.WebDavPortal.csproj | 3 + 26 files changed, 473 insertions(+), 38 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.docx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.pptx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.xlsx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/Entities/OfficeOnlineCollection.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/Entities/OfficeOnlineCollection.cs index 47e614ed..c7f2d45d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/Entities/OfficeOnlineCollection.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/Entities/OfficeOnlineCollection.cs @@ -13,12 +13,14 @@ namespace WebsitePanel.WebDav.Core.Config.Entities { IsEnabled = ConfigSection.OfficeOnline.IsEnabled; Url = ConfigSection.OfficeOnline.Url; + NewFilePath = ConfigSection.OfficeOnline.CobaltNewFilePath; CobaltFileTtl = ConfigSection.OfficeOnline.CobaltFileTtl; _officeExtensions = ConfigSection.OfficeOnline.Cast().ToList(); } public bool IsEnabled { get; private set; } public string Url { get; private set; } + public string NewFilePath { get; private set; } public int CobaltFileTtl { get; private set; } public IEnumerator GetEnumerator() diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElement.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElement.cs index 560b6964..823fc98a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElement.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElement.cs @@ -8,6 +8,7 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections private const string OwaViewKey = "OwaView"; private const string OwaEditorKey = "OwaEditor"; private const string OwaMobileViewKey = "OwaMobileView"; + private const string OwaNewFileViewKey = "OwaNewFileView"; [ConfigurationProperty(ExtensionKey, IsKey = true, IsRequired = true)] public string Extension @@ -37,5 +38,12 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections get { return this[OwaMobileViewKey].ToString(); } set { this[OwaMobileViewKey] = value; } } + + [ConfigurationProperty(OwaNewFileViewKey, IsKey = true, IsRequired = true)] + public string OwaNewFileView + { + get { return this[OwaNewFileViewKey].ToString(); } + set { this[OwaNewFileViewKey] = value; } + } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElementCollection.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElementCollection.cs index 03f570c5..51603c99 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElementCollection.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Config/WebConfigSections/OfficeOnlineElementCollection.cs @@ -9,6 +9,7 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections private const string UrlKey = "url"; private const string IsEnabledKey = "isEnabled"; private const string CobaltFileTtlKey = "cobaltFileTtl"; + private const string CobaltNewFilePathKey = "cobaltNewFilePath"; [ConfigurationProperty(UrlKey, IsKey = true, IsRequired = true)] public string Url @@ -24,6 +25,13 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections set { this[IsEnabledKey] = value; } } + [ConfigurationProperty(CobaltNewFilePathKey, IsKey = true, IsRequired = true)] + public string CobaltNewFilePath + { + get { return this[CobaltNewFilePathKey].ToString(); } + set { this[CobaltNewFilePathKey] = value; } + } + [ConfigurationProperty(CobaltFileTtlKey, IsKey = true, IsRequired = true)] public int CobaltFileTtl { diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Entities/Owa/CheckFileInfo.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Entities/Owa/CheckFileInfo.cs index 076cb1e3..e5e72685 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Entities/Owa/CheckFileInfo.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Entities/Owa/CheckFileInfo.cs @@ -37,6 +37,10 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa public bool RestrictedWebViewOnly { get; set; } [DataMember] public string ClientUrl { get; set; } + [DataMember] + public bool CloseButtonClosesWindow { get; set; } + //[DataMember] + //public string CloseUrl { get; set; } //[DataMember] //public bool UserCanNotWriteRelative { get; set; } @@ -59,8 +63,7 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa //public string BreadcrumbFolderUrl { get; set; } //[DataMember] //public string ClientUrl { get; set; } - //[DataMember] - //public bool CloseButtonClosesWindow { get; set; } + //[DataMember] //public string CloseUrl { get; set; } //[DataMember] diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Interfaces/Owa/IWopiServer.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Interfaces/Owa/IWopiServer.cs index 6f35d7ff..058ad936 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Interfaces/Owa/IWopiServer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Interfaces/Owa/IWopiServer.cs @@ -1,4 +1,4 @@ -using System.Web.Mvc; +using WebsitePanel.EnterpriseServer.Base.HostedSolution; using WebsitePanel.WebDav.Core.Client; using WebsitePanel.WebDav.Core.Entities.Owa; @@ -6,7 +6,7 @@ namespace WebsitePanel.WebDav.Core.Interfaces.Owa { public interface IWopiServer { - CheckFileInfo GetCheckFileInfo(string path); - FileResult GetFile(string path); + CheckFileInfo GetCheckFileInfo(WebDavAccessToken token); + byte[] GetFileBytes(int accessTokenId); } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs index d3f837a7..7b59436e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs @@ -240,9 +240,9 @@ namespace WebsitePanel.WebDav.Core.Managers return _currentFolder.GetResource(resourceName); } - catch (InvalidOperationException exception) + catch (Exception) { - throw new ResourceNotFoundException("Resource not found", exception); + return null; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/CobaltSessionManager.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/CobaltSessionManager.cs index 2684bf83..e9f16955 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/CobaltSessionManager.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/CobaltSessionManager.cs @@ -2,8 +2,10 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Globalization; +using System.IO; using System.Linq; using System.Runtime.Caching; +using System.Web; using Cobalt; using WebsitePanel.WebDav.Core.Client; using WebsitePanel.WebDav.Core.Config; @@ -72,9 +74,20 @@ namespace WebsitePanel.WebDav.Core.Owa var token = _tokenManager.GetToken(accessTokenId); - var fileBytes = _webDavManager.GetFileBytes(token.FilePath); + Atom atom; - var atom = new AtomFromByteArray(fileBytes); + if (_webDavManager.FileExist(token.FilePath)) + { + var fileBytes = _webDavManager.GetFileBytes(token.FilePath); + + atom = new AtomFromByteArray(fileBytes); + } + else + { + var filePath = HttpContext.Current.Server.MapPath(WebDavAppConfigManager.Instance.OfficeOnline.NewFilePath + Path.GetExtension(token.FilePath)); + + atom = new AtomFromByteArray(File.ReadAllBytes(filePath)); + } Cobalt.Metrics o1; cobaltFile.GetCobaltFilePartition(FilePartitionId.Content).SetStream(RootId.Default.Value, atom, out o1); diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/WopiServer.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/WopiServer.cs index dada9bab..860d3528 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/WopiServer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Owa/WopiServer.cs @@ -6,6 +6,8 @@ using System.Runtime.Serialization.Json; using System.Text; using System.Web; using System.Web.Mvc; +using Cobalt; +using WebsitePanel.EnterpriseServer.Base.HostedSolution; using WebsitePanel.WebDav.Core.Client; using WebsitePanel.WebDav.Core.Config; using WebsitePanel.WebDav.Core.Entities.Owa; @@ -22,27 +24,30 @@ namespace WebsitePanel.WebDav.Core.Owa private readonly IWebDavManager _webDavManager; private readonly IAccessTokenManager _tokenManager; private readonly IWebDavAuthorizationService _webDavAuthorizationService; + private readonly IWopiFileManager _fileManager; - public WopiServer(IWebDavManager webDavManager, IAccessTokenManager tokenManager, IWebDavAuthorizationService webDavAuthorizationService) + + public WopiServer(IWebDavManager webDavManager, IAccessTokenManager tokenManager, IWebDavAuthorizationService webDavAuthorizationService, IWopiFileManager fileManager) { _webDavManager = webDavManager; _tokenManager = tokenManager; _webDavAuthorizationService = webDavAuthorizationService; + _fileManager = fileManager; } - public CheckFileInfo GetCheckFileInfo(string path) + public CheckFileInfo GetCheckFileInfo(WebDavAccessToken token) { - var resource = _webDavManager.GetResource(path); + var resource = _webDavManager.GetResource(token.FilePath); - var permissions = _webDavAuthorizationService.GetPermissions(WspContext.User, path); + var permissions = _webDavAuthorizationService.GetPermissions(WspContext.User, token.FilePath); var readOnly = permissions.HasFlag(WebDavPermissions.Write) == false || permissions.HasFlag(WebDavPermissions.OwaEdit) == false; var cFileInfo = new CheckFileInfo { - BaseFileName = resource.DisplayName.Split(new []{'/'},StringSplitOptions.RemoveEmptyEntries).LastOrDefault(), + BaseFileName = resource == null ? token.FilePath.Split('/').Last() : resource.DisplayName.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault(), OwnerId = WspContext.User.Login, - Size = resource.ContentLength, + Size = resource == null ? 0 : resource.ContentLength, Version = DateTime.Now.ToString("s"), SupportsCoauth = true, SupportsCobalt = true, @@ -53,17 +58,34 @@ namespace WebsitePanel.WebDav.Core.Owa SupportsUpdate = true, UserCanWrite = !readOnly, ReadOnly = readOnly, - RestrictedWebViewOnly = false + RestrictedWebViewOnly = false, + CloseButtonClosesWindow = true }; + if (resource != null) + { + cFileInfo.ClientUrl = _webDavManager.GetFileUrl(token.FilePath); + } + return cFileInfo; } - public FileResult GetFile(string path) + public byte[] GetFileBytes(int accessTokenId) { - var fileBytes = _webDavManager.GetFileBytes(path); + var token = _tokenManager.GetToken(accessTokenId); - return new FileContentResult(fileBytes, MediaTypeNames.Application.Octet); + if (_webDavManager.FileExist(token.FilePath)) + { + return _webDavManager.GetFileBytes(token.FilePath); + } + + var cobaltFile = _fileManager.Get(token.FilePath) ?? _fileManager.Create(accessTokenId); + + var stream = new MemoryStream(); + + new GenericFda(cobaltFile.CobaltEndpoint, null).GetContentStream().CopyTo(stream); + + return stream.ToArray(); } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/RouteConfig.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/RouteConfig.cs index a5dc75e8..bf48c585 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/RouteConfig.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/RouteConfig.cs @@ -46,6 +46,20 @@ namespace WebsitePanel.WebDavPortal #region Enterprise storage + routes.MapRoute( + name: FileSystemRouteNames.ItemExist, + url: "storage/item-exist/{org}/{*pathPart}", + defaults: + new { controller = "FileSystem", action = "ItemExist", pathPart = UrlParameter.Optional } + ); + + routes.MapRoute( + name: FileSystemRouteNames.NewWebDavItem, + url: "storage/new/{org}/{*pathPart}", + defaults: + new { controller = "FileSystem", action = "NewWebDavItem", pathPart = UrlParameter.Optional } + ); + routes.MapRoute( name: FileSystemRouteNames.SearchFiles, url: "storage/search/{org}/{*pathPart}", diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/Routes/FileSystemRouteNames.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/Routes/FileSystemRouteNames.cs index 9a6832b2..acb38f0c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/Routes/FileSystemRouteNames.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/Routes/FileSystemRouteNames.cs @@ -12,6 +12,9 @@ namespace WebsitePanel.WebDavPortal.UI.Routes public const string ShowContentDetails = "ShowContentDetailsRoute"; public const string ShowOfficeOnlinePath_ = "ShowOfficeOnlineRoute"; public const string ViewOfficeOnline = "ViewOfficeOnlineRoute"; + public const string NewFileOfficeOnline = "NewFileOfficeOnlineRoute"; + public const string NewWebDavItem = "NewWebDavItemRoute"; + public const string ItemExist = "ItemExistRoute"; public const string EditOfficeOnline = "EditOfficeOnlineRoute"; public const string ShowAdditionalContent = "ShowAdditionalContentRoute"; diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.docx b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.docx new file mode 100644 index 0000000000000000000000000000000000000000..b5ca5258e0054cc72c44f556f116ff31994d5fd7 GIT binary patch literal 12551 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 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.pptx b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.pptx new file mode 100644 index 0000000000000000000000000000000000000000..cc17054824adfca46442ef0878da94aca44c60d5 GIT binary patch literal 31787 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 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.xlsx b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/OwaFiles/New.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..31991b64fe90d2177676a400e9e66bc400ac61de GIT binary patch literal 7344 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 N6fj%eU54-f{ts5#g#G{k literal 0 HcmV?d00001 diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css index 988dabfa..4f95621b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css @@ -251,12 +251,17 @@ tr.selected-file { .file-actions-menu .file-deletion { display: none; + margin-right: 10px; } .file-actions-menu .file-upload { display: inline-block; } +.create-new-item { + margin-top: -2px; +} + #message-area { margin-top: 15px; } @@ -336,6 +341,11 @@ tr.selected-file { top: 20%; } + +.small-processing { + display: none; +} + /* Theme Mods */ input,div{border-radius:0px!important;} diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/Api/OwaController.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/Api/OwaController.cs index 4b0e2a87..761214ef 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/Api/OwaController.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/Api/OwaController.cs @@ -54,22 +54,24 @@ namespace WebsitePanel.WebDavPortal.Controllers.Api { var token = _tokenManager.GetToken(accessTokenId); - var fileInfo = _wopiServer.GetCheckFileInfo(token.FilePath); + var fileInfo = _wopiServer.GetCheckFileInfo(token); - var urlPart = Url.Route(FileSystemRouteNames.ShowContentPath, new { org = WspContext.User.OrganizationId, pathPart = token.FilePath }); + if (fileInfo.Size <= 1) + { + return fileInfo; + } + + var urlPart = Url.Route(FileSystemRouteNames.ShowContentPath, new {org = WspContext.User.OrganizationId, pathPart = token.FilePath}); var url = new Uri(Request.RequestUri, urlPart).ToString(); fileInfo.DownloadUrl = url; - fileInfo.ClientUrl = _webDavManager.GetFileUrl(token.FilePath); return fileInfo; } public HttpResponseMessage GetFile(int accessTokenId) { - var token = _tokenManager.GetToken(accessTokenId); - - var bytes = _webDavManager.GetFileBytes(token.FilePath); + var bytes = _wopiServer.GetFileBytes(accessTokenId); var result = new HttpResponseMessage(HttpStatusCode.OK); diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs index 9d4016e1..0940d23a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs @@ -303,6 +303,36 @@ namespace WebsitePanel.WebDavPortal.Controllers return Json(model); } + public ActionResult NewWebDavItem(string org, string pathPart) + { + var permissions = _webDavAuthorizationService.GetPermissions(WspContext.User, pathPart); + + var owaOpener = WebDavAppConfigManager.Instance.OfficeOnline.FirstOrDefault(x => x.Extension == Path.GetExtension(pathPart)); + + if (permissions.HasFlag(WebDavPermissions.Write) == false || (owaOpener != null && permissions.HasFlag(WebDavPermissions.OwaEdit) == false)) + { + return new RedirectToRouteResult(FileSystemRouteNames.ShowContentPath, null); + } + + if (owaOpener != null) + { + return ShowOfficeDocument(org, pathPart, owaOpener.OwaNewFileView); + } + + return new RedirectToRouteResult(FileSystemRouteNames.ShowContentPath, null); + } + + [HttpPost] + public JsonResult ItemExist(string org, string pathPart, string newItemName) + { + var exist = _webdavManager.FileExist(string.Format("{0}/{1}", pathPart, newItemName)); + + return new JsonResult() + { + Data = !exist + }; + } + #region Owa Actions public ActionResult ShowOfficeDocument(string org, string pathPart, string owaOpenerUri) @@ -345,6 +375,7 @@ namespace WebsitePanel.WebDavPortal.Controllers return ShowOfficeDocument(org, pathPart, owaOpener.OwaEditor); } + #endregion private void FillContentModel(IEnumerable items, string organizationId) diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs index 0aa9d823..f7a90c29 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs @@ -105,6 +105,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Create. + /// + public static string Create { + get { + return ResourceManager.GetString("Create", resourceCulture); + } + } + /// /// Looks up a localized string similar to Delete. /// @@ -141,6 +150,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Enter file name. + /// + public static string EnterFileName { + get { + return ResourceManager.GetString("EnterFileName", resourceCulture); + } + } + /// /// Looks up a localized string similar to Error. /// @@ -150,6 +168,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Excel workbook. + /// + public static string ExcelWorkbook { + get { + return ResourceManager.GetString("ExcelWorkbook", resourceCulture); + } + } + /// /// Looks up a localized string similar to File. /// @@ -159,6 +186,24 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to File name. + /// + public static string FileName { + get { + return ResourceManager.GetString("FileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File extension will be added automatically. + /// + public static string FileNameExtensionHint { + get { + return ResourceManager.GetString("FileNameExtensionHint", resourceCulture); + } + } + /// /// Looks up a localized string similar to File Upload. /// @@ -186,6 +231,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to File already exist. + /// + public static string ItemExist { + get { + return ResourceManager.GetString("ItemExist", resourceCulture); + } + } + /// /// Looks up a localized string similar to {0} items was removed.. /// @@ -249,6 +303,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Powerpoint presentation. + /// + public static string PowerPointPresentation { + get { + return ResourceManager.GetString("PowerPointPresentation", resourceCulture); + } + } + /// /// Looks up a localized string similar to Processing. /// @@ -339,6 +402,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Word document. + /// + public static string WordDocument { + get { + return ResourceManager.GetString("WordDocument", resourceCulture); + } + } + /// /// Looks up a localized string similar to Yes. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx index 7d3fbf56..624df9ea 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx @@ -132,6 +132,9 @@ Confirm + + Create + Delete @@ -144,12 +147,24 @@ Are you sure you want to delete {0} item(s)? + + Enter file name + Error + + Excel workbook + File + + File name + + + File extension will be added automatically + File Upload @@ -159,6 +174,9 @@ Info + + File already exist + {0} items was removed. @@ -180,6 +198,9 @@ Please wait... + + Powerpoint presentation + Processing @@ -210,6 +231,9 @@ Upload + + Word document + Yes diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/dialogs.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/dialogs.js index 25693b41..64823404 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/dialogs.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/dialogs.js @@ -1,5 +1,9 @@ function WspDialogs() { - this.settings = { dialogId: "#confirm-dialog", processDialogId: "#processDialog" }; + this.settings = { + dialogId: "#confirm-dialog", + processDialogId: "#processDialog", + inlineProcessDialog: '.glyphicon-refresh' + }; } WspDialogs.prototype = @@ -36,6 +40,14 @@ WspDialogs.prototype = hideProcessDialog: function() { $(this.settings.processDialogId).modal('hide'); -} + }, + + showInlineProcessing: function(itemId) { + $(itemId).parent().find(this.settings.inlineProcessDialog).show(); + }, + + hideInlineProcessing: function (itemId) { + $(itemId).parent().find(this.settings.inlineProcessDialog).hide(); + } }; diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js index f14edab4..114e103d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js @@ -2,8 +2,15 @@ this.settings = { deletionBlockSelector: ".file-actions-menu .file-deletion", deletionUrl: "storage/files-group-action/delete", + fileExistUrl: "storage/fileExist", textDateModified: "Date modified", - textSize: "Size" + textSize: "Size", + textItemExist: "File already exists", + textItemExistFunc: function() { + return textItemExist; + } , + createNewItemDialogId: "#createNewItemDialog", + createNewItemButtonId: "#create-button" }; this.itemsTable = null; this.searchTable = null; @@ -272,6 +279,38 @@ WspFileBrowser.prototype = { var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; var i = Math.floor(Math.log(bytes) / Math.log(k)); return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i]; + }, + + showCreateNewItemDialog: function (extension, target) { + $(this.settings.createNewItemButtonId).data('extension', extension); + $(this.settings.createNewItemButtonId).data('target', target); + + $(this.settings.createNewItemDialogId + " input").val(""); + + $(this.settings.createNewItemDialogId).modal(); + }, + + hideCreateNewItemDialog: function () { + $(this.settings.createNewItemDialogId).modal('hide'); + }, + + uniqueFileNameFieldRule: function(fieldId) { + + return { + url: this.settings.fileExistUrl, + type: "post", + data: { + newItemName: function() { + return $(fieldId).val() + $(wsp.fileBrowser.settings.createNewItemButtonId).data('extension'); + } + }, + beforeSend: function(response) { + wsp.dialogs.showInlineProcessing(fieldId); + }, + complete: function() { + wsp.dialogs.hideInlineProcessing(fieldId); + } + }; } }; diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js index 41f36ed8..ce9fb0a4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js @@ -78,6 +78,132 @@ $('#drag-and-drop-area #file-input').click(function (e) { }); + +$("#create-button").click(function (e) { + + if ($('#filenameForm').valid()) { + + var fileName = $('#createNewItemDialog #filename').val() + $(this).data('extension'); + + $(this).attr('href', $(this).data('href') + '/' + fileName); + + $(this).attr('target', $(this).data('target')); + + wsp.fileBrowser.hideCreateNewItemDialog(); + //; + } else { + e.preventDefault(); + } +}); + +$.fn.clearValidation = function () { var v = $(this).validate(); $('[name]', this).each(function () { v.successList.push(this); v.showErrors(); }); v.resetForm(); v.reset(); $(this).find('.form-group').removeClass('has-error'); }; + +$(document).ready(function() { + //bootstrap jquery validate styles fix + $.validator.setDefaults({ + highlight: function(element) { + $(element).closest('.form-group').addClass('has-error'); + }, + unhighlight: function(element) { + $(element).closest('.form-group').removeClass('has-error'); + }, + errorElement: 'span', + errorClass: 'help-block', + errorPlacement: function(error, element) { + if (element.parent('.input-group').length) { + error.insertAfter(element.parent()); + } else { + error.insertAfter(element); + } + } + }); + + $.validator.addMethod("synchronousRemote", function (value, element, param) { + if (this.optional(element)) { + return "dependency-mismatch"; + } + + var previous = this.previousValue(element); + if (!this.settings.messages[element.name]) { + this.settings.messages[element.name] = {}; + } + previous.originalMessage = this.settings.messages[element.name].remote; + this.settings.messages[element.name].remote = previous.message; + + param = typeof param === "string" && { url: param } || param; + + if (previous.old === value) { + return previous.valid; + } + + previous.old = value; + var validator = this; + this.startRequest(element); + var data = {}; + data[element.name] = value; + var valid = "pending"; + $.ajax($.extend(true, { + url: param, + async: false, + mode: "abort", + port: "validate" + element.name, + dataType: "json", + data: data, + success: function (response) { + validator.settings.messages[element.name].remote = previous.originalMessage; + valid = response === true || response === "true"; + if (valid) { + var submitted = validator.formSubmitted; + validator.prepareElement(element); + validator.formSubmitted = submitted; + validator.successList.push(element); + delete validator.invalid[element.name]; + validator.showErrors(); + } else { + var errors = {}; + var message = response || validator.defaultMessage(element, "remote"); + errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message; + validator.invalid[element.name] = true; + validator.showErrors(errors); + } + previous.valid = valid; + validator.stopRequest(element, valid); + } + }, param)); + return valid; + }, "Please fix this field."); + + + $('#filenameForm').validate({ + onkeyup: false, + onclick: false, + async: false, + rules: { + filename: { + required: true, + synchronousRemote: wsp.fileBrowser.uniqueFileNameFieldRule("#filename") + } + }, + messages: { + filename: { + synchronousRemote: wsp.fileBrowser.settings.textItemExist + } + } + }); + +}); + + +$(".create-new-item li a").click(function () { + + $("#filenameForm").clearValidation(); + + wsp.fileBrowser.showCreateNewItemDialog($(this).data('extension'), $(this).data('target')); + + $("#filename").focus(); +}); + + function isMobileDevice() { return (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase())); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml index af490ffc..e62225b2 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml @@ -26,7 +26,10 @@ else @section scripts{ @if (Model.UserSettings.WebDavViewType == FolderViewTypes.BigIcons) @@ -47,9 +50,37 @@ else { } } + +@section popups{ + +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ShowContentTopMenu.cshtml b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ShowContentTopMenu.cshtml index 496ac682..fdba3215 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ShowContentTopMenu.cshtml +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/_ShowContentTopMenu.cshtml @@ -56,6 +56,17 @@ data-target-title-text="@UI.DeleteFileQuestion" data-target-content="@UI.DialogsContentConfrimFileDeletion">@UI.Delete
+ } -} \ No newline at end of file +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Web.config b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Web.config index 3f07e5e5..b33b3e60 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Web.config @@ -85,13 +85,13 @@ - - - - - - - + + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj index 6ccbc782..8c5bfd40 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/WebsitePanel.WebDavPortal.csproj @@ -369,6 +369,8 @@ + + @@ -376,6 +378,7 @@ + From ca66183c2977e754a0d4f207ce7fd16e6edca590 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Wed, 11 Mar 2015 08:36:39 -0400 Subject: [PATCH 11/40] Added tag build-2.1.0.611 for changeset 5404111417ed From 227f0c99cc641275259fb51d479a3c0d16c523af Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Wed, 11 Mar 2015 06:05:14 -0700 Subject: [PATCH 12/40] webdav portal merge fix --- .../Resources/UI.Designer.cs | 63 +++++++++++++++++++ .../Resources/UI.resx | 21 +++++++ 2 files changed, 84 insertions(+) diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs index 4a5a4578..f9a6db66 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.Designer.cs @@ -123,6 +123,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Create. + /// + public static string Create { + get { + return ResourceManager.GetString("Create", resourceCulture); + } + } + /// /// Looks up a localized string similar to Delete. /// @@ -159,6 +168,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Please enter file name. + /// + public static string EnterFileName { + get { + return ResourceManager.GetString("EnterFileName", resourceCulture); + } + } + /// /// Looks up a localized string similar to Error. /// @@ -177,6 +195,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Excel workbook. + /// + public static string ExcelWorkbook { + get { + return ResourceManager.GetString("ExcelWorkbook", resourceCulture); + } + } + /// /// Looks up a localized string similar to File. /// @@ -186,6 +213,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to File name. + /// + public static string FileName { + get { + return ResourceManager.GetString("FileName", resourceCulture); + } + } + /// /// Looks up a localized string similar to File Upload. /// @@ -213,6 +249,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to File already exist. + /// + public static string ItemExist { + get { + return ResourceManager.GetString("ItemExist", resourceCulture); + } + } + /// /// Looks up a localized string similar to {0} items was removed.. /// @@ -303,6 +348,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Powerpoint presentation. + /// + public static string PowerPointPresentation { + get { + return ResourceManager.GetString("PowerPointPresentation", resourceCulture); + } + } + /// /// Looks up a localized string similar to Processing. /// @@ -402,6 +456,15 @@ namespace WebsitePanel.WebDavPortal.Resources { } } + /// + /// Looks up a localized string similar to Word document. + /// + public static string WordDocument { + get { + return ResourceManager.GetString("WordDocument", resourceCulture); + } + } + /// /// Looks up a localized string similar to Yes. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx index 2ffe1406..56929bcc 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Resources/UI.resx @@ -138,6 +138,9 @@ Confirm + + Create + Delete @@ -150,15 +153,24 @@ Are you sure you want to delete {0} item(s)? + + Please enter file name + Error EB + + Excel workbook + File + + File name + File Upload @@ -168,6 +180,9 @@ Info + + File already exist + {0} items was removed. @@ -198,6 +213,9 @@ Please wait... + + Powerpoint presentation + Processing @@ -231,6 +249,9 @@ Upload + + Word document + Yes From 7e76b087b40ed313761647e8c3e41758a0712585 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Wed, 11 Mar 2015 07:00:40 -0700 Subject: [PATCH 13/40] webdav portal css fixes --- .../App_Start/BundleConfig.cs | 4 + .../Content/Site.css | 4 + .../Scripts/appScripts/fileBrowsing.js | 7 +- .../Scripts/appScripts/wsp-webdav.js | 125 +++++++++++++++++- .../Scripts/appScripts/wsp.js | 120 +---------------- .../Views/FileSystem/ShowContent.cshtml | 5 +- .../ShowContentSearchResultTable.cshtml | 1 + 7 files changed, 145 insertions(+), 121 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/BundleConfig.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/BundleConfig.cs index 8b6dd2c9..d3be4e58 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/BundleConfig.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/App_Start/BundleConfig.cs @@ -35,6 +35,10 @@ namespace WebsitePanel.WebDavPortal "~/Scripts/appScripts/wsp.js" )); + bundles.Add(new ScriptBundle("~/bundles/appScripts-webdav").Include( + "~/Scripts/appScripts/wsp-webdav.js" + )); + bundles.Add(new ScriptBundle("~/bundles/bigIconsScripts").Include( "~/Scripts/appScripts/recalculateResourseHeight.js" )); diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css index 4f95621b..65108355 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css @@ -346,6 +346,10 @@ tr.selected-file { display: none; } +#filenameForm input { + max-width: 100%; +} + /* Theme Mods */ input,div{border-radius:0px!important;} diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js index 114e103d..d7a33633 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js @@ -10,7 +10,8 @@ return textItemExist; } , createNewItemDialogId: "#createNewItemDialog", - createNewItemButtonId: "#create-button" + createNewItemButtonId: "#create-button", + createNewItemTitleId: '#create-dalog-label' }; this.itemsTable = null; this.searchTable = null; @@ -281,12 +282,14 @@ WspFileBrowser.prototype = { return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i]; }, - showCreateNewItemDialog: function (extension, target) { + showCreateNewItemDialog: function (extension, target, title) { $(this.settings.createNewItemButtonId).data('extension', extension); $(this.settings.createNewItemButtonId).data('target', target); $(this.settings.createNewItemDialogId + " input").val(""); + $(this.settings.createNewItemTitleId).text($(this.settings.createNewItemTitleId).data('title') + " " + title); + $(this.settings.createNewItemDialogId).modal(); }, diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js index 5f282702..90c6f7d8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp-webdav.js @@ -1 +1,124 @@ - \ No newline at end of file +//Toggle file select + Ctrl multiselect +$(document).on('click', '.element-container', function (e) { + if (e.ctrlKey) { + $(this).toggleClass("selected-file"); + } else { + + wsp.fileBrowser.clearAllSelectedItems(); + + wsp.fileBrowser.selectItem(this); + } + + wsp.fileBrowser.refreshDeletionBlock(); +}); + +$(document).on('touchstart', '.element-container', function (e) { + var now = new Date().getTime(); + var lastTouch = $(this).data('lastTouch') || now + 1; + var delta = now - lastTouch; + + if (delta < 300 && delta > 0) { + wsp.fileBrowser.openItem(this); + $(this).data('lastTouch', 0); + } + + $(this).data('lastTouch', now); +}); + +//Double click file open +$(document).on('dblclick', '.element-container', function (e) { + wsp.fileBrowser.openItem(this); + + var links = $(this).find('.file-link'); + + if (links.length != 0 && $(links[0]).hasClass('processing-dialog')) { + wsp.dialogs.showProcessDialog(); + } +}); + + +//Delete button click +$(document).on('click', '.file-deletion #delete-button', function (e) { + var dialogId = $(this).data('target'); + var buttonText = $(this).data('target-positive-button-text'); + var content = $(this).data('target-content'); + var title = $(this).data('target-title-text'); + + content = jQuery.validator.format(content, wsp.fileBrowser.getSelectedItemsCount()); + + wsp.dialogs.showConfirmDialog(title, content, buttonText, wsp.fileBrowser.deleteSelectedItems, dialogId); +}); + + +$(document).click(function (event) { + if (!$(event.target).closest('.element-container, .prevent-deselect').length) { + wsp.fileBrowser.clearAllSelectedItems(); + wsp.fileBrowser.refreshDeletionBlock(); + } +}); + +$('#drag-and-drop-area').click(function (e) { + $('#file-input').click(); +}); + +$('#drag-and-drop-area #file-input').click(function (e) { + e.stopPropagation(); +}); + + + +$("#create-button").click(function (e) { + + if ($('#filenameForm').valid()) { + + var fileName = $('#createNewItemDialog #filename').val() + $(this).data('extension'); + + $(this).attr('href', $(this).data('href') + '/' + fileName); + + $(this).attr('target', $(this).data('target')); + + wsp.fileBrowser.hideCreateNewItemDialog(); + //; + } else { + e.preventDefault(); + } +}); + +$(document).ready(function () { + + $('#filenameForm').validate({ + onkeyup: false, + onclick: false, + async: false, + rules: { + filename: { + required: true, + synchronousRemote: wsp.fileBrowser.uniqueFileNameFieldRule("#filename") + } + }, + messages: { + filename: { + synchronousRemote: wsp.fileBrowser.settings.textItemExist + } + } + }); + +}); + +$('#filename').keydown(function (event) { + if (event.keyCode == 13) { + event.preventDefault(); + return false; + } + return true; +}); + + +$(".create-new-item li a").click(function () { + + $("#filenameForm").clearValidation(); + + wsp.fileBrowser.showCreateNewItemDialog($(this).data('extension'), $(this).data('target'), $(this).text()); + + $("#filename").focus(); +}); diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js index ce9fb0a4..a45da0f1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/wsp.js @@ -10,94 +10,6 @@ $(document).on('click', '.processing-dialog', function (e) { }); -//Toggle file select + Ctrl multiselect -$(document).on('click', '.element-container', function (e) { - if (e.ctrlKey) { - $(this).toggleClass("selected-file"); - } else { - - wsp.fileBrowser.clearAllSelectedItems(); - - wsp.fileBrowser.selectItem(this); - } - - wsp.fileBrowser.refreshDeletionBlock(); -}); - -$(document).on('touchstart', '.element-container', function(e) { - var now = new Date().getTime(); - var lastTouch = $(this).data('lastTouch') || now + 1; - var delta = now - lastTouch; - - if (delta < 300 && delta > 0) { - wsp.fileBrowser.openItem(this); - $(this).data('lastTouch', 0); - } - - $(this).data('lastTouch', now); -}); - -//Double click file open -$(document).on('dblclick', '.element-container', function (e) { - wsp.fileBrowser.openItem(this); - - var links = $(this).find('.file-link'); - - if (links.length != 0 && $(links[0]).hasClass('processing-dialog')) { - wsp.dialogs.showProcessDialog(); - } -}); - - -//Delete button click -$(document).on('click', '.file-deletion #delete-button', function (e) { - var dialogId = $(this).data('target'); - var buttonText = $(this).data('target-positive-button-text'); - var content = $(this).data('target-content'); - var title = $(this).data('target-title-text'); - - content = jQuery.validator.format(content, wsp.fileBrowser.getSelectedItemsCount()); - - wsp.dialogs.showConfirmDialog(title, content, buttonText, wsp.fileBrowser.deleteSelectedItems, dialogId); -}); - - -$(document).click(function(event) { - if (!$(event.target).closest('.element-container, .prevent-deselect').length) { - wsp.fileBrowser.clearAllSelectedItems(); - wsp.fileBrowser.refreshDeletionBlock(); - } -}); - -$('#drag-and-drop-area').click(function (e) { - $('#file-input').click(); -}); - -$('#drag-and-drop-area #file-input').click(function (e) { - e.stopPropagation(); -}); - - - -$("#create-button").click(function (e) { - - if ($('#filenameForm').valid()) { - - var fileName = $('#createNewItemDialog #filename').val() + $(this).data('extension'); - - $(this).attr('href', $(this).data('href') + '/' + fileName); - - $(this).attr('target', $(this).data('target')); - - wsp.fileBrowser.hideCreateNewItemDialog(); - //; - } else { - e.preventDefault(); - } -}); - -$.fn.clearValidation = function () { var v = $(this).validate(); $('[name]', this).each(function () { v.successList.push(this); v.showErrors(); }); v.resetForm(); v.reset(); $(this).find('.form-group').removeClass('has-error'); }; - $(document).ready(function() { //bootstrap jquery validate styles fix $.validator.setDefaults({ @@ -118,7 +30,7 @@ $(document).ready(function() { } }); - $.validator.addMethod("synchronousRemote", function (value, element, param) { + $.validator.addMethod("synchronousRemote", function(value, element, param) { if (this.optional(element)) { return "dependency-mismatch"; } @@ -149,7 +61,7 @@ $(document).ready(function() { port: "validate" + element.name, dataType: "json", data: data, - success: function (response) { + success: function(response) { validator.settings.messages[element.name].remote = previous.originalMessage; valid = response === true || response === "true"; if (valid) { @@ -172,36 +84,10 @@ $(document).ready(function() { }, param)); return valid; }, "Please fix this field."); - - - $('#filenameForm').validate({ - onkeyup: false, - onclick: false, - async: false, - rules: { - filename: { - required: true, - synchronousRemote: wsp.fileBrowser.uniqueFileNameFieldRule("#filename") - } - }, - messages: { - filename: { - synchronousRemote: wsp.fileBrowser.settings.textItemExist - } - } - }); - }); -$(".create-new-item li a").click(function () { - - $("#filenameForm").clearValidation(); - - wsp.fileBrowser.showCreateNewItemDialog($(this).data('extension'), $(this).data('target')); - - $("#filename").focus(); -}); +$.fn.clearValidation = function () { var v = $(this).validate(); $('[name]', this).each(function () { v.successList.push(this); v.showErrors(); }); v.resetForm(); v.reset(); $(this).find('.form-group').removeClass('has-error'); }; function isMobileDevice() { diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml index e62225b2..db3e1da3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Views/FileSystem/ShowContent.cshtml @@ -25,12 +25,15 @@ else @section scripts{ + + + @Scripts.Render("~/bundles/appScripts-webdav") @if (Model.UserSettings.WebDavViewType == FolderViewTypes.BigIcons) { @@ -62,7 +65,7 @@ else
0) + { + ddlRdsController.SelectedValue = ddlRdsController.Items[0].Value; + } } private void SaveSettings() @@ -207,6 +227,16 @@ namespace WebsitePanel.Portal result = ES.Services.System.SetSystemSettings( WSP.SystemSettings.FILEMANAGER_SETTINGS, settings); + if (result < 0) + { + ShowResultMessage(result); + return; + } + + settings = new WSP.SystemSettings(); + settings[RDS_MAIN_CONTROLLER] = ddlRdsController.SelectedValue; + result = ES.Services.System.SetSystemSettings(WSP.SystemSettings.RDS_SETTINGS, settings); + if (result < 0) { ShowResultMessage(result); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs index 6b3cb964..d8358733 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2015, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -220,6 +192,42 @@ namespace WebsitePanel.Portal { /// protected global::System.Web.UI.WebControls.Literal litFileManagerEditableExtensions; + /// + /// RdsSettings control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel RdsSettings; + + /// + /// PanelRdsSettings control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel PanelRdsSettings; + + /// + /// lblRdsController control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Localize lblRdsController; + + /// + /// ddlRdsController control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlRdsController; + /// /// btnSaveSettings control. /// From e70da870c6f2750c920b224ec565fa1bfcad112f Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Thu, 12 Mar 2015 14:23:49 -0400 Subject: [PATCH 21/40] Added tag build-2.1.0.613 for changeset 3caeed743a87 From de337fe5f3fa717c1d7c5e3288bcd8371f6dd041 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Thu, 12 Mar 2015 14:41:05 -0400 Subject: [PATCH 22/40] Added tag build-2.1.0.614 for changeset 4a18c479a6ea From 9064cb2eb8c1541bfd416f07cd57e87cfdab6352 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Thu, 12 Mar 2015 14:48:06 -0400 Subject: [PATCH 23/40] Added tag build-2.1.0.615 for changeset e48f0bc074d1 From 8f6b035e890cbdf08105c681a466c70ac79c4470 Mon Sep 17 00:00:00 2001 From: AlexanderTr Date: Fri, 13 Mar 2015 08:02:31 +0300 Subject: [PATCH 24/40] wsp-10323 Convert the VSP provider into one utilizing PowerShell. Step 4 Snapshots --- .../Virtualization/VirtualMachine.cs | 6 + .../Virtualization/VirtualMachineSnapshot.cs | 1 + .../Extensions/PSObjectExtension.cs | 25 ++ .../Helpers/BiosHelper.cs | 4 +- .../Helpers/JobHelper.cs | 74 ++++ .../Helpers/SnapshotHelper.cs | 72 ++++ .../HyperV2012R2.cs | 374 +++++++++--------- ...oviders.Virtualization.HyperV2012R2.csproj | 2 + 8 files changed, 377 insertions(+), 181 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/JobHelper.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/SnapshotHelper.cs diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachine.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachine.cs index 5f5847a8..11da6676 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachine.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachine.cs @@ -136,5 +136,11 @@ namespace WebsitePanel.Providers.Virtualization [Persistent] public int Generation { get; set; } + [Persistent] + public int ProcessorCount { get; set; } + + [Persistent] + public string ParentSnapshotId { get; set; } + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineSnapshot.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineSnapshot.cs index f8f496ce..a20ae5f0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineSnapshot.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineSnapshot.cs @@ -37,6 +37,7 @@ namespace WebsitePanel.Providers.Virtualization public string Id { get; set; } public string CheckPointId { get; set; } public string Name { get; set; } + public string VMName { get; set; } public string ParentId { get; set; } public DateTime Created { get; set; } public bool IsCurrent { get; set; } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Extensions/PSObjectExtension.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Extensions/PSObjectExtension.cs index e1a50bfa..33426fe2 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Extensions/PSObjectExtension.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Extensions/PSObjectExtension.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Management; using System.Management.Automation; using System.Text; using System.Threading.Tasks; @@ -9,6 +10,8 @@ namespace WebsitePanel.Providers.Virtualization { static class PSObjectExtension { + #region Properties + public static object GetProperty(this PSObject obj, string name) { return obj.Members[name].Value; @@ -33,5 +36,27 @@ namespace WebsitePanel.Providers.Virtualization { return obj.Members[name].Value == null ? "" : obj.Members[name].Value.ToString(); } + + #endregion + + + #region Methods + + public static ManagementObject Invoke(this PSObject obj, string name, object argument) + { + return obj.Invoke(name, new[] {argument}); + } + public static ManagementObject Invoke(this PSObject obj, string name, params object[] arguments) + { + var results = (ManagementObjectCollection)obj.Methods[name].Invoke(arguments); + + foreach (var result in results) + { + return (ManagementObject) result; + } + return null; + } + + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs index 25fcfe3b..ebfc9694 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/BiosHelper.cs @@ -12,7 +12,7 @@ namespace WebsitePanel.Providers.Virtualization { public static class BiosHelper { - public static BiosInfo GetVMBios(PowerShellManager powerShell, string name, int generation) + public static BiosInfo Get(PowerShellManager powerShell, string name, int generation) { BiosInfo info = new BiosInfo(); @@ -76,7 +76,7 @@ namespace WebsitePanel.Providers.Virtualization return info; } - public static void UpdateBios(PowerShellManager powerShell, VirtualMachine vm, bool bootFromCD, bool numLockEnabled) + public static void Update(PowerShellManager powerShell, VirtualMachine vm, bool bootFromCD, bool numLockEnabled) { // for Win2012R2+ and Win8.1+ if (vm.Generation == 2) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/JobHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/JobHelper.cs new file mode 100644 index 00000000..92d1e95a --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/JobHelper.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Management.Automation; +using System.Management.Automation.Runspaces; +using System.Text; +using System.Threading.Tasks; + +namespace WebsitePanel.Providers.Virtualization +{ + public static class JobHelper + { + public static JobResult CreateSuccessResult(ReturnCode returnCode = ReturnCode.OK) + { + return new JobResult + { + Job = new ConcreteJob {JobState = ConcreteJobState.Completed}, + ReturnValue = returnCode + }; + } + + public static JobResult CreateResultFromPSResults(Collection objJob) + { + if (objJob == null || objJob.Count == 0) + return null; + + JobResult result = new JobResult(); + + result.Job = CreateFromPSObject(objJob); + result.ReturnValue = ReturnCode.JobStarted; + + switch (result.Job.JobState) + { + case ConcreteJobState.Failed: + result.ReturnValue = ReturnCode.Failed; + break; + } + + return result; + } + + public static ConcreteJob CreateFromPSObject(Collection objJob) + { + if (objJob == null || objJob.Count == 0) + return null; + + ConcreteJob job = new ConcreteJob(); + job.Id = objJob[0].GetProperty("Id").ToString(); + job.JobState = objJob[0].GetEnum("JobStateInfo"); + job.Caption = objJob[0].GetProperty("Name"); + job.Description = objJob[0].GetProperty("Command"); + job.StartTime = objJob[0].GetProperty("PSBeginTime"); + job.ElapsedTime = objJob[0].GetProperty("PSEndTime") ?? DateTime.Now; + + // PercentComplete + job.PercentComplete = 0; + var progress = (PSDataCollection)objJob[0].GetProperty("Progress"); + if (progress != null && progress.Count > 0) + job.PercentComplete = progress[0].PercentComplete; + + // Errors + var errors = (PSDataCollection)objJob[0].GetProperty("Error"); + if (errors != null && errors.Count > 0) + { + job.ErrorDescription = errors[0].ErrorDetails.Message + ". " + errors[0].ErrorDetails.RecommendedAction; + job.ErrorCode = errors[0].Exception != null ? -1 : 0; + } + + return job; + } + + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/SnapshotHelper.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/SnapshotHelper.cs new file mode 100644 index 00000000..b5dee5c2 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Helpers/SnapshotHelper.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management; +using System.Management.Automation; +using System.Management.Automation.Runspaces; +using System.Text; +using System.Threading.Tasks; + +namespace WebsitePanel.Providers.Virtualization +{ + public static class SnapshotHelper + { + public static VirtualMachineSnapshot GetFromPS(PSObject psObject, string runningSnapshotId = null) + { + var snapshot = new VirtualMachineSnapshot + { + Id = psObject.GetString("Id"), + Name = psObject.GetString("Name"), + VMName = psObject.GetString("VMName"), + ParentId = psObject.GetString("ParentSnapshotId"), + Created = psObject.GetProperty("CreationTime") + }; + + if (string.IsNullOrEmpty(snapshot.ParentId)) + snapshot.ParentId = null; // for capability + + if (!String.IsNullOrEmpty(runningSnapshotId)) + snapshot.IsCurrent = snapshot.Id == runningSnapshotId; + + return snapshot; + } + + public static VirtualMachineSnapshot GetFromWmi(ManagementBaseObject objSnapshot) + { + if (objSnapshot == null || objSnapshot.Properties.Count == 0) + return null; + + VirtualMachineSnapshot snapshot = new VirtualMachineSnapshot(); + snapshot.Id = (string)objSnapshot["InstanceID"]; + snapshot.Name = (string)objSnapshot["ElementName"]; + + string parentId = (string)objSnapshot["Parent"]; + if (!String.IsNullOrEmpty(parentId)) + { + int idx = parentId.IndexOf("Microsoft:"); + snapshot.ParentId = parentId.Substring(idx, parentId.Length - idx - 1); + snapshot.ParentId = snapshot.ParentId.ToLower().Replace("microsoft:", ""); + } + if (!String.IsNullOrEmpty(snapshot.Id)) + { + snapshot.Id = snapshot.Id.ToLower().Replace("microsoft:", ""); + } + snapshot.Created = Wmi.ToDateTime((string)objSnapshot["CreationTime"]); + + if (string.IsNullOrEmpty(snapshot.ParentId)) + snapshot.ParentId = null; // for capability + + return snapshot; + } + + public static void Delete(PowerShellManager powerShell, VirtualMachineSnapshot snapshot, bool includeChilds) + { + Command cmd = new Command("Remove-VMSnapshot"); + cmd.Parameters.Add("VMName", snapshot.VMName); + cmd.Parameters.Add("Name", snapshot.Name); + if (includeChilds) cmd.Parameters.Add("IncludeAllChildSnapshots", true); + + powerShell.Execute(cmd, false); + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs index e14db44b..095eba14 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/HyperV2012R2.cs @@ -59,7 +59,7 @@ namespace WebsitePanel.Providers.Virtualization { #region Constants private const string CONFIG_USE_DISKPART_TO_CLEAR_READONLY_FLAG = "WebsitePanel.HyperV.UseDiskPartClearReadOnlyFlag"; - private const string WMI_VIRTUALIZATION_NAMESPACE = @"root\virtualization"; + private const string WMI_VIRTUALIZATION_NAMESPACE = @"root\virtualization\v2"; private const string WMI_CIMV2_NAMESPACE = @"root\cimv2"; private const int SWITCH_PORTS_NUMBER = 1024; @@ -174,6 +174,8 @@ namespace WebsitePanel.Providers.Virtualization vm.Status = result[0].GetProperty("Status").ToString(); vm.ReplicationState = result[0].GetProperty("ReplicationState").ToString(); vm.Generation = result[0].GetInt("Generation"); + vm.ProcessorCount = result[0].GetInt("ProcessorCount"); + vm.ParentSnapshotId = result[0].GetString("ParentSnapshotId"); vm.Heartbeat = VirtualMachineHelper.GetVMHeartBeatStatus(PowerShell, vm.Name); @@ -187,7 +189,7 @@ namespace WebsitePanel.Providers.Virtualization vm.RamSize = memoryInfo.Startup; // BIOS - BiosInfo biosInfo = BiosHelper.GetVMBios(PowerShell, vm.Name, vm.Generation); + BiosInfo biosInfo = BiosHelper.Get(PowerShell, vm.Name, vm.Generation); vm.NumLockEnabled = biosInfo.NumLockEnabled; vm.BootFromCD = biosInfo.BootFromCD; @@ -219,6 +221,7 @@ namespace WebsitePanel.Providers.Virtualization return vm; } + public List GetVirtualMachines() { HostedSolutionLog.LogStart("GetVirtualMachines"); @@ -255,11 +258,10 @@ namespace WebsitePanel.Providers.Virtualization public byte[] GetVirtualMachineThumbnailImage(string vmId, ThumbnailSize size) { - //ManagementBaseObject objSummary = GetVirtualMachineSummaryInformation(vmId, (SummaryInformationRequest)size); - //wmi.Dump(objSummary); - //return GetTumbnailFromSummaryInformation(objSummary, size); - // TODO: - return (byte[]) (new ImageConverter()).ConvertTo(new Bitmap(80, 60), typeof (byte[])); + ManagementBaseObject objSummary = GetVirtualMachineSummaryInformation(vmId, (SummaryInformationRequest)size); + wmi.Dump(objSummary); + return GetTumbnailFromSummaryInformation(objSummary, size); + //return (byte[]) (new ImageConverter()).ConvertTo(new Bitmap(80, 60), typeof (byte[])); } private byte[] GetTumbnailFromSummaryInformation(ManagementBaseObject objSummary, ThumbnailSize size) @@ -436,7 +438,7 @@ namespace WebsitePanel.Providers.Virtualization var realVm = GetVirtualMachineEx(vm.VirtualMachineId); DvdDriveHelper.Update(PowerShell, realVm, vm.DvdDriveInstalled); // Dvd should be before bios because bios sets boot order - BiosHelper.UpdateBios(PowerShell, realVm, vm.BootFromCD, vm.NumLockEnabled); + BiosHelper.Update(PowerShell, realVm, vm.BootFromCD, vm.NumLockEnabled); VirtualMachineHelper.UpdateProcessors(PowerShell, realVm, vm.CpuCores, CpuLimitSettings, CpuReserveSettings, CpuWeightSettings); VirtualMachineHelper.UpdateMemory(PowerShell, realVm, vm.RamSize); NetworkAdapterHelper.Update(PowerShell, vm); @@ -661,7 +663,7 @@ namespace WebsitePanel.Providers.Virtualization paramList.ForEach(p => cmd.Parameters.Add(p)); PowerShell.Execute(cmd, false); - jobResult = CreateSuccessJobResult(); + jobResult = JobHelper.CreateSuccessResult(); } catch (Exception ex) { @@ -852,130 +854,148 @@ namespace WebsitePanel.Providers.Virtualization #endregion #region Snapshots + public List GetVirtualMachineSnapshots(string vmId) { - // get all VM setting objects - ManagementObject objVmSettings = GetVirtualMachineSettingsObject(vmId); - VirtualMachineSnapshot runningSnapshot = CreateSnapshotFromWmiObject(objVmSettings); - - // load snapshots - ManagementBaseObject objSummary = GetVirtualMachineSummaryInformation(vmId, SummaryInformationRequest.Snapshots); - ManagementBaseObject[] objSnapshots = (ManagementBaseObject[])objSummary["Snapshots"]; - List snapshots = new List(); - if (objSnapshots != null) + try { - foreach (ManagementBaseObject objSnapshot in objSnapshots) + var vm = GetVirtualMachine(vmId); + + Command cmd = new Command("Get-VMSnapshot"); + cmd.Parameters.Add("VMName", vm.Name); + + Collection result = PowerShell.Execute(cmd, false); + if (result != null && result.Count > 0) { - VirtualMachineSnapshot snapshot = CreateSnapshotFromWmiObject(objSnapshot); - snapshot.IsCurrent = (runningSnapshot.ParentId == snapshot.Id); - snapshots.Add(snapshot); + foreach (PSObject psSnapshot in result) + { + snapshots.Add(SnapshotHelper.GetFromPS(psSnapshot, vm.ParentSnapshotId)); + } } } + catch (Exception ex) + { + HostedSolutionLog.LogError("GetVirtualMachineSnapshots", ex); + throw; + } return snapshots; } public VirtualMachineSnapshot GetSnapshot(string snapshotId) { - // load snapshot - ManagementObject objSnapshot = GetSnapshotObject(snapshotId); - return CreateSnapshotFromWmiObject(objSnapshot); + try + { + Command cmd = new Command("Get-VMSnapshot"); + cmd.Parameters.Add("Id", snapshotId); + + Collection result = PowerShell.Execute(cmd, false); + if (result != null && result.Count > 0) + { + return SnapshotHelper.GetFromPS(result[0]); + } + } + catch (Exception ex) + { + HostedSolutionLog.LogError("GetSnapshot", ex); + throw; + } + + return null; } public JobResult CreateSnapshot(string vmId) { - // get VM management service - ManagementObject objVmsvc = GetVirtualSystemManagementService(); + try + { + var vm = GetVirtualMachine(vmId); - // load virtual machine - ManagementObject objVm = GetVirtualMachineObject(vmId); + Command cmd = new Command("Checkpoint-VM"); + cmd.Parameters.Add("Name", vm.Name); - // get method params - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("CreateVirtualSystemSnapshot"); - inParams["SourceSystem"] = objVm; - - // invoke method - ManagementBaseObject outParams = objVmsvc.InvokeMethod("CreateVirtualSystemSnapshot", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + PowerShell.Execute(cmd, false); + return JobHelper.CreateSuccessResult(ReturnCode.JobStarted); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("CreateSnapshot", ex); + throw; + } } public JobResult RenameSnapshot(string vmId, string snapshotId, string name) { - // load virtual machine - ManagementObject objVm = GetVirtualMachineObject(vmId); + try + { + var vm = GetVirtualMachine(vmId); + var snapshot = GetSnapshot(snapshotId); - // load snapshot - ManagementObject objSnapshot = GetSnapshotObject(snapshotId); + Command cmd = new Command("Rename-VMSnapshot"); + cmd.Parameters.Add("VMName", vm.Name); + cmd.Parameters.Add("Name", snapshot.Name); + cmd.Parameters.Add("NewName", name); - // rename snapshot - objSnapshot["ElementName"] = name; - - // save - ManagementObject objVmsvc = GetVirtualSystemManagementService(); - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("ModifyVirtualSystem"); - inParams["ComputerSystem"] = objVm.Path.Path; - inParams["SystemSettingData"] = objSnapshot.GetText(TextFormat.CimDtd20); - ManagementBaseObject outParams = objVmsvc.InvokeMethod("ModifyVirtualSystem", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + PowerShell.Execute(cmd, false); + return JobHelper.CreateSuccessResult(); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("RenameSnapshot", ex); + throw; + } } public JobResult ApplySnapshot(string vmId, string snapshotId) { - // get VM management service - ManagementObject objVmsvc = GetVirtualSystemManagementService(); + try + { + var vm = GetVirtualMachine(vmId); + var snapshot = GetSnapshot(snapshotId); - // load virtual machine - ManagementObject objVm = GetVirtualMachineObject(vmId); + Command cmd = new Command("Restore-VMSnapshot"); + cmd.Parameters.Add("VMName", vm.Name); + cmd.Parameters.Add("Name", snapshot.Name); - // load snapshot - ManagementObject objSnapshot = GetSnapshotObject(snapshotId); - - ManagementObjectCollection objRelated = objVm.GetRelated("Msvm_SettingsDefineState"); - - // get method params - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("ApplyVirtualSystemSnapshot"); - inParams["ComputerSystem"] = objVm.Path.Path; - inParams["SnapshotSettingData"] = objSnapshot.Path.Path; - - // invoke method - ManagementBaseObject outParams = objVmsvc.InvokeMethod("ApplyVirtualSystemSnapshot", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + PowerShell.Execute(cmd, false); + return JobHelper.CreateSuccessResult(); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("ApplySnapshot", ex); + throw; + } } public JobResult DeleteSnapshot(string snapshotId) { - // get VM management service - ManagementObject objVmsvc = GetVirtualSystemManagementService(); - - // load snapshot object - ManagementObject objSnapshot = GetSnapshotObject(snapshotId); - - // get method params - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("RemoveVirtualSystemSnapshot"); - inParams["SnapshotSettingData"] = objSnapshot.Path.Path; - - // invoke method - ManagementBaseObject outParams = objVmsvc.InvokeMethod("RemoveVirtualSystemSnapshot", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + try + { + var snapshot = GetSnapshot(snapshotId); + SnapshotHelper.Delete(PowerShell, snapshot, false); + return JobHelper.CreateSuccessResult(ReturnCode.JobStarted); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("DeleteSnapshot", ex); + throw; + } } public JobResult DeleteSnapshotSubtree(string snapshotId) { - // get VM management service - ManagementObject objVmsvc = GetVirtualSystemManagementService(); - - // load snapshot object - ManagementObject objSnapshot = GetSnapshotObject(snapshotId); - - // get method params - ManagementBaseObject inParams = objVmsvc.GetMethodParameters("RemoveVirtualSystemSnapshotTree"); - inParams["SnapshotSettingData"] = objSnapshot.Path.Path; - - // invoke method - ManagementBaseObject outParams = objVmsvc.InvokeMethod("RemoveVirtualSystemSnapshotTree", inParams, null); - return CreateJobResultFromWmiMethodResults(outParams); + try + { + var snapshot = GetSnapshot(snapshotId); + SnapshotHelper.Delete(PowerShell, snapshot, true); + return JobHelper.CreateSuccessResult(ReturnCode.JobStarted); + } + catch (Exception ex) + { + HostedSolutionLog.LogError("DeleteSnapshot", ex); + throw; + } } public byte[] GetSnapshotThumbnailImage(string snapshotId, ThumbnailSize size) @@ -983,6 +1003,7 @@ namespace WebsitePanel.Providers.Virtualization ManagementBaseObject objSummary = GetSnapshotSummaryInformation(snapshotId, (SummaryInformationRequest)size); return GetTumbnailFromSummaryInformation(objSummary, size); } + #endregion #region DVD operations @@ -1029,7 +1050,7 @@ namespace WebsitePanel.Providers.Virtualization } HostedSolutionLog.LogEnd("InsertDVD"); - return CreateSuccessJobResult(); + return JobHelper.CreateSuccessResult(); } public JobResult EjectDVD(string vmId) @@ -1049,7 +1070,7 @@ namespace WebsitePanel.Providers.Virtualization } HostedSolutionLog.LogEnd("InsertDVD"); - return CreateSuccessJobResult(); + return JobHelper.CreateSuccessResult(); } #endregion @@ -1276,8 +1297,7 @@ namespace WebsitePanel.Providers.Virtualization } catch { - // TODO - // add logging... + HostedSolutionLog.LogError("GetKVPItems", new Exception("msvm_KvpExchangeComponent")); return pairs; } @@ -1306,7 +1326,71 @@ namespace WebsitePanel.Providers.Virtualization pairs.Add(new KvpExchangeDataItem(name, data)); } - return pairs; + return pairs; + + //HostedSolutionLog.LogStart("GetKVPItems"); + //HostedSolutionLog.DebugInfo("Virtual Machine: {0}", vmId); + //HostedSolutionLog.DebugInfo("exchangeItemsName: {0}", exchangeItemsName); + + //List pairs = new List(); + + //try + //{ + // var vm = GetVirtualMachine(vmId); + + // Command cmdGetVm = new Command("Get-WmiObject"); + + // cmdGetVm.Parameters.Add("Namespace", WMI_VIRTUALIZATION_NAMESPACE); + // cmdGetVm.Parameters.Add("Class", "Msvm_ComputerSystem"); + // cmdGetVm.Parameters.Add("Filter", "ElementName = '" + vm.Name + "'"); + + // Collection result = PowerShell.Execute(cmdGetVm, false); + + // if (result != null && result.Count > 0) + // { + // dynamic resultDynamic = result[0];//.Invoke(); + // var kvp = resultDynamic.GetRelated("Msvm_KvpExchangeComponent"); + + // // return XML pairs + // string[] xmlPairs = null; + + // foreach (dynamic a in kvp) + // { + // xmlPairs = a[exchangeItemsName]; + // break; + // } + + // if (xmlPairs == null) + // return pairs; + + // // join all pairs + // StringBuilder sb = new StringBuilder(); + // sb.Append(""); + // foreach (string xmlPair in xmlPairs) + // sb.Append(xmlPair); + // sb.Append(""); + + // // parse pairs + // XmlDocument doc = new XmlDocument(); + // doc.LoadXml(sb.ToString()); + + // foreach (XmlNode nodeName in doc.SelectNodes("/result/INSTANCE/PROPERTY[@NAME='Name']/VALUE")) + // { + // string name = nodeName.InnerText; + // string data = nodeName.ParentNode.ParentNode.SelectSingleNode("PROPERTY[@NAME='Data']/VALUE").InnerText; + // pairs.Add(new KvpExchangeDataItem(name, data)); + // } + // } + //} + //catch (Exception ex) + //{ + // HostedSolutionLog.LogError("GetKVPItems", ex); + // throw; + //} + + //HostedSolutionLog.LogEnd("GetKVPItems"); + + //return pairs; } public JobResult AddKVPItems(string vmId, KvpExchangeDataItem[] items) @@ -1832,13 +1916,12 @@ exit", Convert.ToInt32(objDisk["Index"]))); try { - Command cmd = new Command("Get-Job"); if (!string.IsNullOrEmpty(jobId)) cmd.Parameters.Add("Id", jobId); Collection result = PowerShell.Execute( cmd, false); - job = CreateJobFromPSObject(result); + job = JobHelper.CreateFromPSObject(result); } catch (Exception ex) { @@ -2123,35 +2206,15 @@ exit", Convert.ToInt32(objDisk["Index"]))); { return value == null ? 0 : Convert.ToInt64(value); } + + //protected VirtualMachineSnapshot GetSnapshotById(string id) + //{ + // var vms = GetVirtualMachines(); + // var allSnapshots = vms.SelectMany(vm => GetVirtualMachineSnapshots(vm.Id.ToString())); + + // return allSnapshots.FirstOrDefault(s => s.Id == id); + //} - protected JobResult CreateSuccessJobResult() - { - JobResult result = new JobResult(); - - result.Job = new ConcreteJob(){JobState = ConcreteJobState.Completed}; - result.ReturnValue = ReturnCode.OK; - - return result; - } - protected JobResult CreateJobResultFromPSResults(Collection objJob) - { - if (objJob == null || objJob.Count == 0) - return null; - - JobResult result = new JobResult(); - - result.Job = CreateJobFromPSObject(objJob); - - result.ReturnValue = ReturnCode.JobStarted; - switch (result.Job.JobState) - { - case ConcreteJobState.Failed: - result.ReturnValue = ReturnCode.Failed; - break; - } - - return result; - } protected JobResult CreateJobResultFromWmiMethodResults(ManagementBaseObject outParams) { @@ -2201,29 +2264,12 @@ exit", Convert.ToInt32(objDisk["Index"]))); private ManagementObject GetSnapshotObject(string snapshotId) { - return wmi.GetWmiObject("Msvm_VirtualSystemSettingData", "InstanceID = '{0}'", snapshotId); + return wmi.GetWmiObject("Msvm_VirtualSystemSettingData", "InstanceID = '{0}'", snapshotId) ?? + wmi.GetWmiObject("Msvm_VirtualSystemSettingData", "InstanceID = '{0}'", "Microsoft:" + snapshotId); } - private VirtualMachineSnapshot CreateSnapshotFromWmiObject(ManagementBaseObject objSnapshot) - { - if (objSnapshot == null || objSnapshot.Properties.Count == 0) - return null; - - VirtualMachineSnapshot snapshot = new VirtualMachineSnapshot(); - snapshot.Id = (string)objSnapshot["InstanceID"]; - snapshot.Name = (string)objSnapshot["ElementName"]; - - string parentId = (string)objSnapshot["Parent"]; - if (!String.IsNullOrEmpty(parentId)) - { - int idx = parentId.IndexOf("Microsoft:"); - snapshot.ParentId = parentId.Substring(idx, parentId.Length - idx - 1); - } - snapshot.Created = wmi.ToDateTime((string)objSnapshot["CreationTime"]); - - return snapshot; - } + private VirtualSwitch CreateSwitchFromWmiObject(ManagementObject objSwitch) { @@ -2236,36 +2282,6 @@ exit", Convert.ToInt32(objDisk["Index"]))); return sw; } - private ConcreteJob CreateJobFromPSObject(Collection objJob) - { - if (objJob == null || objJob.Count == 0) - return null; - - ConcreteJob job = new ConcreteJob(); - job.Id = objJob[0].GetProperty("Id").ToString(); - job.JobState = objJob[0].GetEnum("JobStateInfo"); - job.Caption = objJob[0].GetProperty("Name"); - job.Description = objJob[0].GetProperty("Command"); - job.StartTime = objJob[0].GetProperty("PSBeginTime"); - job.ElapsedTime = objJob[0].GetProperty("PSEndTime") ?? DateTime.Now; - - // PercentComplete - job.PercentComplete = 0; - var progress = (PSDataCollection)objJob[0].GetProperty("Progress"); - if (progress != null && progress.Count > 0) - job.PercentComplete = progress[0].PercentComplete; - - // Errors - var errors = (PSDataCollection)objJob[0].GetProperty("Error"); - if (errors != null && errors.Count > 0) - { - job.ErrorDescription = errors[0].ErrorDetails.Message + ". " + errors[0].ErrorDetails.RecommendedAction; - job.ErrorCode = errors[0].Exception != null ? -1 : 0; - } - - return job; - } - private ConcreteJob CreateJobFromWmiObject(ManagementBaseObject objJob) { if (objJob == null || objJob.Properties.Count == 0) @@ -2276,7 +2292,7 @@ exit", Convert.ToInt32(objDisk["Index"]))); job.JobState = (ConcreteJobState)Convert.ToInt32(objJob["JobState"]); job.Caption = (string)objJob["Caption"]; job.Description = (string)objJob["Description"]; - job.StartTime = wmi.ToDateTime((string)objJob["StartTime"]); + job.StartTime = Wmi.ToDateTime((string)objJob["StartTime"]); // TODO proper parsing of WMI time spans, e.g. 00000000000001.325247:000 job.ElapsedTime = DateTime.Now; //wmi.ToDateTime((string)objJob["ElapsedTime"]); job.ErrorCode = Convert.ToInt32(objJob["ErrorCode"]); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj index d033344b..c18926b0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/WebsitePanel.Providers.Virtualization.HyperV2012R2.csproj @@ -57,6 +57,8 @@ + + From 04bb21447e2d4a2c5a5470942166f5a74e673df8 Mon Sep 17 00:00:00 2001 From: AlexanderTr Date: Fri, 13 Mar 2015 08:02:51 +0300 Subject: [PATCH 25/40] wsp-10323 Convert the VSP provider into one utilizing PowerShell. Step 4 Snapshots --- .../WebsitePanel.Providers.Virtualization.HyperV-2012R2/Wmi.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Wmi.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Wmi.cs index 8ab33885..6a7140a2 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Wmi.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Virtualization.HyperV-2012R2/Wmi.cs @@ -115,7 +115,7 @@ namespace WebsitePanel.Providers.Virtualization } // Converts a given datetime in DMTF format to System.DateTime object. - internal System.DateTime ToDateTime(string dmtfDate) + internal static System.DateTime ToDateTime(string dmtfDate) { System.DateTime initializer = System.DateTime.MinValue; int year = initializer.Year; From d61b1613d9adea82cfb4f23567584a06522a1d74 Mon Sep 17 00:00:00 2001 From: me Date: Fri, 13 Mar 2015 09:08:01 +0400 Subject: [PATCH 26/40] wsp-10323 Convert the VSP provider into one utilizing PowerShell. Step 4 Snapshots --- .../WebsitePanel/UserControls/SpaceServiceItems.ascx.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SpaceServiceItems.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SpaceServiceItems.ascx.cs index c3914eee..a6275f7e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SpaceServiceItems.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SpaceServiceItems.ascx.cs @@ -211,18 +211,24 @@ namespace WebsitePanel.Portal.UserControls private void ShowActionList() { + var checkboxColumn = gvItems.Columns[0]; websiteActions.Visible = false; mailActions.Visible = false; + checkboxColumn.Visible = false; switch (QuotaName) { case "Web.Sites": websiteActions.Visible = true; + checkboxColumn.Visible = true; break; case "Mail.Accounts": ProviderInfo provider = ES.Services.Servers.GetPackageServiceProvider(PanelSecurity.PackageId, "Mail"); if (provider.EditorControl == "SmarterMail100") + { mailActions.Visible = true; + checkboxColumn.Visible = true; + } break; } } From b07a57c1d32f394d96ffc8572f1f54f2cd067ed6 Mon Sep 17 00:00:00 2001 From: me Date: Fri, 13 Mar 2015 15:57:02 +0400 Subject: [PATCH 27/40] wsp-10323 Compatibility with old HyperV --- .../Virtualization/VirtualMachineState.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineState.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineState.cs index d7db3390..c33396f7 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineState.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Virtualization/VirtualMachineState.cs @@ -49,18 +49,21 @@ namespace WebsitePanel.Providers.Virtualization Deleted = 32775, Pausing = 32776 */ + Snapshotting = 32771, + Migrating = 32772, + Deleted = 32775, Unknown = 0, Other = 1, Running = 2, Off = 3, - Stopping = 4, - Saved = 6, - Paused = 9, - Starting = 10, - Reset = 11, - Saving = 32773, - Pausing = 32776, + Stopping = 32774, // new 4 + Saved = 32769, // new 6 + Paused = 32768, // new 9 + Starting = 32770, // new 10 + Reset = 10, // new 11 + Saving = 32773, // new 32773 + Pausing = 32776, // new 32776 Resuming = 32777, FastSaved = 32779, FastSaving = 32780, From e80de0a081e3c006205d289b02ae21597724b24f Mon Sep 17 00:00:00 2001 From: dev_amdtel Date: Sat, 14 Mar 2015 18:40:22 +0300 Subject: [PATCH 28/40] New provider CRM2015 --- WebsitePanel/Database/update_db.sql | 13 +- .../CRM2015/Microsoft.Crm.Sdk.Proxy.dll | Bin 0 -> 208040 bytes .../Microsoft.Xrm.Client.CodeGeneration.dll | Bin 0 -> 34984 bytes .../CRM2015/Microsoft.Xrm.Client.dll | Bin 0 -> 290992 bytes .../CRM2015/Microsoft.Xrm.Portal.Files.dll | Bin 0 -> 133808 bytes .../CRM2015/Microsoft.Xrm.Portal.dll | Bin 0 -> 456368 bytes .../CRM2015/Microsoft.Xrm.Sdk.Deployment.dll | Bin 0 -> 88744 bytes .../CRM2015/Microsoft.Xrm.Sdk.Workflow.dll | Bin 0 -> 48808 bytes .../Microsoft/CRM2015/Microsoft.Xrm.Sdk.dll | Bin 0 -> 464040 bytes .../HostedSolution/CRMLycenseTypes.cs | 2 +- .../Servers/ResourceGroups.cs | 2 +- .../CRMBase.cs | 2103 + .../CRMProvider2015.cs | 46 + .../HostedSolutionLog.cs | 152 + .../MyOrganizationCrmSdkTypes.cs | 213367 +++++++++++++++ .../Properties/AssemblyInfo.cs | 64 + ...el.Providers.HostedSolution.Crm2015.csproj | 105 + WebsitePanel/Sources/WebsitePanel.Server.sln | 14 +- .../Sources/WebsitePanel.Server/Web.config | 2 +- .../WebsitePanel_SharedResources.ascx.resx | 2 +- .../OrganizationMenu.ascx.resx | 2 +- .../UserOrganization.ascx.resx | 2 +- .../WebsitePanel/CRM/CRMUserRoles.ascx | 10 +- .../ExchangeServer/OrganizationHome.ascx | 2 +- 24 files changed, 215875 insertions(+), 13 deletions(-) create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Crm.Sdk.Proxy.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Client.CodeGeneration.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Client.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Portal.Files.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Portal.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Sdk.Deployment.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Sdk.Workflow.dll create mode 100644 WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Sdk.dll create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMBase.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMProvider2015.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/HostedSolutionLog.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/MyOrganizationCrmSdkTypes.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/Properties/AssemblyInfo.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/WebsitePanel.Providers.HostedSolution.Crm2015.csproj diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index b8da593d..7ce52f7c 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -8988,4 +8988,15 @@ SELECT FROM EnterpriseFoldersOwaPermissions AS EFOP LEFT JOIN [dbo].[EnterpriseFolders] AS EF ON EF.EnterpriseFolderID = EFOP.FolderID WHERE EFOP.ItemID = @ItemID AND EFOP.AccountID = @AccountID -GO \ No newline at end of file +GO + + +-- CRM2015 Provider + +IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Hosted MS CRM 2015') +BEGIN +INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) +VALUES(1205, 24, N'CRM', N'Hosted MS CRM 2015', N'WebsitePanel.Providers.HostedSolution.CRMProvider2015, WebsitePanel.Providers.HostedSolution.Crm2015', N'CRM2011', NULL) +END +GO + diff --git a/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Crm.Sdk.Proxy.dll b/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Crm.Sdk.Proxy.dll new file mode 100644 index 0000000000000000000000000000000000000000..6d736097e3efad06ac72ed6b530f474489ae333d GIT binary patch literal 208040 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 z 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 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Client.CodeGeneration.dll b/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Client.CodeGeneration.dll new file mode 100644 index 0000000000000000000000000000000000000000..fc20d921d90b7cbd42d5c6fe948af09a983ca9cf GIT binary patch literal 34984 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 z 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 orX`ZxfB0sOpgIG&NT8qKJEdDlWE|5 zHv1eF@zJ?1F8i319dTYSCFBO(1@hrjg2NJUuu|jUeKNzHKjb7stvv08^jU%ops7U8 zCwJ}>sYL@-Wh$@cQ*nr@B0d;gop*}!0C0w^c_0a0<y(4TJ?t>mM2e%nnJUf;BAU0gV$V!IfK*jC zDq!gYFuYO3L|<8ak*36oFzMi_@8#JdoMx7t4yCa{vOazA5bJdD38pIl+lMTQ@otV{ z?oit*dhxs?NRLY}ALAjpDL*&^H2y)d^rCYic}PGHJ&8PX2TTk89*ZEYraL;&kfYCQsYX)j)D{)46aU{wIzCFO>p1SjsflmZt1W z=(Jf3A5FuMl=bjABG(Jsl>ggpDMDlb=AQ<~!cf&cGWYSuILtS4z8Zs!HIa>GF%u}{ zRXz|cdelCJHN5jhKbj^5LxS6`i8d7~*^2=?iux&II*#F)CNr-zqL8+EM3^Go6pCDm zw*6>v8gPiS$vgR{N(8Q7KFR#1>weTAEoyS|;k2PiVS2)pn)0`d3dJZ1G_t^nZ~$pR zh-Sno;M*`klPa+BBe zgi?w^=bAMStW+~e%WFc}<)I|UceVAduRS_Y6oQ-;Q=qETk;qCyFm?$U5}f^8tGMMXs^pXb`MI1Jm+$l?#A^Y(2Z^>^BDYR zUUKZ1w_Wl~-96BV7gqwnm5Y@CIN;#~Cp&xKMAkEVEfNf??~wJ0dran@4~~O*cn>;_ zH?*RwPHgQpH(P;yGg6ZV8rd?mMp;^i;AV*4dqI-_`X7Q0NJBf+5`p~Bp96O>-dQqt zqYK;6g_r*!bb;!KY7g)8#TX@&*5LzDF1drbNxO-H;Oq(`Nb@x&J|>gXPV1_uxjw&u z7^evqYkOQsvpwR&E^-NaA0HHKD+sWGAOZoNrDc3^oAH>vI3BeRD+;AWGQi#%<8|2hFima-g~ zX{=+A0}rBgDge{w?gVawTsLbETuxZ8>8yt_yyanx9OnQxFW`W2T8puI_ zQSs8IE3J&c*!qa=o6bY*o&jb_Ugat{b%|L|1CBvS_GwO9r0HZfX-tU1PuGUY;X(c_ zhouJP2@NtF4n|3G{{l=xtz|k!0h#dG65)V`z>XuUl-EAFD4RlHIfXEW_3M>Nn018h zdrEHSOw^V~ffK3c^rmU0*`VwG<~Fs!bv~0rXUu)5sq5c-;>ZHi+d|9_qwk#ONywB4 zAw14Ryd~06px^iDut-e}N~b_+ri$XqzUlM5VsCW!0LQQ-V}{v)u_rEg-KnHJ0S?wB z57XvyNMqA^9OWocrYt_f9~%gZh7SYv9KExVS8UeT=1HAa&KSakB={IJ%{6wMbHun~*qWl&+>TnIdpIYHO-| zbkScmE2%ehiGZ?~^T4MF9FfSbPBhA(IB)PW!-^jgHR&+}RNpxx_%F8qRlS^kyJN={BW@ zi*l$uCzTWOIZ-a2%kowu48`I3zOYOx_pI|}l(z|iqcII?bN*u%VD6B69hPZu2%l7c z3cnhQpj@ftR%xS)@a8c4IodHB1?Dqln({#`2ayg9CDUe1N}^ip#I+#p^@pPsw={H= zoYrTglG;S&A>&Yy{gaQ^0|#1-s}6$IQGJII!6m=a-X%}qrN;R0?tL0 zFe7g{0@_g9Jc{3W%-%D?rRPzG^cSflW5&H*g-6B z2c4WLlr>tGTPL8s*Q-RJ{Gc_=d3hgYH>9J^3CiS1JBsd^VE+0MDNh-Q?YO8%>_LNd zzQ2N>)r}6n73Ih#YE_k?T1IWYNeL0)DLm#qGsmvpyhjy!rlQt&|_;PV(TLd-i~ zlQOJPSGi5GcD@hT2l?@i0Yb(W=s)6g7gP2$1XQA?RLT+(WDHm#06sJ$b}ZRE*obFJA% zFPdCKI+GJPi`WP5x1`U=`TBs2>>~Q1>o2aH@YH&*pERARz~+|wQGW^&hPrD7>tZkC z-zw2m#>J()vklU%Fta;Z+iRQmsktv%GfkVk4~+hJTwy(Bk!^` zzbY8@X)}2woXNGd!2>Ah0A}z$X07O|z+90DQx+wv5?ka?pazF3KxsIg(r}I0 zX2) zDBtMa;C!{^WIRxr|ojakNBR+-&f6$1&ibad#WX6F(rdFJwFs_t3f= z%L%{$u2CAtgrkYHtsXMBzjFnEJ*4%RYzd_$N|bC1>7u_}EOZnwIQNrwxEUs$-mg^6 z==X)SQX{tgVTrh`b~4cV+!6tE7_gR;PVmgOg-~>+P^wW1q{d+d7B%sC^i=1Ik0B8j zW2>=|k`_WOPtVL-gIdSiiDpwW#g~;a{uuL<@RD_s&mM-3$NSaCS2)m$->{$D=2aB` zlJjFu=6V>Di;u-8AO}VOi8LJ-4!a&$@kmz+EbNk^baSyVq0l`^3Q(yFN)o2W0Gy! zZ${(yM?N*X)r~tsh-_VLQgu(zoDt>bES!L6F$R21tNsc%$VwAwq4S2N{3;3i7qdY{X2*4SG%8)BYCMlE zIQkN@w_coHscAvzt3H3ATd)pIiqSfxg}#864xmS>U2H@wPZ{AYa~w}dq-=+^P8=1k zQr|@`BdexgBVvrqzE6Ao^mQo--`8T@7M5Iv)!OqYdO5R_&6?L-a+RGkqUS=Hn21JU zeV7`UzTX(;il-domf@4;3twOrlNu?$#v7~-BjW8fEhRW-nbd@>$N51?yb!G>OU^b2 zGky@m)us+q+f6kb`B41@>K9i^Ajvp##w|p9`{-E(`!72Dtcy7GHs|x41%A$=c5}n? zrrAPi$KKP^S8n6HOr5=(nM%G_8;4P1TAcI`v?e3#wRsQ377RQGQo_{@<)*<(10@|}2=slf0R<9H$B|xM z=qFvH4pt|0-HuT|T}z_}1X&BNV5G$1M4qxaLo34zF$lc7h{K2(d&hZCDPlSfpk4MI zAMV3dY>#d9CeMOL!}eEh(})KXUoWol*2Sh>xs2o82#4720Or|=_ zYb|cJK`pNbK=Fabn!12kg9*1gss?66A&D1t40~cWa~|m_f7KS0KN`jBYWpr)#2Ag~bR!ajE73iA9r!?wv_<=ebCBMHTYaa^Kv`w5 z-sojHC79cLAhNc`;-ip|9M#Ml{^upY)p>ScX`Thoa^MeiC}fv!_kp4w(Swr_WM&D z1|_TxQ$leifwNX4qQPo)&HOuz_9#&~S3iy41^kkBoNJWsZXF4uvgJC;+7(V}1iX+F za6-wzk&mZDw1HeCE-DqlFT2!^P&m#qdk9!LeN5YrT81)$xbq3PZVl@tS6FLG$6DbG zECH6TgNHP^c0F$s>CE=A_?miKLhKlKC$CZ(aIG!TlWk#HQip5*EVDw-N5k@m(HD9; zy61~;mZAU2mr-zx<0F3UmdOuOXx;IL^97E|NQwrKRd_EAdE}V$&%Ia4i1p|4lN_KH zDdlS@QX(bMbutcQaOa5RD5PONa zvakH=C45LZ6C3^XGEqA?*XG+vFKe)7;xtLvP6T5|Qg6mJda4z0%PPv$#EevDb1XFK zJOSO}u~#aoT#2FyeYJHGB@o%-PH6f&>ZQ>8riS*i$)}4BmQ%-^!JHwUV-uxr3!iCU zXgr9X4Cf+i3s88|@9h|$|ilX|v91Yqze(xpMYdn8M{Mwb4Dm3pJ$EZ`2a1UCj1x%;El?cJg)U*r9?2Vxqiacun>w_&&Vp}-U4Ef-p4bWl#{|pV=NzQs2($Ng{M%M zV;-Qkp{}X5DLEStqxCe)p(aYT?}Nc1W=@iteE1~P`GkW?`A@EmTfNtXVbs&>hZW*w z`c#L8X}njdEcS13s=~?_+3QRBb5_RKr9J}r!>H$J{HL9`0A4XeJhRDtgw*Kd(y%4^ zG-ptfdfjPhlXuZsj*3KI?S6r<=7XrA77ynwV@JB9&vdPvqiYPhzdpuYqHV?ikJwXA zgX9a(%##>J>mt1W%HLH2*PwazjNPe4$ zB84lASmN~yT$iKGMDC;3#P@7)PZ>&SNQ;x}1o0BYl$=`I*A?i$DNGOLuFg7LQ&ml+ zI}~fjImW47;nPvzau#?>RHeqNcH?r*F?)b>Dr}#zFP^WN1U(tyeDPSjY7$3Sh;gmSTVq)N~_ z^oPSSGS~ynnYEH;6MIcoR=6KVHCLb)*KvGY4(6DwWZ~nT3BFA2okWhp(UKXBb2l9E zB!mMt$~K2_)<_*!4xU6i-0k4f1VYU&JI4hoF%-Vq6bdQXmMgF4jTXeZAx&u&r1qqT zD`wQJX>(my{^C#^*BGI!mw!5TY=`Fn*d}f5V$J?^Cyfb*c8Al3rYq@tJtQ*&BeOY~ zldLP$5r5O$u*o{6Gnpc_@=8JFAJi*&RmQuZ#aJTt7?9X0Ov1cvfdOH+c&sA6|;GEKQs zeH-GVJk7CRA(|{Q$ni|lo3Dj$wvD2Xwdu7UxxRR}c83FFM3lCS+;VQJRS2(sozIb8 z;0!`q$=Y2EBY>h({WNNjOE`0AchifATSx}fO_pW^FXcS+mh|@7_nMusHCmpuA4f_0 zHP^tVMvwV6m0!qR{Ld(jTQf9!uT?6fYAUYSG3{ga9+Jk$vsqlvP0Kf!=|1)#aB6mm zjELTMGmIV-`+Q8Otx@UZ7@t5-utI_N>rlhtW1P}A$|}DbN-0O5h&qrfLT)Fdk@p|b zhGz^>ckHXI4NkeYas;$oWCpWMoWlMi9rdOney!?C2jPYvLywdBq?)WjZj z{}FkMy>_s}cFkV)A_@Eb>sdQeSudhs%$Uhp1Y<(tfNa>ABr=*5eK z%m|_E!3%uOnN#@7SxJe{5%zWuN3du)xJYukikwswcx;TJXEz`!)O+z#F#kz{36$h;`EN&1kT{c=Z@7zpEy6cX5+(_U z7ou%tYhlpYEep8qybK0MW?lJ9zfR;=LM^o;Z6%P#t#z4G4$s>_UX@-NJ>fgfW-(jb zzR&RGqg*9r?#iFg(9d^(Y#S&~p9Wv)JLlRM-qf%RU)7~=;v?%3=bBbFQ_{N~P03u>4r7gb1Q<%_>?-zw(6Uml_{a`1P!I}0N!Ht&l$L;NZ^doiu3plN#uu5yB?oCYW^wk z(9L%!tPYxfM@8SUO#!bel}w?;NF_^G5_UvLal6@vDa_-P;lP(JSXWts^B-a!$96T$ zADWI(C#`%zg&x;3_t0daOmQ1~NESurLPMBu&{CKn^^kWE&Ikm`5r(`N zd`neP=U2ltX~H|noGg>16 zr?>xZ4<@Sh^n)(r4NJ6FxqDHCjM@sSf-$i+scL4bp4MG}T~QJ?6qy#=S9%OWL8q&p z$#6DdXkS@tV2KvJ+vnq66GxkbVue~npl<+G zTp43Fcqgy-#(8SOy=o2~N}G-@Z5Wiqs;m3x19@0!NN*(_-&YcI6|eeeoJDKWIbZ zJ02#ZH=J$fh3;r`-Ep+X9+Efc?;im^v*0N20qI$CC$~_?p5kN~|L$at@_|6Uq1@&) zSR>NDN+;Prj??|F#W=K@l6lTPjl|dpK}VQkDK-+H;pBR^r-=rT_hLDNoX<{*A3{m; zvw0v6fuB-X2?pDYL*a)AESxQFJZREzePhPz8}8^`lD&V_FkB-xL#`}o;7XICG=jB! zZ@k8%Zf4SQ=KR;QsX8AQ(KF>NH7MCH7n#tHm#AN?hON$R&Ssc{(I-UG;1Z7Krt5}1 zo2GT>i<1tj*;U(9cF^#5ZZXHn8?SuNI(4MieblSu;?MTJ zvjoNRJ<-Cdn{v*Qx<>-mjuf1}%;8&&?~&!PYfmAT-MM1fB;&L6u#^tj-L-kA)iEpE*d>r0BYHLrnNSbtDATgeT~f!?eH_9vX=FH>nSM?>9Y7b9Pd98#2W@yA zN)=If^&JicQAzk$D47m5;P%Vtse5eN_JE1h6~=p<>plau_8H)3>fnSnTmY7)fojhn z;6x+Nt4F<~nPAF)=jIeGKx$LYZO4P;FLE7cw+r7Wm+G9Oy%>)nQM-lFhn1oYPP03g z^*l&GdCKUOi`H>=d~o<`V{o2@PONEm`qzldnid)|pYb#aZ7l9Vp)JB+=gsR34lM;| z7m#l6XVE6v2lKbp!!k=FDgFPoV6jeR68S;)b!9wT_Lq>*(w&ACQmJ zpw`CcYIP7}L;vCcfGa2(PidgG#Zr@I591%4$dnhH%nYa#-pb#xbrVHfrQwr=z%Dxp z1SC7t2FKKGHJJy-WKfbp^=*L2ZDMm~3)qY=HM<88>15xb%`N6uvl-U@M`73Zqob$L=`A3|9k5Nd!ODN!{AVW9br9X5jlLiM9WV1E z1m>2s95*MFtfnnw7}Gce$b(Q16Cjsa7gtQ?g1+~I!@VfOMpZ;fK(;v#vT}~bKX^dJ z%-xQ(NpxLsz?u;UkVcy+d|MAyna-5td;t^5K1x-b>?dr~K8BdWl$yO_HLI^981yNO zgMUL1<&Nx}s(JgGmJPAj-9CPG#>O&gR;h?rs{XhoiLvuI)b{4eQSE7_T5N0gi(Ly# z?!H{fn`iI6U+6u0?(p{EJHEX|<2t(2b19PeW?!5~oJ{l@K|K*C|0(yvGGc1BzC*3IkgkgJJT~z)10$hq_ntqMGD9TF6|jiazhX#lcO>y&I*2u;eXwThAtLZ9BtK zVqF{V#>|atDc4VPo3^D|?(SeOIZLpYY7p~l)oPfTQNE8U{JS-Jy7paIhxeIHT<3El zb{ur`@2+PKzxyJ(w}(&eZ7bpOmXwm*kWy}(91Iz&EjNovPd}NWm{CJd`J)h~)ZsT{ z3?N0et+uSC4e+ERV0O?j_kNgip65-Qr>dF{@JhBdiQlONNketkNJs(Ul}^0)B#WHy(p>ovLh-b^Of&};JLOKWh8pZZ=? zSlfX6!rI2(Y$jJIKa*XPt6zhxx;2Hhb+?;b!|g0zf4daK?PaZcS>QaY56{96=q!|< z%M{vM0LvIU6Jg=&smOB2TNeng;f< zn?20gd)t#HbfgJ+Igo+eVzMlW;l&k{WR2$Dh$g);n)D`U!dy?24TJ0jz@*^X+UpTo z)0@qqR1<0|B4mLcq!IxhxRx zE;MtFbr|-f8M83g#Homj>FGvJhiM{-nmUX;aEbz$T;IUNL%rKs@OBoID<>sN+^pI? zu6>U|*0@Mli2yU8Ac{Y3C;0cI*O)cs?@0@Ky+Zu2`Fa*@k%GC|B?R6|$flu9${k$PRX`H0@KKa!k z`Be@*I4ld6Ec6sAb0Xs^Uv7bHvq1dqtB}Ci?3$*!HTnIRBgWKcc*)`-gZIqstHrVW ze}$VH2jEaGS|fz&*?%WpRWH9+ucj=`6>mn6D%S&t;OLuWAya$|ZDdhaNhuw|QZP)wW#z{Ax=MfSq_sUN`6XDd22O`fEJj|LelWah$^> zJp1PI^hBAy#r^tebNh6PEY;v4Lw}4dsar#pb%#jrJ9v9iZcp-dN^YlkyGL&K@b-w@ z9-+p$gO`)MO!2aZmm`p56ZJ6FO!>cD{piF!Zi;hHh1IU3Uk}%#Bl!t-BtJnxO?v{f z82INW+T-e}WYD3xddlV&lg*dk;=eh$y#%v4KPOr@Uw#|n8du7CeJGTFD1yKILl_KA zjSwZ}tA(fe`!w!oF27Bc{6jI4-xk&QLnf3-AT>eSE z{BEKAb8X}&Fow`D6Pi%E{EI^QS8X(9Dm2l5jvNlou*f%J?lNW|n zMU^kBnO|u}Sr`ql7LX5fd3YmC89;5z6n1;dNgi9AiB`!wz`NO(-NG=t*@@k@6BR%> zxmM64AUr_GX0o|;=vO6=N7n+(2_!h2&{aHkv4a&T);@M=cbmb}W>n}$N1t!PQ~7xi zSZ-b@RJJ1DWuhD@{5&r&&`Q!exD&lx{vt=^i=ub0y2Q#5p8*DzlR6DFoj{U0T$|MV zF=}~LhGB=o^ea?`J2hWumh09Z7+izi@$jk0eJz{YXg;F3g!xL=XKxhCT$&1#U9HI2 zd#S;|#(Jr(J%%T&yAV%MIS2Hhv@D*QpJ=it@O3;QuEmdNZVjI52PKnTEzl$J{7GIu#mg8k zMP4R(ndaq5UKV*-;^jhijW`aK3e90!s!g!a(eRCmM)^_g>mPyYkIQ#P@VXYT6?L{{6T><@F zrszYV^0H>Xj5cy`+zS;HL@EVF{p~0K5`jivLEq2~5cMmC$}8x~m3o>? zLbWcAgTX{9V;n%mmkYb)5nhx&mcL_fDktkvj?Om12H!!et@O8N7fd9>W<&W)vkMI{MFpxNrzbTL_-?XXHxrep44->$jf{;xGuqu2( zu+djwcUQiRnNeuZ)@`KKazXfZquH3bLHIaPu2UE_k(g_-MGF^l%`#UCmDh8S=Y`4} z09pB-++N}Bn`;qAsJsOL`O4eb7C!tC54r4GQwQ;b44V#InwlVUnqj@m?II@_KrA+) zC<(1ZVN0?9sPTU{0sK&%|Wp#+{3@LRM;VV(j7%nZ3( zY-$w{Z1=4u+fh_2m^DPKd=-^*1WTbK@x?APc9km_UePY(I0wxu-qg0gn^9${qBM2;?%A4J;R`)v7 zAduK!koHY*uQCQF8OX!r+zqBt6Gg?So(rQcw)k0M2c<|LrQBqx5`)1 zNRJL#QxnLRwGUbgWx?OX0-$=D_!kwG$_kB55Qqo_g0B1|#)LnCyb%dwo3(sKDJ~3$ ztIdR*=SEOk3e5eFafbJl7OKuUr8(J+@Dn)NP*sny3dN zdESIzv=t6bIV)9&8|wr;sQldZ|1FvKo6#CjK;vDe8Rn_riUA~Y`j7ajph1Eify!o7 zfS{KF?WUB%z|)qfHi-JHHpoM>J~TJ?f(X@yLbVxMwc5Z-Gff5*<5i25uZaDQz-OWS z%T@{0>-~C~=?v&1y|Yklt0SoL&vI+k+=p#ZDE|~V0_Q93xCM^9&Efu+au0bZ_Y&Gy zIAZr8ehN`mkvLa1uej#d5$cOki|+-Pyw@$51ep;!)y`ai=6hj!WFNoBM$7MU;l(uo zv%XM%r_FX&pArbX6Cm);COAUAHY82?9p6;*Mst(qf0LY<$f7-CNcp@NYep!aZ}l{J zk16H%+H8s<6Xd@mL)xii>Wqf86J}vIt<7qufb5iB{!EIMf98sne})p}pGgxxJLonE z-Hq)M+*6|4)wxJmg5#YQH(+pxTZJ@!unkMM+?+9ll;8d^foYUT!-Cw~Su!U-Oz@0& zh70K*D)8hM#Q6^s^IF1ilNPswaAdgcL$-|k$8ItirFrbbZIGKoxR_irAN35jQdpn6 z&v@d(DY3!@XV`BvS@9?!ch*uY^@hh08-R-Jj7jvqAD?>N7 zXQ@Eq#WrT(aEKzKakm(jMFXj2X}^VKdjPklte{5V%&loP%DtJnwXL8dJye_!V~e-d z7Ky5dVL~XTn-ueumFx)N zUNuS+*&eWQfTNKC0*F9Wwr(^qxIxMshM82p07I3J&Vqu9Wpeqd&4;g~Y`|z%<)!lT zj0JNu9wU9>?n<|3mvLgi(K+k3OZ9EC-Oy1tU>ZZ-@Ta?elq+8nHQ`P~D1O!YyB2(_5G6&M}PB-A$$dk92d{ z23rUa!9beR`Hc5fdbvbYs1EUVZEph>^}2~&t{dGbREGf=tzoA_l_5(p3tM|J%f#P+ zb=q5>(c7)C*CZ5q15znbesHh@ABs`Fai&&Rlgd*l6$hj!?#-G9i zzg;^EYf*cPIaS>YmkIM8H?XXM++G+~F!yq}(;qSB_U5F^(L4bKU{r2J;D%(8ANam$Gs|BM& zKEmxfxz$Gaj4WX>&BCqEa#7~~c$B%HhSYcAfAv5ZOJ-^!irg>JXav3W1`Ff; zKHlALg+>tX?hoVL{TszT#ReTQR`CN{x}O|~QK-Bm29~THG)V@M3WMUXXlx2Rf$(c1 z>_Uv$-q!@M!OCL&P!o1D*u=!EmHa7m*+3rOUlQRgcQ3bg+w8AcFa$ z!FXn(RZJJSHjH_!5h~_d@q_Mt1r#M=5y;MUH-WH3r5jOtCfIx=^J$}L*LcFGRaa9>)ubw~;!FVT{U^}4I9(cwOBh^pJeU4Fr>IwJA9-n}NjVtCQ z6qF+b zTCM@2qq|!?TF5q(#Vq6v?VUxC3Wk%tgTE?ywy$ddjWUx`1lm~`ENL$wa7M4(D{t#D z(|-5}!m}yH3fhxaHgd~}wCrfQ(X?tFDsMEK(4b-hJVBGlRI`aR<1D5@`{ep46>xfM zk#O~ecQRbXAR!zQwlX`0WI(V9c{@nXyr>MpsparNq*b=Amryh)0m?8Y^fE5)~fYgZ($^?H9Q~g2e#0Tqd#A>T7 zLVN+zqm>ik3sl6FE|D-@Tt9%Mp@gZ9VW~L_EuTST6mqhQldIB&t%H^KasL6D` z`XqEDvQ+GzNkg8(p;!~ zQPO3-8Qeo1S9yVjs@ATSMavh+Glwh-HO%IjlWQMBK=RIxN)RH0WGe$Q)WfB7ES?W^-Nbb#?0HCbOD^4A_^2@rIg% zZ}SW|0N3vB)?RoF?INGJ6G3mRM+5%RXXmkCVp|`^c|SQJJY1Ndi1lD#Q)%r&b;;jj z$stOwTv_Mtr6gje@n-~oT|%LH!R=p#hW5$jtFqUDo>H|^sJx3|MLvcVmOcj@c9Au$ z3P$lkIc=?4!E8Y1b1*8!k;1wZAtvdF89Tyh?H2!%+lxVel^GAmcAE@q)x<#TTJ~1=se&5~gONd9EDHA?0dP^%*2p zFU!KnTQI(L)fKqCf%Is>7PoIgxT4=EVwZk#Lv3%@jos2O;EQzw!wo@uEF)H*?dgWq z1L2<2pCHebPL`ZKuW;dtL38K~{@`Ea7XF3wpgVL6%U7%>vd$pt(IG~?$}8}w z;2JkzFkWeer^;L2Be_tiph$NPw@CgHQY#sg#i53bNRR5<<(F`<&eWHU`68twx1i$r z=&_L@^xb6e_nW``!vCKA-LwDs#`Aaozk9sz?AG7E@&6e5>L2}S+e?kxHviRye>MBYx?g?r zzxe+DGW?^1yFY(mU*q5YZ}%+!qZ{`A(HlSiXBTIG|GWSGfg@Lc|K!B~dgDJo@Yg?k z;-gy%54`s0#VtSo^QMMRz4CD)aXi=j(AadbG&eS0+;(nZVeam2+e+i-iqm7If$7Qd z`PtI!nT3Jz+39Uh&rfgLJ~%YAZQtz7!u;6yLJ67}d$xqJ%P-4%2S%^_GUA0e*npc> z1_~sJ=N#zC{|Y1YaxH-@T`s`_tjq$}dkzSl>*z zwS~~IAlZXLmG6Up^%qu*Rw_T!(O4%(A^?F$Cs1gkky$ATREvckt@c-_-T+t-l_>XD zEC(QZW}?u@Uh2KgL<>qcalElBF6nGxNB`}$l-(p?s{^714+~3 z#L!w)>vs?ATmE7n8d@vAR#Y|G-@Zne^S-oA4NG#2Z)ky7azaj7*gZk^c4R`~Q5|lR z9=HOxLR0bp5!I$8z2tj+YBpwDTk2eSr~p&A*xvyfq1-niAUkk#aVvU|!@yp|PCTAQ z!VP34lnBaocbIi#+QJ}e@XSYHPz-SBDE?CirX3C9FUh2Z*0bwUJpRKDKQ2h@ZbXBR z7aq&Wlqfs~ZP3@!*dR$bC<0Y;4*zeZsdbXWCdWq_5H-l>R3kLM@g zz!&;$QlauUh!{22LD9cd=)a+{32;B2D;$LVK_lcP{5qg;=^K%IFux!5dvNST@H(jT zh3c4-5PXRo3KhA7;a0fV!x^HF=vC!MuyBA}dq+mfAqYt(%x0VF8Z%8CHuL~jtfA(R zl3UZ5WnY^!rhasxh>sKj7>|&Ep}~XSmKj|Bb~mI5xJ%RG{So}QW<|3q==`0NwKnZ2h6cbpkMv+K;z(8TcI*p4xw;$5H^2UiZ!G=j_` zZRNMaK<_KtK$bGp!n`#tVu0FoN{+%#@@QEP<4~f0PpSS%!jC~$cG?AXlYr-dBHit|rRju-chLEjyiDo&#`Y!Ms6_^P{kl^j1u2CID8wpRHv z^%KsZfHTRuf7{c2b7Q@$nD~9wKEFBy&YFR)t*aff0WfCA=i(U0=i(T7t?~{7irDjUN&a1KgN9VQ{W2s9xF}n=Smf#k4_ZNpOiR_G zRcIHBS!{*`H`=+5A38@kQdgJ34xRqSHHC|l03hl3jbOVr+;92!R~*X=cJ3WroLQKh zE)H-I(D8vo#p&7kB^i=vekRI%2s8BYj9EK5Q(73C884;|$%(tucqTcmJo}8sfZ+{r z8B-WLU7DR*TqquRdTvrhkue|1n0#q!a)M(VB)4Tu(}a~*#+3gMk8|^rv-6V+OEo-j zqI_`$+6mPt#*f&#{}Cw&%ie6rn2*dZF3c_J6go0LduDQ~$T?!n-5E1{eI$&85lz-x ztyYy^h|pU_6y4}V(TyUCZWLDkX;1g*71`{;bR6cV(}V>~{NmFK>Efa#uKV$g`%Swvp*fNnBrO)$B0&+hTtfvas&CFnw%)kA5WE?53i!Vee=^X&FLVf zQ)C*fJPr1K+7(N0`2N&}kDr?_j&T+Y93qH=v*S-VFzKz8GG=`su3h2lY14_A!+zR2 zFzIdPAtj`T$04D>=sJCqV~qD?ZpVB@GP$ReHOI3Zqa|yd?3icp>~DfQSb<%+pLS#AXFV{(&aOBq4y6uBq(=pV zi4^8br_w*lnD!9&htf6ax%U;hAJCEsMK1#m_hro9)DFgYJIz{%W)*}@{^FBsdtoxm zA3Q*3V#jP7bS6^tp$T>=(t=|0-UDddHYspP3tSTO^(yVTr=hezYbD$8TJc(8#tj!L z?;&IO2Ju!j;g?Q@O64EJ4#zs}MZ|40xt=;%2FQtRUK!O0(2udoK!=D&yGHRU1vGN8 z0??w}FUgf^ANIjB@^HBq?nY&l|5&A~2hLd;hm*^f-7jKqIPirne?M=8`Ck4>Vb}&H zhVel0iz^L%?no^E1nn_MH7rT>a&2P9ucY!X!pgsp%D<2@YxQgn@GAejFuYC;iebQ# zlomR2dMl;dNy8!14;o<@u?(QwM%Tfjjt;`)xy(|-)|A0nGdylIk>?}F%$P|}t|G_t z0c^Nh)tp8j?tF zva-Vku(}W(7og~MUI_K|wG1jU3$2aXau;8|sj)>cL^&3PN36fBM(Te-0$SMK{JiWS zX0(mx^;*$)cTa&RiNb9Re1l%xR8zi65as8i?Fu-Z$AlLmP=xD1@m@g54G4zaKdftm z*B$2JjCmioF4@ zqRKZVC9=K%8sav9RxY0tlS|?Q!5D#D&uzD-XV+s^-1W_NP4$c>99eKk9 zC>^n@zXzG{Egc@*^IaM6Zr)svsaF20ntwka z3UX3VYv7&{s1Wi_5QQfw@)xnTo4@$O{KczzbPnt&@Q{pu5S15k?iP8htT@S)eZq1w z<5xVYNSb!>Ob2E8kK4iGg5J9fz2`6f9C55xYHvv8;X?H;hQcbNz>qV(r>=>i1NK44 zwMVWWzXcZfk@;c?PP{nx_bpCNO&lL9JyB}3(F?q!3eB^*Y3bUFEW1bQw4JXFKw&K)5XV&q@Asg$n=K{4YuVbL`u47ewuHPd2~Y zmwPN@j-~45M<-_{X3v-CTrJGcPRWf8*zBJio0>g4aA0O}`uMCyZ%&k8HSRB##^)#J z7}LQ!#bM|?G&=*QqZ6jc2qHaC6?^w1mN32mR}ydAgZI5}YHV`4v~BeM{l?q?pWe3F zdyr*Ek+?Bqx+3g)56?_Z&J=r{NhCA@`LBR9h2^1K1ERzl=PG|+e;kzZ*L18$p*tZ{Uvx3<%8L>P zSbo@QO+4$;!}1BtXv}p+{6x4iq>Dfm>dG<|^jPIZ&N~Dqaj3Kx2VoIvz^zLXuH__^ znc=6P@>o%(#07*t!Ri;XSz(+DWFs8?bl}TeH$uc%D%3-vVJW4AbhlCBa)R6I!t`%Y z{cvB^8%}3n8L@JOfGcDXWWH$?h-8RyE+r@rzK0Mi!rL-LmA7)V0{Ivu{%}o82I1ki z&=|G}=#m7BU_FEJQk=BJT?=*jA}&2mg4DZmy@DKl{)LmjZ%f9nSh4&T%Qx_n!!r&g zN#16#1G(F=1H!Uv@YW%uSbji42LeKg;J(Igx!{Q9&jy?gX+zI~!#&{xUV4F3eWUt_Q1MsE6P;Cg(bD%}=SkN*-N)~UZ!sCOnQrzYmfxfk- zPD=S3!9#KyDha4Ns-4W?X{ex?jufa6LpbHvkY9clxix)j$IOj&HZO$&nAtYk+)+<% zN#>_C+1nCQBBj6v2PCCGH%jG{3qP&)J;vd)%#JTVuD&@31}J{5xDijS$8v5SO21 z(GEpvE*`<;)L(2IMwUet{zmy7K3h=oEDN5f0fUhkN*Y|V2t3|k(TMT1IXVP_Ii+fT z`9+A0wIVm@<1J#cW3wyUJ}v@64tYajY6{vARH365ITD!Yi`jzs*i4eGhsS|QstlJ&p!kQG_GLJjSO*|nHO<7f)Wc1a8Gc7q-C6<)CypQ>#U zWaeTRwqv$&C|<$vAPGhQRVR)FY?b{LEQaGp=v{Q)1?k+~%XCsLI_Q#ZY{ABnjTu-W zb)W>6qO-Oum7z{r8ny|=zcSRr1wCwW3Sp2CbscqDTbMg)7Q}}l-pZK+BH~~Kl#H(O zJtp%b!UK#zHv~mE1SfGDYeM<8qyl>p8mT;kt&Je}jjjO7Ku&;H3)KbKQm%LltV!|q zD!sCYK-_IP`av}1hA{=7%qOzC<`K)v;}YE<9*c$L*KBlS`892MG1#OmDUpSxPqM>f z`8DBh0RfV-CyV`@Aqo_`XE`DfNL#|ODJCwk>6W+>Z}d^G(JJzy5cFxeVz(nGV>fDb zgR#{vA~$&Z$*nhQ#d13*nad^ja3{I56gC>X^U^)|UecTd>yt_4Z5-goM#RnvG1Z0d&;qFe6gnh7M6MSP07B>Y?)#G7#$kY%dgpiUw*9}7GAYq zh(!7=zb2~&m~N2eVhdCo)?ymMrmQy5bZ*2P;xhI+EOSXBcEU3ql1ZO+y1Kc9c6idK z(u)n~Se@g@;JgQ=@os(68#XN|e!-voX#$JB zC4LbYmV}U9sUMe-{v79x>`9=XD@SwoNAWjo+53DH6~)6B6mdkNr~?mRMo1+eU+YJN zDE8!{ZT(xY`2t>h^?ee4-6{=r^c;zWK z2>z>Z?lI0+3(G&ja+NsuqZpNkEgFU8ANSNjXmUGnzm(`j@rqsL=*1RIQ-#{}E zYZw?b6X5`kGw9p9i1oB^JHYb0Kw0^1`Ca8VATE>Ol2{wRC{!;MmhnQdtKy@553Um& zp^ad_YaC)i`2E@i>=wq#>rS2E@RPm0fKIRNt?$5FNU04w>d+6$g~b8};Q|mwK9FeQ z#J1rgZa+eRl5<$LB60XGWyt5;$B&hAyt0;Cc_@9LzLAQJEl9@Jp*74zHr`B8*Tgu{ zB4<%9f2mnqD&66P0jz#Y>{bqCm`2sDX}r@}jpcUgXzSd3OI%Qi!?7agosGu*39x1j zNoFViL^UY{1GbVvFyN|I7c;sW+lXlT-!&3YXJ50qcAk#_o6@jFbh!(%k0IEunx%ev z@OdXoA4ZKPgdyY*6OIn@M#$LKh<&1?6UH3PV4p8`h;o&>Wn=;SaZY3Xuhe<~y8srJ zjvzr%sA z9ElbMDnoW8I?1t@aRHHP6aL*TjtWs>_7)m-=D#CzfgQB9zw0Jd^}CXV=^%FGRxPiIoEmIa{8!}9_oEN z2Uz?cJJ5pIds@SKnu^0OBPg01XCp21UWDf_;*cTb1tF(y;1H}Bx^>u*-BX99 z7&J77R-oWN#U+RRMee8^nV8@n#$t*4DS=Dnb2z-EYY*I#IXZJ@7GK}YnB2(X!Z{>N zj?0pbu3yZ^rm3~q;`)^CKGkIl?1npCoYze57&$UlDxII5pU|BsLA#~7*_l$&7(ys5 zj*nx_Q31~_PNH;6#xxw5pP$9oM!D5QZjUXV9>;b?)G^p`p1<@YhQGZDt3(W!b>o-Y zQk%HAvQLWfPBkv?PGHN2!j(O+Shj>_mo05ramisnh$^NSQHpN6w=U+<~rNT9Ez6jj+HFzXtPS z<0F;MTyqOT`LOHg2|TxkWmbUKmS`Ip&!tY21;P4FHV-9XUj+#Ykf8N+h=^1XTF@GpH*!=1 z-N3O2nvRH1l&{`|t-QQdBPbRs(6b~s5o5XpBPl>OQK9?>RNM(PE~K$T)ruYH zYK4O(&dkML`kJ6L%oz4m;&l>iMOyi)CUS8L?_BHXRb8mYn6!80BU0NV1e1(latL8Z zNaA&{B+{*Ny675zKFJ|c!25e4R30h)xi6kqVCSZ_&2 z1282l`>RZj0sE-=H&F&h+ob%P_cXQzIfV**9yn(~5+AUbo=1?-{z_|PdqTMMY=r+M zuGVt`U3$)^J?qlkjqN2ne2JVT6}}|M{G0@-yen2)b%{Sfb1zI~_`UE8!64No-duX7 zP`wP-uyEc<6du0fR_^TM>s4{^El8ZTex z<=b+6N#VP8sA;Ot$THzuxN*ybIE9E+Jr3qu;Ciy6q;P#uvp}TkWh;8sbNU{PqspJb zkfI@tcQG{9!|}_?Z(%6g4Xc}Mf__rIHaFJeHGY?_;Kh;FSgAgz7V01%SWC$#S&Qr9 zAZ###&*q@Dq4MbER-cozVHbC**@|DBPvlx9jiu^ym~>15au<2fL4O^*y9m#Kf!@}| ziHC216@w!V@DBM;@0uWKB$)LVGK~=3tIJpHJ#Hj+1;;XP8mNb`pjEg8ISor?T`$ff z2G8vXHYF3fb6NnLj2aZi_^s^DnC^jx4jjLK9@-Xa^ocv%QIDr~4h#=q7w7TZ4N>O) z$(K7;!R_P2caDt>Pk@LS)3%Gp zQ1C}Cq7k{zQEr;#2Adavd-fxb&X3JuC&YoL$BVKz0=sOnvBEC39{<7Aah7J?Zlq02 z)tiZj>Tx=A|FPcx^DDEhZ(Kh3t+R8dj_o?h}D z=NHDNPDV638Fe}!%1P{7Jqf41I94jA78sbDI899c;s5#SbbW;6|G@j+=rMNlwW!>w zeY5lXr=|{#P0pC<()jFru{ba>g>Sy&&);uG{q|VJ>w18xiSl@{MLAwgH}2rOa5d>H z_aOd1R<1X5{GfvUGgr40caNB3_-@@J_|hD|oH>fm-#mopQC#oGJ^%b^{onmRJhzKo zMDpx@KW3ju9py!vfS>*Np8-^U#m;@Fbrgs4`5ig_xz(`Napdyrm8IC5&7^?&TK!)F zD7FjXAiw)cQ7xobrOY5+BdLFP$|qh7J{{A7x_sRszxv2FmZC2s5`OI$C5TNY>bN%e zO*Xz3k!}0$S*F)b|F{s#?lIU(5W#!|F!dX@d_e*K?20~bqxkbiDLh{Er3^3O@L0Wc2&4}NQIN+>i3+OU`WbSvDJl(b&+3YfN*X1(?W zo)BgNoA~lQi-g55lCT9wPxpnu4~F+a85{ko%7j_OxGcQSc&5{Wcz#^QBn~S%GS?cH zyZA~OGXn15d;g}vaZ{jR^7BRE*veO5+4Kkd^LV{1c>m?z4_5vEul4_J3ViJ*;GfN! z!Rk$au%`K=zxUwp{rk2|WA>%$P5%^0|2Uh;47Cn6uW8tltIOWhUv_a;!knG(4!W+27m}wTZsE7o z&n?_|luz0uM!d4kji^u^vrUMc=N)kTdi?L)=`{`0;Hb3n!@M+ME4f zng)5?`H~k%z?-#uZ#HvX=1ERUcQ%&3`5L8X_(r~Z_0);7&s1NX=a+zG8R^*!R(Xf0 zA+Ch|RRe*u4%~LK;?ir80oHTz@N{IqtOZyb3$c#%J1SU*#S%1|3zS? zfH7d0qo1P}qw~Ewh%4FWr^+A!-d>8}R>c6azuQ5uE{Nif%ShAZS6PCpQ~-AYY#29z zvyuT^m_lJDfDvG@ZUb~N>fa9#5)$&O1Gtm_L(4$`lGa}d7z=<{Z<2n~M!A3!5|j(L zIEf=NmQ74kI)vaypU4(&Wk#2!+iyLV9LTaeb}PR*kL&0eQwF0nqs*0&Lf?J6DYY__ zUY9F+U$Q*w>^mf(9O@~^vN9lJ$DgVqt7=79!AI7PX%OsAk9|I}>EF?G+pduOM}3ALt!?{+2}nvN$|gs;fQRh`wh998gYM_KaQ zf*5-XVytHa##()Pv0V7yMs|ZYbO@yNr%?mK{t;M+17hDMJ^v52fS7XwpEURK^aG!3 z{{b=_fCIUutfUG6-$17P!vrFu{*k`@1hVf$rvDQn|0S5t2RcqO5|)p*W!c{#JSZQj z;#8$Cy~cB3Pv%tNbw7S}%{BLzxVcMIF(<1FJ~m@Xxd?|l-OtSxS=`e__i9;SGJO)o zj@(>YMUu?-q^Q}~+E9b`YF|!%Q7TC^$xRI~lyW-k*}6+O@HnAf$oTpw`@Q>8E%4We z5Y){OK9c}F6?9}3sra5}=WEAK)ark!r?(9}sFoLSTCrqMiwe|=WXih{DCyL9 zS3dQFC`HVy(~N zA%{tF^|qf^1!Yty-9zT7dNRDk^Y&Rcodxpeq)3zSlnGxPtBUn=Wodkhno4HR^!{i^ zwk@1a;Q)o99^_rYH{K!kDoN5DNeBe<(_jJ4UmY|AQ_)Hs3K5M~^hp$~udMPfMXU~EV60o`LyA_v|# z%x^1banO5SR;uwrdS5DkA(ecjZNG31$bd)5w5?Lf2pn06qAzfnL8P3C$}OVu!)Ng+mO$#mMx1UBUx} zF??+pbbo(rqoa9jUpg_wZppZmk+ePAi!lC|)a(1v0N;2TD*#B}SY`<519~|+IodIrf1hPP^iBq)?FuUUE5$6= zsRdHZ005!9Zi5t4`Fj-mR$GoXVQBLOZ1w;1iw+90Ro!t+l2A6~uXPPuy?=^L(XYtx z)0FeUX_M{fCpx9ft8H)4n0)c}!=$tbF~<@OMU$I(MOK+F1L|t37Q?Cy$)9#iY9DJI zVcG1}M$HsOFEf*VvwDbrY1CC8FkZx(M^CkSQ4?ouJ)g2ObMF1@%*z-NoO+E_`a28p zXxRda;JMLcxX}D4aWOu(bplB}OKcYCN+hSq2Kr|3FABc1=<{sfvgRQ4FfYDAsv^wQ zN;l8!;nJIY8>_(#Iz3%Q=Y?lidnj1H&jl&Su_>?d%X#v*n&mjy+)rN^_>i~ECCTKj zl00`v#Hg-w#A@Pk=y_g;7Cg#%@SKq0Y4oj9oUY&u2M<5QaS(4W_9*QE(@Zp5{4QTM zBvIqAj6o*3^Sw`N)7yZ2>m=(V$q6|E2K08HI`TacLDX&2XvNLVugS_>3;x&CJt<4( z6$wfxcVV`;L5?A}1^-8cp6<fn3y-S=n_ z%XhvdPFDtp^&@ahzJd`Lkx@3w!B@E}uk<-e-O|=bD22m~3}S~yQ?#YL?w(6bX-VkM z5WC9ikohj}YRtYUmi_3uU~h=f`O`c0v<^V`OgLqGbH@rOwXaB?oOM7>+U8GHE>xr!S1y4cw z&*9^-LX+df{M;sSi`Il?y$+_wPGyhFcf#_PF8Q4Ed?NjvU{N0P_?0w4L8>HX*KTu` zF?#ux{b$Yqekb1B0$IyP`%)_>#8Qtgb|K$yx?$mKUZr>Dq5;H6--A<1#-k{8teY{? zC~xU_A*Vh!6XoLZ>D{5L&~zcvrf9JKJYo9AkT{|4H?-x>~5dOh|ji@b;*4xqIoV zg;=kB{*+MxeYC~ca&3v>?j2F)b$VX`>0S7r=>5xu@E_>S@dLsjy+NKsfXFl&Tg73K zXMo6r2<~6uH`ldb??3KdP&mR$QMpDr)KZfJHVbg1g8Tmr_5aq=9UNE|1VeLz!RR{+p21yLlE%gp_V-3Ky-uEIRE(y7b5?fimVlLy zpT|NkD6oElj|SB960=TwBgiQ=xvH6-=zC^tlP(ULsI*g}nxk-j>{2_%C>Wz5M`muG z4A5AMMj(gpAoiYq_oQa?6!Fxtdw4mg{Kl#JBg{L)do0LeGeB!ysJnwbbTfjRt?LnuPl>8Y&&ROFV%|e8GP8LZGC0N%ewP*vVP6r-JLU)S zbsajDua@2(seV~d6ojuK-U}4xk_={6H;)grBj|9~S5}srdNyC&xfT&77Lm;Zcuef% za^i2!-Xiu`=Z)N(x&?!F`JR4kgo&iA!B%IxNvqjQLl?4I)%+VGrGgkaXM)8VGbl|` zme;TC*EpFQytm3P7kR0%SpOZD|CczdPsQr6S#!L2i$_D2&C-YV8NCA_O8ea7&` zC#bvsN#-NXUd^xlCJR#^VPw|W?%6x^n+oLiFDqtiD(psiw;=PsU?{LcFno~@#(Dv8 zy8U}`iEq*0pTj1<2cL5yZ`0hh??GxNdJM~k&@&8-@BSW|X2!4q8-L}YIfLtegkeBu z(4kThS=YpPg(Hz05*2Z`w1WS7B(P^g6D$~WfRv*UA^*$VlrET+`IdF^0`o-&zzmHJ znBz3f6^;=6Q#TDvc5l49f{|7j1uQz1sAbJ6a-p8t?ctJ)R_o*H`$^=4yQC$f(;4zF zd!f%OUfUN6k(d_+ro<0wIkikBo?J`UobObOJi;pgJ!>?SlhEFNdXuSk<(RSO@zdJD zHP;729jIB|357@WlJDP!@L4J|37PCCgl|8>Hh7k+mS+h^ZfLxVPt7uN_pR1d(#rFuu0-#)L`TJ;gaGn<&?QtMX>pIW@@CgGb&enf|&hiLLZ) zp-8bm%rWE{Kjh1*uW zORlT22#Uqq_Zp5}X){Q?l-~06%kf+aoisq9+xq+UVZ>1Ac)(4ZUln=!U-JNdosHO_ zM@NA7_g>Run12{>D5%CCdSk$_gQ)@>m^e@cvjrF&xG4Qujk?&*_n%g+hEgll?CQj} zQ%_>4h8wj4hFNJ^iO+XizS|WZEwETtDk6zYcWQ<(i@Y661$v?P8#-ohF3t~&aSlK+ zD!gsYthheSFAWA~q;Cb*UsRamJB*EgF)rF2FLCguQ(I@y>y`07`=E{p)L}-^a-BH% z$A`^1uIIc|nP9K*8G`(`RSYicL|;)(;D|4S^~ zVCiDSF2kq$%4A&N5=8NB8Eev6nvW2Hgl-ldprjL?0;O&%A2sT0Y6vclqeJC>&R(5- QY?Q|di>gtWe+Ys6A81=`00000 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Portal.Files.dll b/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Portal.Files.dll new file mode 100644 index 0000000000000000000000000000000000000000..51ac375825ca9cc36d6df25a01a7c3fd7c57aafd GIT binary patch literal 133808 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 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Portal.dll b/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Portal.dll new file mode 100644 index 0000000000000000000000000000000000000000..cad08f8b38e80fc7d15a8cb4fc78cf48f2478c68 GIT binary patch literal 456368 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,PH+?V127&gQe&xtE(T9Db=$8=T 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 X`S72%nMV}Q?~rt0;N-aeI^F*PIextO literal 0 HcmV?d00001 diff --git a/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Sdk.Deployment.dll b/WebsitePanel/Lib/References/Microsoft/CRM2015/Microsoft.Xrm.Sdk.Deployment.dll new file mode 100644 index 0000000000000000000000000000000000000000..edd84245093a289e74250ad504b1d138c98765d8 GIT binary patch literal 88744 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�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

#Yri!FL+!2cuPxa0(%s>Cf!m8fEkNLkh3{ctQ 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 Z<$jT^$WhP@=G3SpujODm4ljkEe*p0z_&ops literal 0 HcmV?d00001 diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/HostedSolution/CRMLycenseTypes.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/HostedSolution/CRMLycenseTypes.cs index 4e999f18..f8a1c58a 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/HostedSolution/CRMLycenseTypes.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/HostedSolution/CRMLycenseTypes.cs @@ -41,7 +41,7 @@ namespace WebsitePanel.EnterpriseServer public const int LIMITED = 2; public const int ESS = 22; - // CRM 2013 + // CRM 2013/2015 public const int PROFESSIONAL = 0; public const int BASIC = 2; public const int ESSENTIAL = 5; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs index 01c89f9d..4f9b1d21 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs @@ -48,7 +48,7 @@ namespace WebsitePanel.EnterpriseServer public const string Exchange = "Exchange"; public const string HostedOrganizations = "Hosted Organizations"; public const string HostedCRM = "Hosted CRM"; - public const string HostedCRM2013 = "Hosted CRM2013"; + public const string HostedCRM2013 = "Hosted CRM2013"; // CRM 2013/2015 public const string VPS = "VPS"; public const string BlackBerry = "BlackBerry"; public const string OCS = "OCS"; diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMBase.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMBase.cs new file mode 100644 index 00000000..bb48c462 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMBase.cs @@ -0,0 +1,2103 @@ +// Copyright (c) 2015, Outercurve Foundation. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// - Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// +// - Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// - Neither the name of the Outercurve Foundation nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Globalization; +using System.IO; +using System.Net; +using System.Reflection; +using System.Net.Security; +using System.Security.Principal; +using System.Security.Cryptography.X509Certificates; +using System.Threading; +using System.ServiceModel.Description; +using System.Text.RegularExpressions; +using Microsoft.Win32; +using WebsitePanel.Providers.Common; +using WebsitePanel.Providers.ResultObjects; +using WebsitePanel.Server.Utils; +using WebsitePanel.Providers.HostedSolution; +using WebsitePanel.Providers; +using WebsitePanel.Providers.Utils; +using Microsoft.Xrm.Sdk; +using Microsoft.Xrm.Sdk.Query; +using Microsoft.Xrm.Sdk.Discovery; +using Microsoft.Xrm.Sdk.Client; +using Microsoft.Xrm.Sdk.Deployment; +using Microsoft.Xrm.Sdk.Messages; + +namespace WebsitePanel.Providers.HostedSolution +{ + public class CRMBase : HostingServiceProviderBase, ICRM + { + #region Properties + + protected virtual string UserName + { + get { return ProviderSettings[Constants.UserName]; } + } + + protected virtual string Password + { + get { return ProviderSettings[Constants.Password]; } + } + + protected virtual string SqlServer + { + get { return ProviderSettings[Constants.SqlServer]; } + } + + protected virtual string ReportingServer + { + get { return ProviderSettings[Constants.ReportingServer]; } + } + + protected virtual string UrlSchema + { + get { return ProviderSettings[Constants.UrlSchema] == "http" ? "http://" : "https://"; } + } + + protected virtual string CRMDeploymentUrl + { + get + { + string uri = ProviderSettings[Constants.DeploymentWebService]; + if (String.IsNullOrEmpty(uri)) uri = ProviderSettings[Constants.AppRootDomain]; + string cRMServiceUrl = UrlSchema + uri + ":" + ProviderSettings[Constants.Port] + "/XRMDeployment/2011/Deployment.svc"; + return cRMServiceUrl; + } + } + + protected virtual string CRMDiscoveryUrl + { + get + { + string uri = ProviderSettings[Constants.DiscoveryWebService]; + if (String.IsNullOrEmpty(uri)) uri = ProviderSettings[Constants.AppRootDomain]; + string cRMDiscoveryUri = UrlSchema + uri + ":" + ProviderSettings[Constants.Port] + "/XRMServices/2011/Discovery.svc"; + return cRMDiscoveryUri; + } + } + + private static string crmPath = null; + protected static string CRMPath + { + get + { + if (string.IsNullOrEmpty(crmPath)) + { + RegistryKey root = Registry.LocalMachine; + RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM"); + if (rk != null) + { + crmPath = (string)rk.GetValue("CRM_Server_InstallDir", string.Empty); + } + } + return crmPath; + } + } + + protected static string CRMDatabaseName = "MSCRM_CONFIG"; + + #endregion + + #region Service + + protected virtual ClientCredentials GetUserLogonCredentials() + { + ClientCredentials credentials = new ClientCredentials(); + + if (String.IsNullOrEmpty(UserName)) + { + credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials; + } + else + { + credentials.UserName.UserName = UserName; + credentials.UserName.Password = Password; + } + + return credentials; + } + + protected virtual DeploymentServiceClient GetDeploymentProxy() + { + Uri serviceUrl = new Uri(CRMDeploymentUrl); + + DeploymentServiceClient deploymentService = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(serviceUrl); + if (!String.IsNullOrEmpty(UserName)) + deploymentService.ClientCredentials.Windows.ClientCredential = new NetworkCredential(UserName, Password); + + return deploymentService; + } + + protected virtual DiscoveryServiceProxy GetDiscoveryProxy() + { + + IServiceManagement serviceManagement = + ServiceConfigurationFactory.CreateManagement( + new Uri(CRMDiscoveryUrl)); + + ClientCredentials Credentials = GetUserLogonCredentials(); + + DiscoveryServiceProxy r = new DiscoveryServiceProxy(serviceManagement, Credentials); + + return r; + } + + private OrganizationDetailCollection DiscoverOrganizations(IDiscoveryService service) + { + if (service == null) throw new ArgumentNullException("service"); + RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest(); + RetrieveOrganizationsResponse orgResponse = + (RetrieveOrganizationsResponse)service.Execute(orgRequest); + + return orgResponse.Details; + } + + public virtual string GetOrganizationUniqueName(string orgName) + { + return Regex.Replace(orgName, @"[^\dA-Za-z]", "-", RegexOptions.Compiled); + } + + protected virtual Uri GetCRMOrganizationUrl(string orgName) + { + //string url = "https://" + ProviderSettings[Constants.AppRootDomain] + ":" + ProviderSettings[Constants.Port] + "/" + orgName + "/XRMServices/2011/Organization.svc"; + + string url; + + orgName = GetOrganizationUniqueName(orgName); + + string organizationWebServiceUri = ProviderSettings[Constants.OrganizationWebService]; + + if (String.IsNullOrEmpty(orgName)) + return null; + + if (!String.IsNullOrEmpty(organizationWebServiceUri)) + { + url = UrlSchema + organizationWebServiceUri + ":" + ProviderSettings[Constants.Port] + "/" + orgName + "/XRMServices/2011/Organization.svc"; + } + else + { + url = UrlSchema + orgName + "." + ProviderSettings[Constants.IFDWebApplicationRootDomain] + ":" + ProviderSettings[Constants.Port] + "/XRMServices/2011/Organization.svc"; + } + + try + { + + using (DiscoveryServiceProxy serviceProxy = GetDiscoveryProxy()) + { + // Obtain organization information from the Discovery service. + if (serviceProxy != null) + { + // Obtain information about the organizations that the system user belongs to. + OrganizationDetailCollection orgs = DiscoverOrganizations(serviceProxy); + + for (int n = 0; n < orgs.Count; n++) + { + if (orgs[n].UniqueName == orgName) + { + // Return the organization Uri. + return new System.Uri(orgs[n].Endpoints[EndpointType.OrganizationService]); + } + } + + } + } + } + catch { } + + return new Uri(url); + } + + private int getOrganizationProxyTryCount = 10; + private int getOrganizationProxyTryTimeout = 30000; + protected virtual OrganizationServiceProxy GetOrganizationProxy(string orgName) + { + return GetOrganizationProxy(orgName, getOrganizationProxyTryCount, getOrganizationProxyTryTimeout); + } + + protected virtual OrganizationServiceProxy GetOrganizationProxy(string orgName, int TryCount, int TryTimeout) + { + + Uri OrganizationUri = GetCRMOrganizationUrl(orgName); + + OrganizationServiceProxy r = null; + + bool success = false; + int tryItem = 0; + Exception exception = null; + + while (!success) + { + + try + { + // Set IServiceManagement for the current organization. + IServiceManagement orgServiceManagement = + ServiceConfigurationFactory.CreateManagement( + OrganizationUri); + + r = new OrganizationServiceProxy( + orgServiceManagement, + GetUserLogonCredentials()); + + success = true; + + } + catch (Exception exc) + { + Thread.Sleep(TryTimeout); + tryItem++; + if (tryItem >= TryCount) + { + exception = exc; + success = true; + } + } + + } + + if (exception != null) + throw new ArgumentException(exception.ToString()); + + r.EnableProxyTypes(); + + return r; + } + + #endregion + + #region Static constructor + + static CRMBase() + { + AppDomain.CurrentDomain.AssemblyResolve += ResolveCRMAssembly; + } + + static Assembly ResolveCRMAssembly(object sender, ResolveEventArgs args) + { + // Ensure we load DLLs only. + if (args.Name.ToLower().Contains("microsoft.crm") || args.Name.ToLower().Contains("antixsslibrary") || args.Name.ToLower().Contains("microsoft.xrm")) + { + string dllName = args.Name.Split(',')[0] + ".dll"; + + List paths = new List(); + + // assembly location + paths.Add( Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().EscapedCodeBase).LocalPath) ); + // crm tools path + paths.Add(CRMPath); + + foreach(string path in paths) + { + string filename = Path.Combine(path, dllName); + if (File.Exists(filename)) + return Assembly.LoadFrom(filename); + } + } + + return default(Assembly); + } + + #endregion + + #region Check environment + + protected virtual bool CheckCRMWebServicesAccess() + { + Log.WriteStart("CheckCRMWebServicesAccess"); + bool ret = false; + HttpWebResponse response = null; + HttpWebRequest request; + + try + { + WindowsIdentity.GetCurrent(); + + request = WebRequest.Create(CRMDeploymentUrl) as HttpWebRequest; + + if (request != null) + { + request.UseDefaultCredentials = true; + request.Credentials = CredentialCache.DefaultCredentials; + response = request.GetResponse() as HttpWebResponse; + + } + if (response != null) + ret = (response.StatusCode == HttpStatusCode.OK); + } + catch (Exception ex) + { + Log.WriteError(ex); + ret = false; + } + + Log.WriteEnd("CheckCRMWebServicesAccess"); + return ret; + } + + protected virtual bool CheckPermissions() + { + Log.WriteStart("CheckPermissions"); + bool res = false; + try + { + string group = "PrivUserGroup"; + string user = WindowsIdentity.GetCurrent().Name.Split(new char[] { '\\' })[1]; + res = ActiveDirectoryUtils.IsUserInGroup(user, group); + } + catch (Exception ex) + { + Log.WriteError(ex); + res = false; + } + + Log.WriteEnd("CheckPermissions"); + return res; + } + + protected virtual bool CheckOrganizationUnique(string databaseName, string orgName) + { + Log.WriteStart("CheckOrganizationUnique"); + bool res = false; + + SqlConnection connection = null; + try + { + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("Server={1};Initial Catalog={0};Integrated Security=SSPI", + databaseName, SqlServer); + + connection.Open(); + + string commandText = string.Format("SELECT COUNT(*) FROM dbo.Organization WHERE UniqueName = '{0}'", orgName); + SqlCommand command = new SqlCommand(commandText, connection); + int count = (int)command.ExecuteScalar(); + res = count == 0; + + + } + catch (Exception ex) + { + res = false; + Log.WriteError(ex); + } + finally + { + if (connection != null) + connection.Close(); + + } + + Log.WriteEnd("CheckOrganizationUnique"); + return res; + } + + protected virtual bool CheckSqlServerConnection() + { + Log.WriteStart("CheckSqlServerConnection"); + bool res = false; + SqlConnection connection = null; + try + { + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("server={0}; Integrated Security=SSPI", + SqlServer); + + connection.Open(); + res = true; + } + catch (Exception ex) + { + Log.WriteError(ex); + res = false; + } + finally + { + if (connection != null) + connection.Close(); + } + + Log.WriteEnd("CheckSqlServerConnection"); + + return res; + } + + protected virtual bool CheckReportServerConnection() + { + Log.WriteStart("CheckReportServerConnection"); + bool ret = false; + HttpWebResponse response = null; + HttpWebRequest request; + + try + { + WindowsIdentity.GetCurrent(); + + request = WebRequest.Create(ReportingServer) as HttpWebRequest; + + if (request != null) + { + request.UseDefaultCredentials = true; + request.Credentials = CredentialCache.DefaultCredentials; + response = request.GetResponse() as HttpWebResponse; + + } + if (response != null) + ret = (response.StatusCode == HttpStatusCode.OK); + } + catch (Exception ex) + { + Log.WriteError(ex); + ret = false; + } + + Log.WriteEnd("CheckReportServerConnection"); + return ret; + } + + protected virtual OrganizationResult CheckCrmEnvironment(string strDataBaseName, string organizationUniqueName) + { + OrganizationResult retOrganization = StartLog("CheckCrmEnvironment"); + bool res = CheckSqlServerConnection(); + + if (!res) + { + EndLog("CheckCrmEnvironment", retOrganization, CrmErrorCodes.CRM_SQL_SERVER_ERROR); + return retOrganization; + } + + res = CheckOrganizationUnique(strDataBaseName, organizationUniqueName); + if (!res) + { + EndLog("CheckCrmEnvironment", retOrganization, CrmErrorCodes.CRM_ORGANIZATION_ALREADY_EXISTS); + return retOrganization; + } + + res = CheckReportServerConnection(); + if (!res) + { + EndLog("CheckCrmEnvironment", retOrganization, CrmErrorCodes.CRM_REPORT_SERVER_ERROR); + return retOrganization; + } + + res = CheckPermissions(); + if (!res) + { + EndLog("CheckCrmEnvironment", retOrganization, CrmErrorCodes.CRM_PERMISSIONS_ERROR); + return retOrganization; + } + + res = CheckCRMWebServicesAccess(); + if (!res) + { + EndLog("CheckCrmEnvironment", retOrganization, CrmErrorCodes.CRM_WEB_SERVICE_ERROR); + return retOrganization; + } + + EndLog("CheckCrmEnvironment"); + return retOrganization; + } + + #endregion + + #region DataBase + + protected virtual string GetDataBaseName(Guid organizationId) + { + string databasename = null; + + SqlConnection connection = null; + try + { + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("Server={1};Initial Catalog={0};Integrated Security=SSPI", + CRMDatabaseName, SqlServer); + + connection.Open(); + + string commandText = string.Format("SELECT DatabaseName FROM dbo.Organization where id = '{0}'", organizationId); + SqlCommand command = new SqlCommand(commandText, connection); + object result = command.ExecuteScalar(); + if (result!=null) + databasename = String.Concat(result.ToString()); + + } + catch (Exception ex) + { + Log.WriteError(ex); + } + finally + { + if (connection != null) + connection.Close(); + } + + return databasename; + } + + public virtual long GetDBSize(Guid organizationId) + { + StartLog("GetDBSize"); + long res = 0; + + string databasename = GetDataBaseName(organizationId); + if (databasename == null) return 0; + + if (databasename == null) return 0; + + SqlConnection connection = null; + try + { + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("Server={1};Initial Catalog={0};Integrated Security=SSPI", + databasename, SqlServer); + + connection.Open(); + + string commandText = "SELECT ((dbsize ) * 8192 ) size FROM " + // + logsize + "( " + + "SELECT SUM(CONVERT(BIGINT,CASE WHEN status & 64 = 0 THEN size ELSE 0 END)) dbsize " + + ", SUM(CONVERT(BIGINT,CASE WHEN status & 64 <> 0 THEN size ELSE 0 END)) logsize " + + "FROM dbo.sysfiles " + + ") big"; + + SqlCommand command = new SqlCommand(commandText, connection); + res = (long)command.ExecuteScalar(); + + } + catch (Exception ex) + { + EndLog("GetDBSize", null, null, ex); + } + finally + { + if (connection != null) + connection.Close(); + + } + + EndLog("GetDBSize"); + return res; + + } + + public virtual long GetMaxDBSize(Guid organizationId) + { + StartLog("GetMaxDBSize"); + long res = 0; + + string databasename = GetDataBaseName(organizationId); + if (databasename == null) return 0; + + SqlConnection connection = null; + try + { + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("Server={1};Initial Catalog={0};Integrated Security=SSPI", + databasename, SqlServer); + + connection.Open(); + + string commandText = "SELECT SUM(CONVERT(BIGINT,CASE WHEN status & 64 = 0 THEN maxsize ELSE 0 END)) dbsize FROM dbo.sysfiles"; + + SqlCommand command = new SqlCommand(commandText, connection); + res = (long)command.ExecuteScalar(); + if (res > 0) res = res * 8192; + + } + catch (Exception ex) + { + EndLog("GetMaxDBSize", null, null, ex); + } + finally + { + if (connection != null) + connection.Close(); + + } + + EndLog("GetMaxDBSize"); + return res; + } + + public virtual ResultObject SetMaxDBSize(Guid organizationId, long maxSize) + { + ResultObject res = StartLog("SetMaxDBSize"); + + SqlConnection connection = null; + try + { + string databasename = GetDataBaseName(organizationId); + if (databasename == null) throw new Exception("Can not get database name"); + + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("Server={1};Initial Catalog={0};Integrated Security=SSPI", + databasename, SqlServer); + + connection.Open(); + + string maxSizeStr = maxSize == -1 ? "UNLIMITED" : (maxSize / (1024 * 1024)).ToString() + " MB"; + + string commandText = "ALTER DATABASE [" + databasename + "] MODIFY FILE ( NAME = N'mscrm', MAXSIZE = " + maxSizeStr + " )"; + + SqlCommand command = new SqlCommand(commandText, connection); + command.ExecuteNonQuery(); + + res.IsSuccess = true; + + } + catch (Exception ex) + { + EndLog("SetMaxDBSize", res, CrmErrorCodes.CANNOT_CHANGE_CRM_ORGANIZATION_STATE, ex); + } + finally + { + if (connection != null) + connection.Close(); + + } + + EndLog("SetMaxDBSize"); + return res; + } + + #endregion + + #region Organization + + public virtual OrganizationResult CreateOrganization(Guid organizationId, string organizationUniqueName, string organizationFriendlyName, + int baseLanguageCode, + string ou, + string baseCurrencyCode, string baseCurrencyName, string baseCurrencySymbol, + string initialUserDomainName, string initialUserFirstName, string initialUserLastName, string initialUserPrimaryEmail, + string organizationCollation, + long maxSize) + { + return CreateOrganizationInternal(organizationId, organizationUniqueName, organizationFriendlyName, + baseLanguageCode, + ou , baseCurrencyCode, baseCurrencyName, baseCurrencySymbol, + initialUserDomainName, initialUserFirstName, initialUserLastName, initialUserPrimaryEmail, + organizationCollation, + maxSize); + } + + protected const string CRMSysAdminRoleStr = "Системный администратор;System Administrator"; + + internal virtual OrganizationResult CreateOrganizationInternal(Guid organizationId, string organizationUniqueName, string organizationFriendlyName, + int baseLanguageCode, + string ou, + string baseCurrencyCode, string baseCurrencyName, string baseCurrencySymbol, + string initialUserDomainName, string initialUserFirstName, string initialUserLastName, string initialUserPrimaryEmail, + string organizationCollation, + long maxSize) + { + + OrganizationResult ret = StartLog("CreateOrganizationInternal"); + + organizationUniqueName = GetOrganizationUniqueName(organizationUniqueName); + + // calculate UserRootPath + string ldapstr = ""; + + string[] ouItems = ou.Split('.'); + foreach (string ouItem in ouItems) + { + if (ldapstr.Length != 0) ldapstr += ","; + ldapstr += "OU=" + ouItem; + } + + string rootDomain = ServerSettings.ADRootDomain; + string[] domainItems = rootDomain.Split('.'); + foreach (string domainItem in domainItems) + ldapstr += ",DC=" + domainItem; + + ldapstr = @"LDAP://" + rootDomain + "/" + ldapstr; + + + + if (organizationId == Guid.Empty) + throw new ArgumentException("OrganizationId is Guid.Empty"); + + if (string.IsNullOrEmpty(organizationFriendlyName)) + throw new ArgumentNullException("organizationFriendlyName"); + + if (string.IsNullOrEmpty(baseCurrencyCode)) + throw new ArgumentNullException("baseCurrencyCode"); + + if (string.IsNullOrEmpty(baseCurrencySymbol)) + throw new ArgumentNullException("baseCurrencySymbol"); + + if (string.IsNullOrEmpty(initialUserDomainName)) + throw new ArgumentNullException("initialUserDomainName"); + + OrganizationResult retCheckEn = CheckCrmEnvironment(CRMDatabaseName, organizationUniqueName); + + if (!retCheckEn.IsSuccess) + { + ret.ErrorCodes.AddRange(retCheckEn.ErrorCodes); + EndLog("CreateOrganizationInternal", ret, null, null); + return ret; + } + + try + { + + DeploymentServiceClient deploymentService = GetDeploymentProxy(); + + Microsoft.Xrm.Sdk.Deployment.Organization org = new Microsoft.Xrm.Sdk.Deployment.Organization + { + Id = organizationId, + UniqueName = organizationUniqueName, + FriendlyName = organizationFriendlyName, + SqlServerName = SqlServer, + SrsUrl = ReportingServer, + BaseCurrencyCode = baseCurrencyCode, + BaseCurrencyName = baseCurrencyName, + BaseCurrencySymbol = baseCurrencySymbol, + SqlCollation = organizationCollation, + State = Microsoft.Xrm.Sdk.Deployment.OrganizationState.Enabled + }; + + if (baseLanguageCode > 0) + org.BaseLanguageCode = baseLanguageCode; + + BeginCreateOrganizationRequest req = new BeginCreateOrganizationRequest + { + Organization = org + }; + + if (!String.IsNullOrEmpty(UserName)) + { + req.SysAdminName = UserName; + } + + BeginCreateOrganizationResponse resp = deploymentService.Execute(req) as BeginCreateOrganizationResponse; + + if (resp == null) + throw new ArgumentException("BeginCreateOrganizationResponse is Null"); + + EntityInstanceId id = new EntityInstanceId(); + id.Name = org.UniqueName; + + Microsoft.Xrm.Sdk.Deployment.OrganizationState OperationState = Microsoft.Xrm.Sdk.Deployment.OrganizationState.Pending; + + int timeout = 30000; + + do + { + Thread.Sleep(timeout); + try + { + Microsoft.Xrm.Sdk.Deployment.Organization getorg + = (Microsoft.Xrm.Sdk.Deployment.Organization)deploymentService.Retrieve(DeploymentEntityType.Organization, id); + OperationState = getorg.State; + } + catch { } + } while ((OperationState != Microsoft.Xrm.Sdk.Deployment.OrganizationState.Enabled) && + (OperationState != Microsoft.Xrm.Sdk.Deployment.OrganizationState.Failed)); + + if (OperationState == Microsoft.Xrm.Sdk.Deployment.OrganizationState.Failed) + throw new ArgumentException("Create organization failed."); + + // update UserRootPath setting + Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity orgSettings = new Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity + { + Id = org.Id, + LogicalName = "Organization" + }; + orgSettings.Attributes = new Microsoft.Xrm.Sdk.Deployment.AttributeCollection(); + orgSettings.Attributes.Add(new KeyValuePair("UserRootPath", ldapstr)); + Microsoft.Xrm.Sdk.Deployment.UpdateAdvancedSettingsRequest reqUpdateSettings = new Microsoft.Xrm.Sdk.Deployment.UpdateAdvancedSettingsRequest + { + Entity = orgSettings + }; + Microsoft.Xrm.Sdk.Deployment.UpdateAdvancedSettingsResponse respUpdateSettings = (Microsoft.Xrm.Sdk.Deployment.UpdateAdvancedSettingsResponse) deploymentService.Execute(reqUpdateSettings); + + // DB size limit + if (maxSize!=-1) + SetMaxDBSize(organizationId, maxSize); + + int tryTimeout = 30000; + int tryCount = 10; + + bool success = false; + int tryItem = 0; + + while (!success) + { + + try + { + Thread.Sleep(tryTimeout); + + OrganizationServiceProxy _serviceProxy = GetOrganizationProxy(organizationUniqueName, 0, 0); + + string ldap = ""; + + Guid SysAdminGuid = RetrieveSystemUser(GetDomainName(initialUserDomainName), initialUserFirstName, initialUserLastName, CRMSysAdminRoleStr, _serviceProxy, ref ldap, 0); + + success = true; + + } + catch + { + tryItem++; + if (tryItem >= tryCount) + success = true; + } + } + + + } + catch (Exception ex) + { + EndLog("CheckCrmEnvironment", ret, CrmErrorCodes.CREATE_CRM_ORGANIZATION_GENERAL_ERROR, ex); + return ret; + + } + + EndLog("CheckCrmEnvironment"); + + return ret; + } + + protected string GetDomainName(string username) + { + string domain = ActiveDirectoryUtils.GetNETBIOSDomainName(ServerSettings.ADRootDomain); + string ret = string.Format(@"{0}\{1}", domain, username); + return ret; + } + + public virtual string[] GetSupportedCollationNames() + { + return GetSupportedCollationNamesInternal(SqlServer); + } + + internal virtual string[] GetSupportedCollationNamesInternal(string SqlServer) + { + StartLog("GetSupportedCollationNamesInternal"); + + List ret = new List(); + + SqlConnection connection = null; + try + { + connection = new SqlConnection(); + connection.ConnectionString = + string.Format("Server={1};Initial Catalog={0};Integrated Security=SSPI", + CRMDatabaseName, SqlServer); + + connection.Open(); + + string commandText = "select * from fn_helpcollations() where " + + "(name not like '%_WS') AND (name not like '%_KS') AND (name not like '%_100_%') " + + " AND (name not like 'SQL_%') " + + " order by name"; + SqlCommand command = new SqlCommand(commandText, connection); + SqlDataReader reader = command.ExecuteReader(); + + while (reader.Read()) + { + string name = reader["name"] as string; + ret.Add(name); + } + + } + catch (Exception ex) + { + Log.WriteError(ex); + } + finally + { + if (connection != null) + connection.Close(); + + } + + EndLog("GetSupportedCollationNamesInternal"); + return ret.ToArray(); + } + + public virtual Currency[] GetCurrencyList() + { + return GetCurrencyListInternal(); + } + + internal virtual Currency[] GetCurrencyListInternal() + { + StartLog("GetCurrencyListInternal"); + List retList = new List(); + + CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures); + + foreach (CultureInfo culture in cultures) + { + if (culture.IsNeutralCulture) continue; + + try + { + RegionInfo Region = new RegionInfo(culture.LCID); + + Currency currency = new Currency(); + currency.RegionName = Region.NativeName; + currency.CurrencyName = Region.CurrencyNativeName; + currency.CurrencyCode = Region.ISOCurrencySymbol; + currency.CurrencySymbol = Region.CurrencySymbol; + retList.Add(currency); + + } + catch + { + continue; + } + } + + retList.Sort(delegate(Currency a, Currency b) { return a.RegionName.CompareTo(b.RegionName); }); + + EndLog("GetCurrencyListInternal"); + return retList.ToArray(); + } + + public virtual int[] GetInstalledLanguagePacks() + { + return GetInstalledLanguagePacksInternal(); + } + + internal virtual int[] GetInstalledLanguagePacksInternal() + { + StartLog("GetInstalledLanguagePacks"); + List res = new List(); + + try + { + RegistryKey root = Registry.LocalMachine; + RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM"); + + if (rk == null) + rk = root.OpenSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\MSCRM"); + + if (rk == null) throw new Exception("Can't open SOFTWARE\\Microsoft\\MSCRM"); + + RegistryKey langPacksKey = rk.OpenSubKey("LangPacks"); + if (langPacksKey == null) throw new Exception("Can't open SOFTWARE\\Microsoft\\MSCRM\\LangPacks"); + + string[] langPacksId = langPacksKey.GetSubKeyNames(); + + foreach (string strLangId in langPacksId) + { + int langId = 0; + if (int.TryParse(strLangId, out langId)) + res.Add(langId); + } + + } + catch (Exception ex) + { + EndLog("GetInstalledLanguagePacks", null, null, ex); + return null; + } + + EndLog("GetInstalledLanguagePacks"); + return res.ToArray(); + } + + public virtual ResultObject DeleteOrganization(Guid orgId) + { + return DeleteOrganizationInternal(orgId); + } + + internal virtual ResultObject DeleteOrganizationInternal(Guid orgId) + { + ResultObject res = StartLog("DeleteOrganizationInternal"); + + + res.IsSuccess = true; + try + { + DeploymentServiceClient deploymentService = GetDeploymentProxy(); + + EntityInstanceId i = new EntityInstanceId(); + i.Id = orgId; //Organisation Id + + Microsoft.Xrm.Sdk.Deployment.Organization org = (Microsoft.Xrm.Sdk.Deployment.Organization)deploymentService.Retrieve(DeploymentEntityType.Organization, i); + + org.State = Microsoft.Xrm.Sdk.Deployment.OrganizationState.Disabled; + + Microsoft.Xrm.Sdk.Deployment.UpdateRequest updateRequest = new Microsoft.Xrm.Sdk.Deployment.UpdateRequest(); + updateRequest.Entity = org; + + deploymentService.Execute(updateRequest); + + } + catch (Exception ex) + { + EndLog("DeleteOrganizationInternal", res, CrmErrorCodes.DELETE_CRM_ORGANIZATION_GENERAL_ERROR, ex); + return res; + + } + + + EndLog("DeleteOrganizationInternal"); + return res; + } + + public override void DeleteServiceItems(ServiceProviderItem[] items) + { + foreach (ServiceProviderItem item in items) + { + try + { + if (item is Organization) + { + Organization org = item as Organization; + DeleteOrganization(org.CrmOrganizationId); + } + + } + catch (Exception ex) + { + Log.WriteError(String.Format("Error deleting '{0}' {1}", item.Name, item.GetType().Name), ex); + } + } + base.DeleteServiceItems(items); + + } + + #endregion + + #region Log + + private static void EndLog(string message, ResultObject res, string errorCode, Exception ex) + { + if (res != null) + { + res.IsSuccess = false; + + if (!string.IsNullOrEmpty(errorCode)) + res.ErrorCodes.Add(errorCode); + } + + if (ex != null) + HostedSolutionLog.LogError(ex); + + HostedSolutionLog.LogEnd(message); + } + + private static void EndLog(string message, ResultObject res, string errorCode) + { + EndLog(message, res, errorCode, null); + } + + private static void EndLog(string message, ResultObject res) + { + EndLog(message, res, null); + } + + private static void EndLog(string message) + { + EndLog(message, null); + } + + private static T StartLog(string message) where T : ResultObject, new() + { + HostedSolutionLog.LogStart(message); + T res = new T(); + res.IsSuccess = true; + return res; + } + + private static void StartLog(string message) + { + HostedSolutionLog.LogStart(message); + } + + #endregion + + #region User + + public virtual UserResult CreateCRMUser(OrganizationUser user, string orgName, Guid organizationId, Guid baseUnitId, int CALType) + { + return CreateCRMUserInternal(user, orgName, organizationId, baseUnitId, CALType); + } + + internal virtual UserResult CreateCRMUserInternal(OrganizationUser user, string orgName, Guid organizationId, Guid businessUnitId, int CALType) + { + UserResult res = StartLog("CreateCRMUserInternal"); + + try + { + if (user == null) + throw new ArgumentNullException("user"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + if (organizationId == Guid.Empty) + throw new ArgumentException("organizationId"); + + if (businessUnitId == Guid.Empty) + throw new ArgumentException("businessUnitId"); + + try + { + OrganizationServiceProxy _serviceProxy = GetOrganizationProxy(orgName); + + + string ldap = ""; + Guid guid = RetrieveSystemUser(user.DomainUserName, user.FirstName, user.LastName, CRMSysAdminRoleStr, _serviceProxy, ref ldap, CALType); + + user.CrmUserId = guid; + res.Value = user; + + } + catch (Exception ex) + { + EndLog("CreateCRMUserInternal", res, CrmErrorCodes.CANNOT_CREATE_CRM_USER, ex); + return res; + } + } + catch (Exception ex) + { + EndLog("CreateCRMUserInternal", res, CrmErrorCodes.CANNOT_CREATE_CRM_USER_GENERAL_ERROR, ex); + return res; + + } + + EndLog("CreateCRMUserInternal"); + return res; + } + + protected virtual Guid CreateSystemUser(String userName, String firstName, + String lastName, String domain, String roleStr, + OrganizationServiceProxy serviceProxy, ref String ldapPath, int CALType) + { + + if (serviceProxy.ServiceConfiguration.AuthenticationType == AuthenticationProviderType.LiveId || + serviceProxy.ServiceConfiguration.AuthenticationType == AuthenticationProviderType.OnlineFederation) + throw new Exception(String.Format("To run this sample, {0} {1} must be an active system user in your Microsoft Dynamics CRM Online organization.", firstName, lastName)); + + Guid userId = Guid.Empty; + + Microsoft.Xrm.Sdk.Query.QueryExpression businessUnitQuery = new Microsoft.Xrm.Sdk.Query.QueryExpression + { + EntityName = BusinessUnit.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("businessunitid"), + Criteria = + { + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression("parentbusinessunitid", + Microsoft.Xrm.Sdk.Query.ConditionOperator.Null) + } + } + }; + + BusinessUnit defaultBusinessUnit = serviceProxy.RetrieveMultiple( + businessUnitQuery).Entities[0].ToEntity(); + + // Retrieve the specified security role. + Role role = RetrieveRoleByName(serviceProxy, roleStr); + + // CALType and AccessMode + int accessmode = CALType / 10; + int caltype = CALType % 10; + + //Create a new system user. + SystemUser user = new SystemUser + { + DomainName = userName, + FirstName = firstName, + LastName = lastName, + BusinessUnitId = new EntityReference + { + LogicalName = BusinessUnit.EntityLogicalName, + Name = BusinessUnit.EntityLogicalName, + Id = defaultBusinessUnit.Id + }, + CALType = new OptionSetValue(caltype), + AccessMode = new OptionSetValue(accessmode) + }; + userId = serviceProxy.Create(user); + + // Assign the security role to the newly created Microsoft Dynamics CRM user. + AssociateRequest associate = new AssociateRequest() + { + Target = new EntityReference(SystemUser.EntityLogicalName, userId), + RelatedEntities = new EntityReferenceCollection() + { + new EntityReference(Role.EntityLogicalName, role.Id), + }, + Relationship = new Relationship("systemuserroles_association") + }; + serviceProxy.Execute(associate); + + return userId; + } + + + protected virtual Guid RetrieveSystemUser(String userName, String firstName, + String lastName, String roleStr, OrganizationServiceProxy serviceProxy, + ref String ldapPath, + int CALType) + { + String domain; + Guid userId = Guid.Empty; + + if (serviceProxy == null) + throw new ArgumentNullException("serviceProxy"); + + if (String.IsNullOrWhiteSpace(userName)) + throw new ArgumentNullException("UserName"); + + if (String.IsNullOrWhiteSpace(firstName)) + throw new ArgumentNullException("FirstName"); + + if (String.IsNullOrWhiteSpace(lastName)) + throw new ArgumentNullException("LastName"); + + if (String.IsNullOrWhiteSpace(roleStr)) + throw new ArgumentNullException("Role"); + + // Obtain the current user's information. + Microsoft.Crm.Sdk.Messages.WhoAmIRequest who = new Microsoft.Crm.Sdk.Messages.WhoAmIRequest(); + Microsoft.Crm.Sdk.Messages.WhoAmIResponse whoResp = (Microsoft.Crm.Sdk.Messages.WhoAmIResponse)serviceProxy.Execute(who); + Guid currentUserId = whoResp.UserId; + + SystemUser currentUser = + serviceProxy.Retrieve(SystemUser.EntityLogicalName, currentUserId, new Microsoft.Xrm.Sdk.Query.ColumnSet("domainname")).ToEntity(); + + // Extract the domain and create the LDAP object. + String[] userPath = currentUser.DomainName.Split(new char[] { '\\' }); + if (userPath.Length > 1) + domain = userPath[0] + "\\"; + else + domain = String.Empty; + + // Create the system user in Microsoft Dynamics CRM if the user doesn't + // already exist. + Microsoft.Xrm.Sdk.Query.QueryExpression userQuery = new Microsoft.Xrm.Sdk.Query.QueryExpression + { + EntityName = SystemUser.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("systemuserid"), + Criteria = + { + FilterOperator = Microsoft.Xrm.Sdk.Query.LogicalOperator.Or, + Filters = + { + new Microsoft.Xrm.Sdk.Query.FilterExpression + { + FilterOperator = Microsoft.Xrm.Sdk.Query.LogicalOperator.And, + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression("domainname", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, domain + userName) + } + }, + new Microsoft.Xrm.Sdk.Query.FilterExpression + { + FilterOperator = Microsoft.Xrm.Sdk.Query.LogicalOperator.And, + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression("firstname", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, firstName), + new Microsoft.Xrm.Sdk.Query.ConditionExpression("lastname", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, lastName) + } + } + } + + } + }; + + DataCollection existingUsers = (DataCollection)serviceProxy.RetrieveMultiple(userQuery).Entities; + + SystemUser existingUser = null; + if (existingUsers.Count > 0) + existingUser = existingUsers[0].ToEntity(); + + if (existingUser != null) + { + userId = existingUser.SystemUserId.Value; + + // Check to make sure the user is assigned the correct role. + Role role = RetrieveRoleByName(serviceProxy, roleStr); + + // Associate the user with the role when needed. + if (!UserInRole(serviceProxy, userId, role.Id)) + { + AssociateRequest associate = new AssociateRequest() + { + Target = new EntityReference(SystemUser.EntityLogicalName, userId), + RelatedEntities = new EntityReferenceCollection() + { + new EntityReference(Role.EntityLogicalName, role.Id) + }, + Relationship = new Relationship("systemuserroles_association") + }; + serviceProxy.Execute(associate); + } + + } + else + { + userId = CreateSystemUser(userName, firstName, lastName, domain, + roleStr, serviceProxy, ref ldapPath, CALType); + } + + return userId; + } + + public virtual CrmUserResult GetCrmUserById(Guid crmUserId, string orgName) + { + return GetCrmUserByIdInternal(crmUserId, orgName); + } + + internal virtual CrmUserResult GetCrmUserByIdInternal(Guid crmUserId, string orgName) + { + CrmUserResult ret = StartLog("GetCrmUserByIdInternal"); + + try + { + if (crmUserId == Guid.Empty) + throw new ArgumentNullException("crmUserId"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + SystemUser retruveUser = + serviceProxy.Retrieve(SystemUser.EntityLogicalName, crmUserId, new Microsoft.Xrm.Sdk.Query.ColumnSet("domainname", "businessunitid", "accessmode", "isdisabled", "caltype")).ToEntity(); + + CrmUser user = null; + + if (retruveUser != null) + { + user = new CrmUser(); + user.BusinessUnitId = retruveUser.BusinessUnitId.Id; + user.CRMUserId = retruveUser.SystemUserId.Value; + user.ClientAccessMode = (CRMUserAccessMode)retruveUser.AccessMode.Value; + user.IsDisabled = (bool)retruveUser.IsDisabled; + user.CALType = retruveUser.CALType.Value; + + ret.Value = user; + } + } + catch (Exception ex) + { + EndLog("GetCrmUserByIdInternal", ret, CrmErrorCodes.CANONT_GET_CRM_USER_BY_ID, ex); + return ret; + } + + EndLog("GetCrmUserByIdInternal"); + return ret; + } + + internal virtual CrmUserResult GetCrmUserByDomainNameInternal(string domainName, string orgName) + { + CrmUserResult ret = StartLog("GetCrmUserByDomainNameInternal"); + + try + { + if (string.IsNullOrEmpty(domainName)) + throw new ArgumentNullException("domainName"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + Microsoft.Xrm.Sdk.Query.QueryExpression usereQuery = new Microsoft.Xrm.Sdk.Query.QueryExpression + { + EntityName = SystemUser.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("domainname", "businessunitid", "accessmode", "isdisabled", "systemuserid", "caltype"), + }; + + EntityCollection users = serviceProxy.RetrieveMultiple(usereQuery); + + foreach (Entity entityuser in users.Entities) + { + SystemUser sysuser = entityuser.ToEntity(); + + if (sysuser == null) continue; + if (sysuser.DomainName != domainName) continue; + + CrmUser user = new CrmUser(); + user.BusinessUnitId = sysuser.BusinessUnitId.Id; + user.CRMUserId = sysuser.SystemUserId.Value; + user.ClientAccessMode = (CRMUserAccessMode)sysuser.AccessMode.Value; + user.IsDisabled = sysuser.IsDisabled.Value; + user.CALType = sysuser.CALType.Value; + ret.Value = user; + } + } + catch (Exception ex) + { + EndLog("GetCrmUserByDomainNameInternal", ret, CrmErrorCodes.CANONT_GET_CRM_USER_BY_DOMAIN_NAME, ex); + return ret; + } + + EndLog("GetCrmUserByDomainNameInternal"); + return ret; + } + + public virtual CrmUserResult GetCrmUserByDomainName(string domainName, string orgName) + { + return GetCrmUserByDomainNameInternal(domainName, orgName); + } + + public virtual ResultObject ChangeUserState(bool disable, string orgName, Guid crmUserId) + { + return ChangeUserStateInternal(disable, orgName, crmUserId); + } + + internal virtual ResultObject ChangeUserStateInternal(bool disable, string orgName, Guid crmUserId) + { + ResultObject res = StartLog("ChangeUserStateInternal"); + + res.IsSuccess = true; + try + { + if (crmUserId == Guid.Empty) + throw new ArgumentNullException("crmUserId"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + // Retrieve a user. + SystemUser user = serviceProxy.Retrieve(SystemUser.EntityLogicalName, + crmUserId, new Microsoft.Xrm.Sdk.Query.ColumnSet(new String[] { "systemuserid", "firstname", "lastname" })).ToEntity(); + + if (user != null) + { + Microsoft.Crm.Sdk.Messages.SetStateRequest request = new Microsoft.Crm.Sdk.Messages.SetStateRequest() + { + EntityMoniker = user.ToEntityReference(), + + // Required by request but always valued at -1 in this context. + Status = new OptionSetValue(-1), + + // Sets the user to disabled. + State = disable ? new OptionSetValue(-1) : new OptionSetValue(0) + }; + + serviceProxy.Execute(request); + + } + } + catch (Exception ex) + { + EndLog("ChangeUserStateInternal", res, CrmErrorCodes.CANNOT_CHANGE_USER_STATE, ex); + return res; + } + + + EndLog("ChangeUserStateInternal"); + return res; + } + + public virtual ResultObject SetUserCALType(string orgName, Guid userId, int CALType) + { + return SetUserCALTypeInternal(orgName, userId, CALType); + } + + internal virtual ResultObject SetUserCALTypeInternal(string orgName, Guid userId, int CALType) + { + ResultObject ret = StartLog("SetUserCALTypeInternal"); + + try + { + if (userId == Guid.Empty) + throw new ArgumentNullException("crmUserId"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + SystemUser user = + serviceProxy.Retrieve(SystemUser.EntityLogicalName, userId, new Microsoft.Xrm.Sdk.Query.ColumnSet("domainname", "businessunitid", "accessmode", "isdisabled", "caltype")).ToEntity(); + + // CALType and AccessMode + int accessmode = CALType / 10; + int caltype = CALType % 10; + + user.CALType = new OptionSetValue(caltype); + user.AccessMode = new OptionSetValue(accessmode); + + serviceProxy.Update(user); + + } + catch (Exception ex) + { + EndLog("SetUserCALTypeInternal", ret, CrmErrorCodes.CANONT_GET_CRM_USER_BY_ID, ex); + return ret; + } + + EndLog("SetUserCALTypeInternal"); + return ret; + } + + #endregion + + #region Role + + protected virtual Role RetrieveRoleByName(OrganizationServiceProxy serviceProxy, + String roleSplitStr) + { + string[] RolesStr = roleSplitStr.Split(';'); + + foreach (string roleStr in RolesStr) + { + + Microsoft.Xrm.Sdk.Query.QueryExpression roleQuery = new Microsoft.Xrm.Sdk.Query.QueryExpression + { + EntityName = Role.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("roleid"), + Criteria = + { + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression("name", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, roleStr) + } + } + }; + + DataCollection roles = serviceProxy.RetrieveMultiple(roleQuery).Entities; + + if (roles.Count > 0) return roles[0].ToEntity(); + } + + return null; + } + + protected virtual bool UserInRole(OrganizationServiceProxy serviceProxy, + Guid userId, Guid roleId) + { + // Establish a SystemUser link for a query. + Microsoft.Xrm.Sdk.Query.LinkEntity systemUserLink = new Microsoft.Xrm.Sdk.Query.LinkEntity() + { + LinkFromEntityName = SystemUserRoles.EntityLogicalName, + LinkFromAttributeName = "systemuserid", + LinkToEntityName = SystemUser.EntityLogicalName, + LinkToAttributeName = "systemuserid", + LinkCriteria = + { + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression( + "systemuserid", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, userId) + } + } + }; + + // Build the query. + Microsoft.Xrm.Sdk.Query.QueryExpression query = new Microsoft.Xrm.Sdk.Query.QueryExpression() + { + EntityName = Role.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("roleid"), + LinkEntities = + { + new Microsoft.Xrm.Sdk.Query.LinkEntity() + { + LinkFromEntityName = Role.EntityLogicalName, + LinkFromAttributeName = "roleid", + LinkToEntityName = SystemUserRoles.EntityLogicalName, + LinkToAttributeName = "roleid", + LinkEntities = {systemUserLink} + } + }, + Criteria = + { + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression("roleid", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, roleId) + } + } + }; + + // Retrieve matching roles. + EntityCollection ec = serviceProxy.RetrieveMultiple(query); + + if (ec.Entities.Count > 0) + return true; + + return false; + } + + public virtual CrmRolesResult GetAllCrmRoles(string orgName, Guid businessUnitId) + { + return GetAllCrmRolesInternal(orgName, businessUnitId); + } + + public virtual CrmRolesResult GetCrmUserRoles(string orgName, Guid userId) + { + return GetCrmUserRolesInternal(userId, orgName); + } + + public virtual EntityCollection GetUserRoles(Guid userId, string orgName) + { + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + // Establish a SystemUser link for a query. + Microsoft.Xrm.Sdk.Query.LinkEntity systemUserLink = new Microsoft.Xrm.Sdk.Query.LinkEntity() + { + LinkFromEntityName = SystemUserRoles.EntityLogicalName, + LinkFromAttributeName = "systemuserid", + LinkToEntityName = SystemUser.EntityLogicalName, + LinkToAttributeName = "systemuserid", + LinkCriteria = + { + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression( + "systemuserid", Microsoft.Xrm.Sdk.Query.ConditionOperator.Equal, userId) + } + } + }; + + // Build the query. + Microsoft.Xrm.Sdk.Query.QueryExpression query = new Microsoft.Xrm.Sdk.Query.QueryExpression() + { + EntityName = Role.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("roleid"), + LinkEntities = + { + new Microsoft.Xrm.Sdk.Query.LinkEntity() + { + LinkFromEntityName = Role.EntityLogicalName, + LinkFromAttributeName = "roleid", + LinkToEntityName = SystemUserRoles.EntityLogicalName, + LinkToAttributeName = "roleid", + LinkEntities = {systemUserLink} + } + } + }; + + // Retrieve matching roles. + EntityCollection relations = serviceProxy.RetrieveMultiple(query); + + return relations; + } + + internal virtual CrmRolesResult GetCrmUserRolesInternal(Guid userId, string orgName) + { + CrmRolesResult res = StartLog("GetCrmUserRolesInternal"); + + try + { + EntityCollection relations; + + if (userId == Guid.Empty) + throw new ArgumentException("userId"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + try + { + relations = GetUserRoles(userId, orgName); + } + catch (Exception ex) + { + EndLog("GetCrmUserRolesInternal", res, CrmErrorCodes.CANNOT_GET_CRM_USER_ROLES, ex); + return res; + } + + try + { + res.Value = FillCrmRoles(relations, true, Guid.Empty); + } + catch (Exception ex) + { + EndLog("GetCrmUserRolesInternal", res, CrmErrorCodes.CANNOT_FILL_ROLES_COLLECTION, ex); + return res; + } + } + catch (Exception ex) + { + EndLog("GetCrmUserRolesInternal", res, CrmErrorCodes.GET_CRM_USER_ROLE_GENERAL_ERROR, ex); + return res; + } + + EndLog("GetCrmUserRolesInternal"); + return res; + } + + protected static string excludedRolesStr = ";пользователь поддержки;support user;"; + + protected virtual List FillCrmRoles(EntityCollection entities, bool isUserRole, Guid businessUnitId) + { + List res = new List(); + + foreach (Entity current in entities.Entities) + { + Role role = current.ToEntity(); + + if (role == null) continue; + + if (businessUnitId != Guid.Empty) + { + if (businessUnitId != role.BusinessUnitId.Id) + continue; + } + + string roleName = role.Name; + + if (roleName != null) + if (excludedRolesStr.IndexOf(";" + roleName.ToLower() + ";") != -1) + continue; + + CrmRole crmRole = new CrmRole(); + crmRole.IsCurrentUserRole = isUserRole; + crmRole.RoleId = (Guid)role.RoleId; + crmRole.RoleName = roleName; + + res.Add(crmRole); + } + + return res; + } + + protected virtual List FillCrmRoles(EntityCollection entities, Guid businessUnitId) + { + return FillCrmRoles(entities, false, businessUnitId); + } + + internal virtual CrmRolesResult GetAllCrmRolesInternal(string orgName, Guid businessUnitId) + { + CrmRolesResult res = StartLog("GetAllCrmRoles"); + + try + { + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + EntityCollection roles; + try + { + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + Microsoft.Xrm.Sdk.Query.QueryExpression roleQuery = new Microsoft.Xrm.Sdk.Query.QueryExpression + { + EntityName = Role.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet(new string[] { "roleid", "name", "businessunitid" }), + }; + + roles = serviceProxy.RetrieveMultiple(roleQuery); + + + } + catch (Exception ex) + { + EndLog("GetAllCrmRoles", res, CrmErrorCodes.CANNOT_GET_ALL_CRM_ROLES, ex); + return res; + } + + try + { + List crmRoles = FillCrmRoles(roles, businessUnitId); + res.Value = crmRoles; + } + catch (Exception ex) + { + EndLog("GetAllCrmRoles", res, CrmErrorCodes.CANNOT_FILL_ROLES_COLLECTION, ex); + return res; + } + } + catch (Exception ex) + { + EndLog("GetAllCrmRoles", res, CrmErrorCodes.GET_ALL_CRM_ROLES_GENERAL_ERROR, ex); + return res; + } + + EndLog("GetAllCrmRoles"); + return res; + } + + public virtual ResultObject SetUserRoles(string orgName, Guid userId, Guid[] roles) + { + return SetUserRolesInternal(orgName, userId, roles); + } + + internal virtual ResultObject SetUserRolesInternal(string orgName, Guid userId, Guid[] roles) + { + CrmRolesResult res = StartLog("SetUserRolesInternal"); + + try + { + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + if (userId == Guid.Empty) + throw new ArgumentException("userId"); + + if (roles == null) + throw new ArgumentNullException("roles"); + + OrganizationServiceProxy serviceProxy = GetOrganizationProxy(orgName); + + + CrmRolesResult tmpRoles = GetCrmUserRoles(orgName, userId); + res.ErrorCodes.AddRange(tmpRoles.ErrorCodes); + + if (!tmpRoles.IsSuccess) + return res; + + List remRoles = new List(); + + for (int i = 0; i < tmpRoles.Value.Count; i++) + { + if (Array.Find(roles, delegate(Guid current) { return current == tmpRoles.Value[i].RoleId; }) == Guid.Empty) + { + remRoles.Add(tmpRoles.Value[i].RoleId); + } + } + + try + { + DisassociateRequest removeRole = new DisassociateRequest() + { + Target = new EntityReference(SystemUser.EntityLogicalName, userId), + RelatedEntities = new EntityReferenceCollection(), + Relationship = new Relationship("systemuserroles_association") + }; + + for (int i = 0; i < remRoles.Count; i++) + removeRole.RelatedEntities.Add(new EntityReference(Role.EntityLogicalName, remRoles[i])); + + serviceProxy.Execute(removeRole); + + } + catch (Exception ex) + { + EndLog("SetUserRolesInternal", res, CrmErrorCodes.CANNOT_REMOVE_CRM_USER_ROLES, ex); + return res; + } + + + try + { + // Assign the security role to the newly created Microsoft Dynamics CRM user. + AssociateRequest associate = new AssociateRequest() + { + Target = new EntityReference(SystemUser.EntityLogicalName, userId), + RelatedEntities = new EntityReferenceCollection(), + Relationship = new Relationship("systemuserroles_association") + }; + + for (int i = 0; i < roles.Length; i++) + { + bool find = false; + foreach (CrmRole current in tmpRoles.Value) + { + if (current.RoleId == roles[i]) + find = true; + } + if (find) continue; + + associate.RelatedEntities.Add(new EntityReference(Role.EntityLogicalName, roles[i])); + } + + serviceProxy.Execute(associate); + } + catch (Exception ex) + { + EndLog("SetUserRolesInternal", res, CrmErrorCodes.CANNOT_ASSIGN_CRM_USER_ROLES, ex); + return res; + } + + } + catch (Exception ex) + { + EndLog("SetUserRolesInternal", res, CrmErrorCodes.CANNOT_SET_CRM_USER_ROLES_GENERAL_ERROR, ex); + return res; + } + + + EndLog("SetUserRolesInternal"); + return res; + + } + + #endregion + + #region Business Units + + internal virtual CRMBusinessUnitsResult GetOrganizationBusinessUnitsInternal(Guid organizationId, string orgName) + { + CRMBusinessUnitsResult res = StartLog("GetOrganizationBusinessUnitsInternal"); + + try + { + if (organizationId == Guid.Empty) + throw new ArgumentException("organizationId"); + + if (string.IsNullOrEmpty(orgName)) + throw new ArgumentNullException("orgName"); + + OrganizationServiceProxy serviceProxy; + + try + { + serviceProxy = GetOrganizationProxy(orgName); + } + catch (Exception ex) + { + EndLog("GetOrganizationBusinessUnitsInternal", res, CrmErrorCodes.CANNOT_GET_CRM_SERVICE, ex); + return res; + } + + DataCollection BusinessUnits; + + try + { + + Microsoft.Xrm.Sdk.Query.QueryExpression businessUnitQuery = new Microsoft.Xrm.Sdk.Query.QueryExpression + { + EntityName = BusinessUnit.EntityLogicalName, + ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet(new string[] { "businessunitid", "name" }), + Criteria = + { + Conditions = + { + new Microsoft.Xrm.Sdk.Query.ConditionExpression("parentbusinessunitid", + Microsoft.Xrm.Sdk.Query.ConditionOperator.Null) + } + } + }; + + BusinessUnits = serviceProxy.RetrieveMultiple( + businessUnitQuery).Entities; + + } + catch (Exception ex) + { + EndLog("GetOrganizationBusinessUnitsInternal", res, CrmErrorCodes.CANNOT_GET_CRM_BUSINESS_UNITS, ex); + return res; + } + + List businessUnits = new List(); + + try + { + for (int i = 0; i < BusinessUnits.Count; i++) + { + BusinessUnit bu = BusinessUnits[i].ToEntity(); + + CRMBusinessUnit unit = new CRMBusinessUnit(); + unit.BusinessUnitId = (Guid)bu.BusinessUnitId; + unit.BusinessUnitName = bu.Name; + + if (unit.BusinessUnitName == null) + unit.BusinessUnitName = "default"; + + businessUnits.Add(unit); + + } + + res.Value = businessUnits; + } + catch (Exception ex) + { + EndLog("GetOrganizationBusinessUnitsInternal", res, CrmErrorCodes.CANNOT_FILL_BASE_UNITS_COLLECTION, + ex); + return res; + } + } + catch (Exception ex) + { + EndLog("GetOrganizationBusinessUnitsInternal", res, CrmErrorCodes.GET_ORGANIZATION_BUSINESS_UNITS_GENERAL_ERROR, + ex); + return res; + + } + + EndLog("GetOrganizationBusinessUnitsInternal"); + return res; + + } + + public virtual CRMBusinessUnitsResult GetOrganizationBusinessUnits(Guid organizationId, string orgName) + { + return GetOrganizationBusinessUnitsInternal(organizationId, orgName); + } + + #endregion + + #region Version + + public virtual string CRMServerVersion + { + get + { + string value = ""; + try + { + RegistryKey root = Registry.LocalMachine; + RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM"); + + if (rk == null) + rk = root.OpenSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\MSCRM"); + + if (rk != null) + { + value = (string)rk.GetValue("CRM_Server_Version", null); + rk.Close(); + } + } + catch (Exception ex) + { + Log.WriteError(ex); + } + + return value; + } + + } + + public override bool IsInstalled() + { + return false; + } + + #endregion + + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMProvider2015.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMProvider2015.cs new file mode 100644 index 00000000..5fcf9a4e --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/CRMProvider2015.cs @@ -0,0 +1,46 @@ +// Copyright (c) 2015, Outercurve Foundation. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// - Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// +// - Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// - Neither the name of the Outercurve Foundation nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +using System; +using WebsitePanel.Providers.HostedSolution; + + +namespace WebsitePanel.Providers.HostedSolution +{ + public class CRMProvider2015 : CRMBase + { + + public override bool IsInstalled() + { + + return CRMServerVersion.StartsWith("7."); + } + + } + +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/HostedSolutionLog.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/HostedSolutionLog.cs new file mode 100644 index 00000000..75f869e8 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/HostedSolutionLog.cs @@ -0,0 +1,152 @@ +// Copyright (c) 2015, Outercurve Foundation. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// - Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// +// - Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// - Neither the name of the Outercurve Foundation nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +using System; +using WebsitePanel.Providers.Common; +using WebsitePanel.Server.Utils; +using System.Text; +using System.Management.Automation.Runspaces; + +namespace WebsitePanel.Providers.HostedSolution +{ + public class HostedSolutionLog + { + public static string LogPrefix = "HostedSolution"; + + public static void LogStart(string message, params object[] args) + { + string text = String.Format(message, args); + Log.WriteStart("{0} {1}", LogPrefix, text); + } + + public static void LogEnd(string message, params object[] args) + { + string text = String.Format(message, args); + Log.WriteEnd("{0} {1}", LogPrefix, text); + } + + public static void LogInfo(string message) + { + Log.WriteInfo("{0} {1}", LogPrefix, message); + } + + public static void LogInfo(string message, params object[] args) + { + string text = String.Format(message, args); + Log.WriteInfo("{0} {1}", LogPrefix, text); + } + + public static void LogWarning(string message) + { + Log.WriteWarning("{0} {1}", LogPrefix, message); + } + + public static void LogWarning(string message, params object[] args) + { + string text = String.Format(message, args); + Log.WriteWarning("{0} {1}", LogPrefix, text); + } + + public static void LogError(Exception ex) + { + Log.WriteError(LogPrefix, ex); + } + + public static void LogError(string message, Exception ex) + { + string text = String.Format("{0} {1}", LogPrefix, message); + Log.WriteError(text, ex); + } + + public static void DebugInfo(string message, params object[] args) + { + string text = String.Format(message, args); + Log.WriteInfo("{0} {1}", LogPrefix, text); + } + + public static void EndLog(string message, ResultObject res, string errorCode, Exception ex) + { + if (res != null) + { + res.IsSuccess = false; + + if (!string.IsNullOrEmpty(errorCode)) + res.ErrorCodes.Add(errorCode); + } + + if (ex != null) + LogError(ex); + + + //LogRecord. + LogEnd(message); + + + } + + public static void EndLog(string message, ResultObject res, string errorCode) + { + EndLog(message, res, errorCode, null); + } + + public static void EndLog(string message, ResultObject res) + { + EndLog(message, res, null); + } + + public static void EndLog(string message) + { + EndLog(message, null); + } + + internal static T StartLog(string message) where T : ResultObject, new() + { + LogStart(message); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static void DebugCommand(Command cmd) + { + StringBuilder sb = new StringBuilder(cmd.CommandText); + foreach (CommandParameter parameter in cmd.Parameters) + { + string formatString = " -{0} {1}"; + if (parameter.Value is string) + formatString = " -{0} '{1}'"; + else if (parameter.Value is bool) + formatString = " -{0} ${1}"; + sb.AppendFormat(formatString, parameter.Name, parameter.Value); + } + Log.WriteInfo("{0} {1}", LogPrefix, sb.ToString()); + } + + + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/MyOrganizationCrmSdkTypes.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/MyOrganizationCrmSdkTypes.cs new file mode 100644 index 00000000..abcd214f --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2015/MyOrganizationCrmSdkTypes.cs @@ -0,0 +1,213367 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34209 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: Microsoft.Xrm.Sdk.Client.ProxyTypesAssemblyAttribute()] + + + +[System.Runtime.Serialization.DataContractAttribute()] +[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "7.0.0000.3048")] +public enum AccountState +{ + + [System.Runtime.Serialization.EnumMemberAttribute()] + Active = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Inactive = 1, +} + +///

+/// Business that represents a customer or potential customer. The company that is billed in business transactions. +/// +[System.Runtime.Serialization.DataContractAttribute()] +[Microsoft.Xrm.Sdk.Client.EntityLogicalNameAttribute("account")] +[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "7.0.0000.3048")] +public partial class Account : Microsoft.Xrm.Sdk.Entity, System.ComponentModel.INotifyPropertyChanging, System.ComponentModel.INotifyPropertyChanged +{ + + /// + /// Default Constructor. + /// + public Account() : + base(EntityLogicalName) + { + } + + public const string EntityLogicalName = "account"; + + public const int EntityTypeCode = 1; + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; + + private void OnPropertyChanged(string propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + + private void OnPropertyChanging(string propertyName) + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, new System.ComponentModel.PropertyChangingEventArgs(propertyName)); + } + } + + /// + /// Select a category to indicate whether the customer account is standard or preferred. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountcategorycode")] + public Microsoft.Xrm.Sdk.OptionSetValue AccountCategoryCode + { + get + { + return this.GetAttributeValue("accountcategorycode"); + } + set + { + this.OnPropertyChanging("AccountCategoryCode"); + this.SetAttributeValue("accountcategorycode", value); + this.OnPropertyChanged("AccountCategoryCode"); + } + } + + /// + /// Select a classification code to indicate the potential value of the customer account based on the projected return on investment, cooperation level, sales cycle length or other criteria. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountclassificationcode")] + public Microsoft.Xrm.Sdk.OptionSetValue AccountClassificationCode + { + get + { + return this.GetAttributeValue("accountclassificationcode"); + } + set + { + this.OnPropertyChanging("AccountClassificationCode"); + this.SetAttributeValue("accountclassificationcode", value); + this.OnPropertyChanged("AccountClassificationCode"); + } + } + + /// + /// Unique identifier of the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountid")] + public System.Nullable AccountId + { + get + { + return this.GetAttributeValue>("accountid"); + } + set + { + this.OnPropertyChanging("AccountId"); + this.SetAttributeValue("accountid", value); + if (value.HasValue) + { + base.Id = value.Value; + } + else + { + base.Id = System.Guid.Empty; + } + this.OnPropertyChanged("AccountId"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountid")] + public override System.Guid Id + { + get + { + return base.Id; + } + set + { + this.AccountId = value; + } + } + + /// + /// Type an ID number or code for the account to quickly search and identify the account in system views. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountnumber")] + public string AccountNumber + { + get + { + return this.GetAttributeValue("accountnumber"); + } + set + { + this.OnPropertyChanging("AccountNumber"); + this.SetAttributeValue("accountnumber", value); + this.OnPropertyChanged("AccountNumber"); + } + } + + /// + /// Select a rating to indicate the value of the customer account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountratingcode")] + public Microsoft.Xrm.Sdk.OptionSetValue AccountRatingCode + { + get + { + return this.GetAttributeValue("accountratingcode"); + } + set + { + this.OnPropertyChanging("AccountRatingCode"); + this.SetAttributeValue("accountratingcode", value); + this.OnPropertyChanged("AccountRatingCode"); + } + } + + /// + /// Unique identifier for address 1. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_addressid")] + public System.Nullable Address1_AddressId + { + get + { + return this.GetAttributeValue>("address1_addressid"); + } + set + { + this.OnPropertyChanging("Address1_AddressId"); + this.SetAttributeValue("address1_addressid", value); + this.OnPropertyChanged("Address1_AddressId"); + } + } + + /// + /// Select the primary address type. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_addresstypecode")] + public Microsoft.Xrm.Sdk.OptionSetValue Address1_AddressTypeCode + { + get + { + return this.GetAttributeValue("address1_addresstypecode"); + } + set + { + this.OnPropertyChanging("Address1_AddressTypeCode"); + this.SetAttributeValue("address1_addresstypecode", value); + this.OnPropertyChanged("Address1_AddressTypeCode"); + } + } + + /// + /// Type the city for the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_city")] + public string Address1_City + { + get + { + return this.GetAttributeValue("address1_city"); + } + set + { + this.OnPropertyChanging("Address1_City"); + this.SetAttributeValue("address1_city", value); + this.OnPropertyChanged("Address1_City"); + } + } + + /// + /// Shows the complete primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_composite")] + public string Address1_Composite + { + get + { + return this.GetAttributeValue("address1_composite"); + } + } + + /// + /// Type the country or region for the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_country")] + public string Address1_Country + { + get + { + return this.GetAttributeValue("address1_country"); + } + set + { + this.OnPropertyChanging("Address1_Country"); + this.SetAttributeValue("address1_country", value); + this.OnPropertyChanged("Address1_Country"); + } + } + + /// + /// Type the county for the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_county")] + public string Address1_County + { + get + { + return this.GetAttributeValue("address1_county"); + } + set + { + this.OnPropertyChanging("Address1_County"); + this.SetAttributeValue("address1_county", value); + this.OnPropertyChanged("Address1_County"); + } + } + + /// + /// Type the fax number associated with the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_fax")] + public string Address1_Fax + { + get + { + return this.GetAttributeValue("address1_fax"); + } + set + { + this.OnPropertyChanging("Address1_Fax"); + this.SetAttributeValue("address1_fax", value); + this.OnPropertyChanged("Address1_Fax"); + } + } + + /// + /// Select the freight terms for the primary address to make sure shipping orders are processed correctly. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_freighttermscode")] + public Microsoft.Xrm.Sdk.OptionSetValue Address1_FreightTermsCode + { + get + { + return this.GetAttributeValue("address1_freighttermscode"); + } + set + { + this.OnPropertyChanging("Address1_FreightTermsCode"); + this.SetAttributeValue("address1_freighttermscode", value); + this.OnPropertyChanged("Address1_FreightTermsCode"); + } + } + + /// + /// Type the latitude value for the primary address for use in mapping and other applications. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_latitude")] + public System.Nullable Address1_Latitude + { + get + { + return this.GetAttributeValue>("address1_latitude"); + } + set + { + this.OnPropertyChanging("Address1_Latitude"); + this.SetAttributeValue("address1_latitude", value); + this.OnPropertyChanged("Address1_Latitude"); + } + } + + /// + /// Type the first line of the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_line1")] + public string Address1_Line1 + { + get + { + return this.GetAttributeValue("address1_line1"); + } + set + { + this.OnPropertyChanging("Address1_Line1"); + this.SetAttributeValue("address1_line1", value); + this.OnPropertyChanged("Address1_Line1"); + } + } + + /// + /// Type the second line of the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_line2")] + public string Address1_Line2 + { + get + { + return this.GetAttributeValue("address1_line2"); + } + set + { + this.OnPropertyChanging("Address1_Line2"); + this.SetAttributeValue("address1_line2", value); + this.OnPropertyChanged("Address1_Line2"); + } + } + + /// + /// Type the third line of the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_line3")] + public string Address1_Line3 + { + get + { + return this.GetAttributeValue("address1_line3"); + } + set + { + this.OnPropertyChanging("Address1_Line3"); + this.SetAttributeValue("address1_line3", value); + this.OnPropertyChanged("Address1_Line3"); + } + } + + /// + /// Type the longitude value for the primary address for use in mapping and other applications. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_longitude")] + public System.Nullable Address1_Longitude + { + get + { + return this.GetAttributeValue>("address1_longitude"); + } + set + { + this.OnPropertyChanging("Address1_Longitude"); + this.SetAttributeValue("address1_longitude", value); + this.OnPropertyChanged("Address1_Longitude"); + } + } + + /// + /// Type a descriptive name for the primary address, such as Corporate Headquarters. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_name")] + public string Address1_Name + { + get + { + return this.GetAttributeValue("address1_name"); + } + set + { + this.OnPropertyChanging("Address1_Name"); + this.SetAttributeValue("address1_name", value); + this.OnPropertyChanged("Address1_Name"); + } + } + + /// + /// Type the ZIP Code or postal code for the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_postalcode")] + public string Address1_PostalCode + { + get + { + return this.GetAttributeValue("address1_postalcode"); + } + set + { + this.OnPropertyChanging("Address1_PostalCode"); + this.SetAttributeValue("address1_postalcode", value); + this.OnPropertyChanged("Address1_PostalCode"); + } + } + + /// + /// Type the post office box number of the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_postofficebox")] + public string Address1_PostOfficeBox + { + get + { + return this.GetAttributeValue("address1_postofficebox"); + } + set + { + this.OnPropertyChanging("Address1_PostOfficeBox"); + this.SetAttributeValue("address1_postofficebox", value); + this.OnPropertyChanged("Address1_PostOfficeBox"); + } + } + + /// + /// Type the name of the main contact at the account's primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_primarycontactname")] + public string Address1_PrimaryContactName + { + get + { + return this.GetAttributeValue("address1_primarycontactname"); + } + set + { + this.OnPropertyChanging("Address1_PrimaryContactName"); + this.SetAttributeValue("address1_primarycontactname", value); + this.OnPropertyChanged("Address1_PrimaryContactName"); + } + } + + /// + /// Select a shipping method for deliveries sent to this address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_shippingmethodcode")] + public Microsoft.Xrm.Sdk.OptionSetValue Address1_ShippingMethodCode + { + get + { + return this.GetAttributeValue("address1_shippingmethodcode"); + } + set + { + this.OnPropertyChanging("Address1_ShippingMethodCode"); + this.SetAttributeValue("address1_shippingmethodcode", value); + this.OnPropertyChanged("Address1_ShippingMethodCode"); + } + } + + /// + /// Type the state or province of the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_stateorprovince")] + public string Address1_StateOrProvince + { + get + { + return this.GetAttributeValue("address1_stateorprovince"); + } + set + { + this.OnPropertyChanging("Address1_StateOrProvince"); + this.SetAttributeValue("address1_stateorprovince", value); + this.OnPropertyChanged("Address1_StateOrProvince"); + } + } + + /// + /// Type the main phone number associated with the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_telephone1")] + public string Address1_Telephone1 + { + get + { + return this.GetAttributeValue("address1_telephone1"); + } + set + { + this.OnPropertyChanging("Address1_Telephone1"); + this.SetAttributeValue("address1_telephone1", value); + this.OnPropertyChanged("Address1_Telephone1"); + } + } + + /// + /// Type a second phone number associated with the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_telephone2")] + public string Address1_Telephone2 + { + get + { + return this.GetAttributeValue("address1_telephone2"); + } + set + { + this.OnPropertyChanging("Address1_Telephone2"); + this.SetAttributeValue("address1_telephone2", value); + this.OnPropertyChanged("Address1_Telephone2"); + } + } + + /// + /// Type a third phone number associated with the primary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_telephone3")] + public string Address1_Telephone3 + { + get + { + return this.GetAttributeValue("address1_telephone3"); + } + set + { + this.OnPropertyChanging("Address1_Telephone3"); + this.SetAttributeValue("address1_telephone3", value); + this.OnPropertyChanged("Address1_Telephone3"); + } + } + + /// + /// Type the UPS zone of the primary address to make sure shipping charges are calculated correctly and deliveries are made promptly, if shipped by UPS. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_upszone")] + public string Address1_UPSZone + { + get + { + return this.GetAttributeValue("address1_upszone"); + } + set + { + this.OnPropertyChanging("Address1_UPSZone"); + this.SetAttributeValue("address1_upszone", value); + this.OnPropertyChanged("Address1_UPSZone"); + } + } + + /// + /// Select the time zone, or UTC offset, for this address so that other people can reference it when they contact someone at this address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address1_utcoffset")] + public System.Nullable Address1_UTCOffset + { + get + { + return this.GetAttributeValue>("address1_utcoffset"); + } + set + { + this.OnPropertyChanging("Address1_UTCOffset"); + this.SetAttributeValue("address1_utcoffset", value); + this.OnPropertyChanged("Address1_UTCOffset"); + } + } + + /// + /// Unique identifier for address 2. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_addressid")] + public System.Nullable Address2_AddressId + { + get + { + return this.GetAttributeValue>("address2_addressid"); + } + set + { + this.OnPropertyChanging("Address2_AddressId"); + this.SetAttributeValue("address2_addressid", value); + this.OnPropertyChanged("Address2_AddressId"); + } + } + + /// + /// Select the secondary address type. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_addresstypecode")] + public Microsoft.Xrm.Sdk.OptionSetValue Address2_AddressTypeCode + { + get + { + return this.GetAttributeValue("address2_addresstypecode"); + } + set + { + this.OnPropertyChanging("Address2_AddressTypeCode"); + this.SetAttributeValue("address2_addresstypecode", value); + this.OnPropertyChanged("Address2_AddressTypeCode"); + } + } + + /// + /// Type the city for the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_city")] + public string Address2_City + { + get + { + return this.GetAttributeValue("address2_city"); + } + set + { + this.OnPropertyChanging("Address2_City"); + this.SetAttributeValue("address2_city", value); + this.OnPropertyChanged("Address2_City"); + } + } + + /// + /// Shows the complete secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_composite")] + public string Address2_Composite + { + get + { + return this.GetAttributeValue("address2_composite"); + } + } + + /// + /// Type the country or region for the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_country")] + public string Address2_Country + { + get + { + return this.GetAttributeValue("address2_country"); + } + set + { + this.OnPropertyChanging("Address2_Country"); + this.SetAttributeValue("address2_country", value); + this.OnPropertyChanged("Address2_Country"); + } + } + + /// + /// Type the county for the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_county")] + public string Address2_County + { + get + { + return this.GetAttributeValue("address2_county"); + } + set + { + this.OnPropertyChanging("Address2_County"); + this.SetAttributeValue("address2_county", value); + this.OnPropertyChanged("Address2_County"); + } + } + + /// + /// Type the fax number associated with the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_fax")] + public string Address2_Fax + { + get + { + return this.GetAttributeValue("address2_fax"); + } + set + { + this.OnPropertyChanging("Address2_Fax"); + this.SetAttributeValue("address2_fax", value); + this.OnPropertyChanged("Address2_Fax"); + } + } + + /// + /// Select the freight terms for the secondary address to make sure shipping orders are processed correctly. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_freighttermscode")] + public Microsoft.Xrm.Sdk.OptionSetValue Address2_FreightTermsCode + { + get + { + return this.GetAttributeValue("address2_freighttermscode"); + } + set + { + this.OnPropertyChanging("Address2_FreightTermsCode"); + this.SetAttributeValue("address2_freighttermscode", value); + this.OnPropertyChanged("Address2_FreightTermsCode"); + } + } + + /// + /// Type the latitude value for the secondary address for use in mapping and other applications. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_latitude")] + public System.Nullable Address2_Latitude + { + get + { + return this.GetAttributeValue>("address2_latitude"); + } + set + { + this.OnPropertyChanging("Address2_Latitude"); + this.SetAttributeValue("address2_latitude", value); + this.OnPropertyChanged("Address2_Latitude"); + } + } + + /// + /// Type the first line of the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_line1")] + public string Address2_Line1 + { + get + { + return this.GetAttributeValue("address2_line1"); + } + set + { + this.OnPropertyChanging("Address2_Line1"); + this.SetAttributeValue("address2_line1", value); + this.OnPropertyChanged("Address2_Line1"); + } + } + + /// + /// Type the second line of the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_line2")] + public string Address2_Line2 + { + get + { + return this.GetAttributeValue("address2_line2"); + } + set + { + this.OnPropertyChanging("Address2_Line2"); + this.SetAttributeValue("address2_line2", value); + this.OnPropertyChanged("Address2_Line2"); + } + } + + /// + /// Type the third line of the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_line3")] + public string Address2_Line3 + { + get + { + return this.GetAttributeValue("address2_line3"); + } + set + { + this.OnPropertyChanging("Address2_Line3"); + this.SetAttributeValue("address2_line3", value); + this.OnPropertyChanged("Address2_Line3"); + } + } + + /// + /// Type the longitude value for the secondary address for use in mapping and other applications. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_longitude")] + public System.Nullable Address2_Longitude + { + get + { + return this.GetAttributeValue>("address2_longitude"); + } + set + { + this.OnPropertyChanging("Address2_Longitude"); + this.SetAttributeValue("address2_longitude", value); + this.OnPropertyChanged("Address2_Longitude"); + } + } + + /// + /// Type a descriptive name for the secondary address, such as Corporate Headquarters. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_name")] + public string Address2_Name + { + get + { + return this.GetAttributeValue("address2_name"); + } + set + { + this.OnPropertyChanging("Address2_Name"); + this.SetAttributeValue("address2_name", value); + this.OnPropertyChanged("Address2_Name"); + } + } + + /// + /// Type the ZIP Code or postal code for the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_postalcode")] + public string Address2_PostalCode + { + get + { + return this.GetAttributeValue("address2_postalcode"); + } + set + { + this.OnPropertyChanging("Address2_PostalCode"); + this.SetAttributeValue("address2_postalcode", value); + this.OnPropertyChanged("Address2_PostalCode"); + } + } + + /// + /// Type the post office box number of the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_postofficebox")] + public string Address2_PostOfficeBox + { + get + { + return this.GetAttributeValue("address2_postofficebox"); + } + set + { + this.OnPropertyChanging("Address2_PostOfficeBox"); + this.SetAttributeValue("address2_postofficebox", value); + this.OnPropertyChanged("Address2_PostOfficeBox"); + } + } + + /// + /// Type the name of the main contact at the account's secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_primarycontactname")] + public string Address2_PrimaryContactName + { + get + { + return this.GetAttributeValue("address2_primarycontactname"); + } + set + { + this.OnPropertyChanging("Address2_PrimaryContactName"); + this.SetAttributeValue("address2_primarycontactname", value); + this.OnPropertyChanged("Address2_PrimaryContactName"); + } + } + + /// + /// Select a shipping method for deliveries sent to this address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_shippingmethodcode")] + public Microsoft.Xrm.Sdk.OptionSetValue Address2_ShippingMethodCode + { + get + { + return this.GetAttributeValue("address2_shippingmethodcode"); + } + set + { + this.OnPropertyChanging("Address2_ShippingMethodCode"); + this.SetAttributeValue("address2_shippingmethodcode", value); + this.OnPropertyChanged("Address2_ShippingMethodCode"); + } + } + + /// + /// Type the state or province of the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_stateorprovince")] + public string Address2_StateOrProvince + { + get + { + return this.GetAttributeValue("address2_stateorprovince"); + } + set + { + this.OnPropertyChanging("Address2_StateOrProvince"); + this.SetAttributeValue("address2_stateorprovince", value); + this.OnPropertyChanged("Address2_StateOrProvince"); + } + } + + /// + /// Type the main phone number associated with the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_telephone1")] + public string Address2_Telephone1 + { + get + { + return this.GetAttributeValue("address2_telephone1"); + } + set + { + this.OnPropertyChanging("Address2_Telephone1"); + this.SetAttributeValue("address2_telephone1", value); + this.OnPropertyChanged("Address2_Telephone1"); + } + } + + /// + /// Type a second phone number associated with the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_telephone2")] + public string Address2_Telephone2 + { + get + { + return this.GetAttributeValue("address2_telephone2"); + } + set + { + this.OnPropertyChanging("Address2_Telephone2"); + this.SetAttributeValue("address2_telephone2", value); + this.OnPropertyChanged("Address2_Telephone2"); + } + } + + /// + /// Type a third phone number associated with the secondary address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_telephone3")] + public string Address2_Telephone3 + { + get + { + return this.GetAttributeValue("address2_telephone3"); + } + set + { + this.OnPropertyChanging("Address2_Telephone3"); + this.SetAttributeValue("address2_telephone3", value); + this.OnPropertyChanged("Address2_Telephone3"); + } + } + + /// + /// Type the UPS zone of the secondary address to make sure shipping charges are calculated correctly and deliveries are made promptly, if shipped by UPS. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_upszone")] + public string Address2_UPSZone + { + get + { + return this.GetAttributeValue("address2_upszone"); + } + set + { + this.OnPropertyChanging("Address2_UPSZone"); + this.SetAttributeValue("address2_upszone", value); + this.OnPropertyChanged("Address2_UPSZone"); + } + } + + /// + /// Select the time zone, or UTC offset, for this address so that other people can reference it when they contact someone at this address. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("address2_utcoffset")] + public System.Nullable Address2_UTCOffset + { + get + { + return this.GetAttributeValue>("address2_utcoffset"); + } + set + { + this.OnPropertyChanging("Address2_UTCOffset"); + this.SetAttributeValue("address2_utcoffset", value); + this.OnPropertyChanged("Address2_UTCOffset"); + } + } + + /// + /// For system use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aging30")] + public Microsoft.Xrm.Sdk.Money Aging30 + { + get + { + return this.GetAttributeValue("aging30"); + } + } + + /// + /// The base currency equivalent of the aging 30 field. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aging30_base")] + public Microsoft.Xrm.Sdk.Money Aging30_Base + { + get + { + return this.GetAttributeValue("aging30_base"); + } + } + + /// + /// For system use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aging60")] + public Microsoft.Xrm.Sdk.Money Aging60 + { + get + { + return this.GetAttributeValue("aging60"); + } + } + + /// + /// The base currency equivalent of the aging 60 field. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aging60_base")] + public Microsoft.Xrm.Sdk.Money Aging60_Base + { + get + { + return this.GetAttributeValue("aging60_base"); + } + } + + /// + /// For system use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aging90")] + public Microsoft.Xrm.Sdk.Money Aging90 + { + get + { + return this.GetAttributeValue("aging90"); + } + } + + /// + /// The base currency equivalent of the aging 90 field. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aging90_base")] + public Microsoft.Xrm.Sdk.Money Aging90_Base + { + get + { + return this.GetAttributeValue("aging90_base"); + } + } + + /// + /// Select the legal designation or other business type of the account for contracts or reporting purposes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("businesstypecode")] + public Microsoft.Xrm.Sdk.OptionSetValue BusinessTypeCode + { + get + { + return this.GetAttributeValue("businesstypecode"); + } + set + { + this.OnPropertyChanging("BusinessTypeCode"); + this.SetAttributeValue("businesstypecode", value); + this.OnPropertyChanged("BusinessTypeCode"); + } + } + + /// + /// Shows who created the record. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdby")] + public Microsoft.Xrm.Sdk.EntityReference CreatedBy + { + get + { + return this.GetAttributeValue("createdby"); + } + } + + /// + /// Shows the date and time when the record was created. The date and time are displayed in the time zone selected in Microsoft Dynamics CRM options. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdon")] + public System.Nullable CreatedOn + { + get + { + return this.GetAttributeValue>("createdon"); + } + } + + /// + /// Shows who created the record on behalf of another user. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdonbehalfby")] + public Microsoft.Xrm.Sdk.EntityReference CreatedOnBehalfBy + { + get + { + return this.GetAttributeValue("createdonbehalfby"); + } + } + + /// + /// Type the credit limit of the account. This is a useful reference when you address invoice and accounting issues with the customer. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("creditlimit")] + public Microsoft.Xrm.Sdk.Money CreditLimit + { + get + { + return this.GetAttributeValue("creditlimit"); + } + set + { + this.OnPropertyChanging("CreditLimit"); + this.SetAttributeValue("creditlimit", value); + this.OnPropertyChanged("CreditLimit"); + } + } + + /// + /// Shows the credit limit converted to the system's default base currency for reporting purposes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("creditlimit_base")] + public Microsoft.Xrm.Sdk.Money CreditLimit_Base + { + get + { + return this.GetAttributeValue("creditlimit_base"); + } + } + + /// + /// Select whether the credit for the account is on hold. This is a useful reference while addressing the invoice and accounting issues with the customer. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("creditonhold")] + public System.Nullable CreditOnHold + { + get + { + return this.GetAttributeValue>("creditonhold"); + } + set + { + this.OnPropertyChanging("CreditOnHold"); + this.SetAttributeValue("creditonhold", value); + this.OnPropertyChanged("CreditOnHold"); + } + } + + /// + /// Select the size category or range of the account for segmentation and reporting purposes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("customersizecode")] + public Microsoft.Xrm.Sdk.OptionSetValue CustomerSizeCode + { + get + { + return this.GetAttributeValue("customersizecode"); + } + set + { + this.OnPropertyChanging("CustomerSizeCode"); + this.SetAttributeValue("customersizecode", value); + this.OnPropertyChanged("CustomerSizeCode"); + } + } + + /// + /// Select the category that best describes the relationship between the account and your organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("customertypecode")] + public Microsoft.Xrm.Sdk.OptionSetValue CustomerTypeCode + { + get + { + return this.GetAttributeValue("customertypecode"); + } + set + { + this.OnPropertyChanging("CustomerTypeCode"); + this.SetAttributeValue("customertypecode", value); + this.OnPropertyChanged("CustomerTypeCode"); + } + } + + /// + /// Choose the default price list associated with the account to make sure the correct product prices for this customer are applied in sales opportunities, quotes, and orders. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultpricelevelid")] + public Microsoft.Xrm.Sdk.EntityReference DefaultPriceLevelId + { + get + { + return this.GetAttributeValue("defaultpricelevelid"); + } + set + { + this.OnPropertyChanging("DefaultPriceLevelId"); + this.SetAttributeValue("defaultpricelevelid", value); + this.OnPropertyChanged("DefaultPriceLevelId"); + } + } + + /// + /// Type additional information to describe the account, such as an excerpt from the company's website. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("description")] + public string Description + { + get + { + return this.GetAttributeValue("description"); + } + set + { + this.OnPropertyChanging("Description"); + this.SetAttributeValue("description", value); + this.OnPropertyChanged("Description"); + } + } + + /// + /// Select whether the account allows bulk email sent through campaigns. If Do Not Allow is selected, the account can be added to marketing lists, but is excluded from email. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotbulkemail")] + public System.Nullable DoNotBulkEMail + { + get + { + return this.GetAttributeValue>("donotbulkemail"); + } + set + { + this.OnPropertyChanging("DoNotBulkEMail"); + this.SetAttributeValue("donotbulkemail", value); + this.OnPropertyChanged("DoNotBulkEMail"); + } + } + + /// + /// Select whether the account allows bulk postal mail sent through marketing campaigns or quick campaigns. If Do Not Allow is selected, the account can be added to marketing lists, but will be excluded from the postal mail. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotbulkpostalmail")] + public System.Nullable DoNotBulkPostalMail + { + get + { + return this.GetAttributeValue>("donotbulkpostalmail"); + } + set + { + this.OnPropertyChanging("DoNotBulkPostalMail"); + this.SetAttributeValue("donotbulkpostalmail", value); + this.OnPropertyChanged("DoNotBulkPostalMail"); + } + } + + /// + /// Select whether the account allows direct email sent from Microsoft Dynamics CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotemail")] + public System.Nullable DoNotEMail + { + get + { + return this.GetAttributeValue>("donotemail"); + } + set + { + this.OnPropertyChanging("DoNotEMail"); + this.SetAttributeValue("donotemail", value); + this.OnPropertyChanged("DoNotEMail"); + } + } + + /// + /// Select whether the account allows faxes. If Do Not Allow is selected, the account will be excluded from fax activities distributed in marketing campaigns. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotfax")] + public System.Nullable DoNotFax + { + get + { + return this.GetAttributeValue>("donotfax"); + } + set + { + this.OnPropertyChanging("DoNotFax"); + this.SetAttributeValue("donotfax", value); + this.OnPropertyChanged("DoNotFax"); + } + } + + /// + /// Select whether the account allows phone calls. If Do Not Allow is selected, the account will be excluded from phone call activities distributed in marketing campaigns. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotphone")] + public System.Nullable DoNotPhone + { + get + { + return this.GetAttributeValue>("donotphone"); + } + set + { + this.OnPropertyChanging("DoNotPhone"); + this.SetAttributeValue("donotphone", value); + this.OnPropertyChanged("DoNotPhone"); + } + } + + /// + /// Select whether the account allows direct mail. If Do Not Allow is selected, the account will be excluded from letter activities distributed in marketing campaigns. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotpostalmail")] + public System.Nullable DoNotPostalMail + { + get + { + return this.GetAttributeValue>("donotpostalmail"); + } + set + { + this.OnPropertyChanging("DoNotPostalMail"); + this.SetAttributeValue("donotpostalmail", value); + this.OnPropertyChanged("DoNotPostalMail"); + } + } + + /// + /// Select whether the account accepts marketing materials, such as brochures or catalogs. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("donotsendmm")] + public System.Nullable DoNotSendMM + { + get + { + return this.GetAttributeValue>("donotsendmm"); + } + set + { + this.OnPropertyChanging("DoNotSendMM"); + this.SetAttributeValue("donotsendmm", value); + this.OnPropertyChanged("DoNotSendMM"); + } + } + + /// + /// Type the primary email address for the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("emailaddress1")] + public string EMailAddress1 + { + get + { + return this.GetAttributeValue("emailaddress1"); + } + set + { + this.OnPropertyChanging("EMailAddress1"); + this.SetAttributeValue("emailaddress1", value); + this.OnPropertyChanged("EMailAddress1"); + } + } + + /// + /// Type the secondary email address for the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("emailaddress2")] + public string EMailAddress2 + { + get + { + return this.GetAttributeValue("emailaddress2"); + } + set + { + this.OnPropertyChanging("EMailAddress2"); + this.SetAttributeValue("emailaddress2", value); + this.OnPropertyChanged("EMailAddress2"); + } + } + + /// + /// Type an alternate email address for the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("emailaddress3")] + public string EMailAddress3 + { + get + { + return this.GetAttributeValue("emailaddress3"); + } + set + { + this.OnPropertyChanging("EMailAddress3"); + this.SetAttributeValue("emailaddress3", value); + this.OnPropertyChanged("EMailAddress3"); + } + } + + /// + /// Shows the default image for the record. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage")] + public byte[] EntityImage + { + get + { + return this.GetAttributeValue("entityimage"); + } + set + { + this.OnPropertyChanging("EntityImage"); + this.SetAttributeValue("entityimage", value); + this.OnPropertyChanged("EntityImage"); + } + } + + /// + /// + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage_timestamp")] + public System.Nullable EntityImage_Timestamp + { + get + { + return this.GetAttributeValue>("entityimage_timestamp"); + } + } + + /// + /// + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage_url")] + public string EntityImage_URL + { + get + { + return this.GetAttributeValue("entityimage_url"); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimageid")] + public System.Nullable EntityImageId + { + get + { + return this.GetAttributeValue>("entityimageid"); + } + } + + /// + /// Shows the conversion rate of the record's currency. The exchange rate is used to convert all money fields in the record from the local currency to the system's default currency. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("exchangerate")] + public System.Nullable ExchangeRate + { + get + { + return this.GetAttributeValue>("exchangerate"); + } + } + + /// + /// Type the fax number for the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fax")] + public string Fax + { + get + { + return this.GetAttributeValue("fax"); + } + set + { + this.OnPropertyChanging("Fax"); + this.SetAttributeValue("fax", value); + this.OnPropertyChanged("Fax"); + } + } + + /// + /// Type the URL for the account's FTP site to enable users to access data and share documents. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ftpsiteurl")] + public string FtpSiteURL + { + get + { + return this.GetAttributeValue("ftpsiteurl"); + } + set + { + this.OnPropertyChanging("FtpSiteURL"); + this.SetAttributeValue("ftpsiteurl", value); + this.OnPropertyChanged("FtpSiteURL"); + } + } + + /// + /// Unique identifier of the data import or data migration that created this record. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("importsequencenumber")] + public System.Nullable ImportSequenceNumber + { + get + { + return this.GetAttributeValue>("importsequencenumber"); + } + set + { + this.OnPropertyChanging("ImportSequenceNumber"); + this.SetAttributeValue("importsequencenumber", value); + this.OnPropertyChanged("ImportSequenceNumber"); + } + } + + /// + /// Select the account's primary industry for use in marketing segmentation and demographic analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("industrycode")] + public Microsoft.Xrm.Sdk.OptionSetValue IndustryCode + { + get + { + return this.GetAttributeValue("industrycode"); + } + set + { + this.OnPropertyChanging("IndustryCode"); + this.SetAttributeValue("industrycode", value); + this.OnPropertyChanged("IndustryCode"); + } + } + + /// + /// Shows the date when the account was last included in a marketing campaign or quick campaign. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("lastusedincampaign")] + public System.Nullable LastUsedInCampaign + { + get + { + return this.GetAttributeValue>("lastusedincampaign"); + } + set + { + this.OnPropertyChanging("LastUsedInCampaign"); + this.SetAttributeValue("lastusedincampaign", value); + this.OnPropertyChanged("LastUsedInCampaign"); + } + } + + /// + /// Type the market capitalization of the account to identify the company's equity, used as an indicator in financial performance analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("marketcap")] + public Microsoft.Xrm.Sdk.Money MarketCap + { + get + { + return this.GetAttributeValue("marketcap"); + } + set + { + this.OnPropertyChanging("MarketCap"); + this.SetAttributeValue("marketcap", value); + this.OnPropertyChanged("MarketCap"); + } + } + + /// + /// Shows the market capitalization converted to the system's default base currency. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("marketcap_base")] + public Microsoft.Xrm.Sdk.Money MarketCap_Base + { + get + { + return this.GetAttributeValue("marketcap_base"); + } + } + + /// + /// Shows the master account that the account was merged with. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("masterid")] + public Microsoft.Xrm.Sdk.EntityReference MasterId + { + get + { + return this.GetAttributeValue("masterid"); + } + } + + /// + /// Shows whether the account has been merged with another account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("merged")] + public System.Nullable Merged + { + get + { + return this.GetAttributeValue>("merged"); + } + } + + /// + /// Shows who last updated the record. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedby")] + public Microsoft.Xrm.Sdk.EntityReference ModifiedBy + { + get + { + return this.GetAttributeValue("modifiedby"); + } + } + + /// + /// Shows the date and time when the record was last updated. The date and time are displayed in the time zone selected in Microsoft Dynamics CRM options. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedon")] + public System.Nullable ModifiedOn + { + get + { + return this.GetAttributeValue>("modifiedon"); + } + } + + /// + /// Shows who created the record on behalf of another user. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedonbehalfby")] + public Microsoft.Xrm.Sdk.EntityReference ModifiedOnBehalfBy + { + get + { + return this.GetAttributeValue("modifiedonbehalfby"); + } + } + + /// + /// Type the company or business name. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("name")] + public string Name + { + get + { + return this.GetAttributeValue("name"); + } + set + { + this.OnPropertyChanging("Name"); + this.SetAttributeValue("name", value); + this.OnPropertyChanged("Name"); + } + } + + /// + /// Type the number of employees that work at the account for use in marketing segmentation and demographic analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("numberofemployees")] + public System.Nullable NumberOfEmployees + { + get + { + return this.GetAttributeValue>("numberofemployees"); + } + set + { + this.OnPropertyChanging("NumberOfEmployees"); + this.SetAttributeValue("numberofemployees", value); + this.OnPropertyChanged("NumberOfEmployees"); + } + } + + /// + /// Number of open opportunities against an account and its child accounts. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("opendeals")] + public System.Nullable OpenDeals + { + get + { + return this.GetAttributeValue>("opendeals"); + } + } + + /// + /// The date time for Open Deals. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("opendeals_date")] + public System.Nullable OpenDeals_Date + { + get + { + return this.GetAttributeValue>("opendeals_date"); + } + } + + /// + /// State of Open Deals. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("opendeals_state")] + public System.Nullable OpenDeals_State + { + get + { + return this.GetAttributeValue>("opendeals_state"); + } + } + + /// + /// Sum of open revenue against an account and its child accounts. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("openrevenue")] + public Microsoft.Xrm.Sdk.Money OpenRevenue + { + get + { + return this.GetAttributeValue("openrevenue"); + } + } + + /// + /// Sum of open revenue against an account and its child accounts. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("openrevenue_base")] + public Microsoft.Xrm.Sdk.Money OpenRevenue_Base + { + get + { + return this.GetAttributeValue("openrevenue_base"); + } + } + + /// + /// The date time for Open Revenue. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("openrevenue_date")] + public System.Nullable OpenRevenue_Date + { + get + { + return this.GetAttributeValue>("openrevenue_date"); + } + } + + /// + /// State of Open Revenue. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("openrevenue_state")] + public System.Nullable OpenRevenue_State + { + get + { + return this.GetAttributeValue>("openrevenue_state"); + } + } + + /// + /// Shows the lead that the account was created from if the account was created by converting a lead in Microsoft Dynamics CRM. This is used to relate the account to data on the originating lead for use in reporting and analytics. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("originatingleadid")] + public Microsoft.Xrm.Sdk.EntityReference OriginatingLeadId + { + get + { + return this.GetAttributeValue("originatingleadid"); + } + set + { + this.OnPropertyChanging("OriginatingLeadId"); + this.SetAttributeValue("originatingleadid", value); + this.OnPropertyChanged("OriginatingLeadId"); + } + } + + /// + /// Date and time that the record was migrated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("overriddencreatedon")] + public System.Nullable OverriddenCreatedOn + { + get + { + return this.GetAttributeValue>("overriddencreatedon"); + } + set + { + this.OnPropertyChanging("OverriddenCreatedOn"); + this.SetAttributeValue("overriddencreatedon", value); + this.OnPropertyChanged("OverriddenCreatedOn"); + } + } + + /// + /// Enter the user or team who is assigned to manage the record. This field is updated every time the record is assigned to a different user. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ownerid")] + public Microsoft.Xrm.Sdk.EntityReference OwnerId + { + get + { + return this.GetAttributeValue("ownerid"); + } + set + { + this.OnPropertyChanging("OwnerId"); + this.SetAttributeValue("ownerid", value); + this.OnPropertyChanged("OwnerId"); + } + } + + /// + /// Select the account's ownership structure, such as public or private. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ownershipcode")] + public Microsoft.Xrm.Sdk.OptionSetValue OwnershipCode + { + get + { + return this.GetAttributeValue("ownershipcode"); + } + set + { + this.OnPropertyChanging("OwnershipCode"); + this.SetAttributeValue("ownershipcode", value); + this.OnPropertyChanged("OwnershipCode"); + } + } + + /// + /// Shows the business unit that the record owner belongs to. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owningbusinessunit")] + public Microsoft.Xrm.Sdk.EntityReference OwningBusinessUnit + { + get + { + return this.GetAttributeValue("owningbusinessunit"); + } + } + + /// + /// Unique identifier of the team who owns the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owningteam")] + public Microsoft.Xrm.Sdk.EntityReference OwningTeam + { + get + { + return this.GetAttributeValue("owningteam"); + } + } + + /// + /// Unique identifier of the user who owns the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owninguser")] + public Microsoft.Xrm.Sdk.EntityReference OwningUser + { + get + { + return this.GetAttributeValue("owninguser"); + } + } + + /// + /// Choose the parent account associated with this account to show parent and child businesses in reporting and analytics. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("parentaccountid")] + public Microsoft.Xrm.Sdk.EntityReference ParentAccountId + { + get + { + return this.GetAttributeValue("parentaccountid"); + } + set + { + this.OnPropertyChanging("ParentAccountId"); + this.SetAttributeValue("parentaccountid", value); + this.OnPropertyChanged("ParentAccountId"); + } + } + + /// + /// For system use only. Legacy Microsoft Dynamics CRM 3.0 workflow data. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("participatesinworkflow")] + public System.Nullable ParticipatesInWorkflow + { + get + { + return this.GetAttributeValue>("participatesinworkflow"); + } + set + { + this.OnPropertyChanging("ParticipatesInWorkflow"); + this.SetAttributeValue("participatesinworkflow", value); + this.OnPropertyChanged("ParticipatesInWorkflow"); + } + } + + /// + /// Select the payment terms to indicate when the customer needs to pay the total amount. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("paymenttermscode")] + public Microsoft.Xrm.Sdk.OptionSetValue PaymentTermsCode + { + get + { + return this.GetAttributeValue("paymenttermscode"); + } + set + { + this.OnPropertyChanging("PaymentTermsCode"); + this.SetAttributeValue("paymenttermscode", value); + this.OnPropertyChanged("PaymentTermsCode"); + } + } + + /// + /// Select the preferred day of the week for service appointments. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredappointmentdaycode")] + public Microsoft.Xrm.Sdk.OptionSetValue PreferredAppointmentDayCode + { + get + { + return this.GetAttributeValue("preferredappointmentdaycode"); + } + set + { + this.OnPropertyChanging("PreferredAppointmentDayCode"); + this.SetAttributeValue("preferredappointmentdaycode", value); + this.OnPropertyChanged("PreferredAppointmentDayCode"); + } + } + + /// + /// Select the preferred time of day for service appointments. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredappointmenttimecode")] + public Microsoft.Xrm.Sdk.OptionSetValue PreferredAppointmentTimeCode + { + get + { + return this.GetAttributeValue("preferredappointmenttimecode"); + } + set + { + this.OnPropertyChanging("PreferredAppointmentTimeCode"); + this.SetAttributeValue("preferredappointmenttimecode", value); + this.OnPropertyChanged("PreferredAppointmentTimeCode"); + } + } + + /// + /// Select the preferred method of contact. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredcontactmethodcode")] + public Microsoft.Xrm.Sdk.OptionSetValue PreferredContactMethodCode + { + get + { + return this.GetAttributeValue("preferredcontactmethodcode"); + } + set + { + this.OnPropertyChanging("PreferredContactMethodCode"); + this.SetAttributeValue("preferredcontactmethodcode", value); + this.OnPropertyChanged("PreferredContactMethodCode"); + } + } + + /// + /// Choose the account's preferred service facility or equipment to make sure services are scheduled correctly for the customer. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredequipmentid")] + public Microsoft.Xrm.Sdk.EntityReference PreferredEquipmentId + { + get + { + return this.GetAttributeValue("preferredequipmentid"); + } + set + { + this.OnPropertyChanging("PreferredEquipmentId"); + this.SetAttributeValue("preferredequipmentid", value); + this.OnPropertyChanged("PreferredEquipmentId"); + } + } + + /// + /// Choose the account's preferred service for reference when you schedule service activities. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredserviceid")] + public Microsoft.Xrm.Sdk.EntityReference PreferredServiceId + { + get + { + return this.GetAttributeValue("preferredserviceid"); + } + set + { + this.OnPropertyChanging("PreferredServiceId"); + this.SetAttributeValue("preferredserviceid", value); + this.OnPropertyChanged("PreferredServiceId"); + } + } + + /// + /// Choose the preferred service representative for reference when you schedule service activities for the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredsystemuserid")] + public Microsoft.Xrm.Sdk.EntityReference PreferredSystemUserId + { + get + { + return this.GetAttributeValue("preferredsystemuserid"); + } + set + { + this.OnPropertyChanging("PreferredSystemUserId"); + this.SetAttributeValue("preferredsystemuserid", value); + this.OnPropertyChanged("PreferredSystemUserId"); + } + } + + /// + /// Choose the primary contact for the account to provide quick access to contact details. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("primarycontactid")] + public Microsoft.Xrm.Sdk.EntityReference PrimaryContactId + { + get + { + return this.GetAttributeValue("primarycontactid"); + } + set + { + this.OnPropertyChanging("PrimaryContactId"); + this.SetAttributeValue("primarycontactid", value); + this.OnPropertyChanged("PrimaryContactId"); + } + } + + /// + /// Shows the ID of the process. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("processid")] + public System.Nullable ProcessId + { + get + { + return this.GetAttributeValue>("processid"); + } + set + { + this.OnPropertyChanging("ProcessId"); + this.SetAttributeValue("processid", value); + this.OnPropertyChanged("ProcessId"); + } + } + + /// + /// Type the annual revenue for the account, used as an indicator in financial performance analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("revenue")] + public Microsoft.Xrm.Sdk.Money Revenue + { + get + { + return this.GetAttributeValue("revenue"); + } + set + { + this.OnPropertyChanging("Revenue"); + this.SetAttributeValue("revenue", value); + this.OnPropertyChanged("Revenue"); + } + } + + /// + /// Shows the annual revenue converted to the system's default base currency. The calculations use the exchange rate specified in the Currencies area. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("revenue_base")] + public Microsoft.Xrm.Sdk.Money Revenue_Base + { + get + { + return this.GetAttributeValue("revenue_base"); + } + } + + /// + /// Type the number of shares available to the public for the account. This number is used as an indicator in financial performance analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sharesoutstanding")] + public System.Nullable SharesOutstanding + { + get + { + return this.GetAttributeValue>("sharesoutstanding"); + } + set + { + this.OnPropertyChanging("SharesOutstanding"); + this.SetAttributeValue("sharesoutstanding", value); + this.OnPropertyChanged("SharesOutstanding"); + } + } + + /// + /// Select a shipping method for deliveries sent to the account's address to designate the preferred carrier or other delivery option. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("shippingmethodcode")] + public Microsoft.Xrm.Sdk.OptionSetValue ShippingMethodCode + { + get + { + return this.GetAttributeValue("shippingmethodcode"); + } + set + { + this.OnPropertyChanging("ShippingMethodCode"); + this.SetAttributeValue("shippingmethodcode", value); + this.OnPropertyChanged("ShippingMethodCode"); + } + } + + /// + /// Type the Standard Industrial Classification (SIC) code that indicates the account's primary industry of business, for use in marketing segmentation and demographic analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sic")] + public string SIC + { + get + { + return this.GetAttributeValue("sic"); + } + set + { + this.OnPropertyChanging("SIC"); + this.SetAttributeValue("sic", value); + this.OnPropertyChanged("SIC"); + } + } + + /// + /// Shows the ID of the stage. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("stageid")] + public System.Nullable StageId + { + get + { + return this.GetAttributeValue>("stageid"); + } + set + { + this.OnPropertyChanging("StageId"); + this.SetAttributeValue("stageid", value); + this.OnPropertyChanged("StageId"); + } + } + + /// + /// Shows whether the account is active or inactive. Inactive accounts are read-only and can't be edited unless they are reactivated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("statecode")] + public System.Nullable StateCode + { + get + { + Microsoft.Xrm.Sdk.OptionSetValue optionSet = this.GetAttributeValue("statecode"); + if ((optionSet != null)) + { + return ((AccountState)(System.Enum.ToObject(typeof(AccountState), optionSet.Value))); + } + else + { + return null; + } + } + } + + /// + /// Select the account's status. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("statuscode")] + public Microsoft.Xrm.Sdk.OptionSetValue StatusCode + { + get + { + return this.GetAttributeValue("statuscode"); + } + set + { + this.OnPropertyChanging("StatusCode"); + this.SetAttributeValue("statuscode", value); + this.OnPropertyChanged("StatusCode"); + } + } + + /// + /// Type the stock exchange at which the account is listed to track their stock and financial performance of the company. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("stockexchange")] + public string StockExchange + { + get + { + return this.GetAttributeValue("stockexchange"); + } + set + { + this.OnPropertyChanging("StockExchange"); + this.SetAttributeValue("stockexchange", value); + this.OnPropertyChanged("StockExchange"); + } + } + + /// + /// Type the main phone number for this account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("telephone1")] + public string Telephone1 + { + get + { + return this.GetAttributeValue("telephone1"); + } + set + { + this.OnPropertyChanging("Telephone1"); + this.SetAttributeValue("telephone1", value); + this.OnPropertyChanged("Telephone1"); + } + } + + /// + /// Type a second phone number for this account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("telephone2")] + public string Telephone2 + { + get + { + return this.GetAttributeValue("telephone2"); + } + set + { + this.OnPropertyChanging("Telephone2"); + this.SetAttributeValue("telephone2", value); + this.OnPropertyChanged("Telephone2"); + } + } + + /// + /// Type a third phone number for this account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("telephone3")] + public string Telephone3 + { + get + { + return this.GetAttributeValue("telephone3"); + } + set + { + this.OnPropertyChanging("Telephone3"); + this.SetAttributeValue("telephone3", value); + this.OnPropertyChanged("Telephone3"); + } + } + + /// + /// Select a region or territory for the account for use in segmentation and analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("territorycode")] + public Microsoft.Xrm.Sdk.OptionSetValue TerritoryCode + { + get + { + return this.GetAttributeValue("territorycode"); + } + set + { + this.OnPropertyChanging("TerritoryCode"); + this.SetAttributeValue("territorycode", value); + this.OnPropertyChanged("TerritoryCode"); + } + } + + /// + /// Choose the sales region or territory for the account to make sure the account is assigned to the correct representative and for use in segmentation and analysis. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("territoryid")] + public Microsoft.Xrm.Sdk.EntityReference TerritoryId + { + get + { + return this.GetAttributeValue("territoryid"); + } + set + { + this.OnPropertyChanging("TerritoryId"); + this.SetAttributeValue("territoryid", value); + this.OnPropertyChanged("TerritoryId"); + } + } + + /// + /// Type the stock exchange symbol for the account to track financial performance of the company. You can click the code entered in this field to access the latest trading information from MSN Money. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tickersymbol")] + public string TickerSymbol + { + get + { + return this.GetAttributeValue("tickersymbol"); + } + set + { + this.OnPropertyChanging("TickerSymbol"); + this.SetAttributeValue("tickersymbol", value); + this.OnPropertyChanged("TickerSymbol"); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("timezoneruleversionnumber")] + public System.Nullable TimeZoneRuleVersionNumber + { + get + { + return this.GetAttributeValue>("timezoneruleversionnumber"); + } + set + { + this.OnPropertyChanging("TimeZoneRuleVersionNumber"); + this.SetAttributeValue("timezoneruleversionnumber", value); + this.OnPropertyChanged("TimeZoneRuleVersionNumber"); + } + } + + /// + /// Choose the local currency for the record to make sure budgets are reported in the correct currency. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("transactioncurrencyid")] + public Microsoft.Xrm.Sdk.EntityReference TransactionCurrencyId + { + get + { + return this.GetAttributeValue("transactioncurrencyid"); + } + set + { + this.OnPropertyChanging("TransactionCurrencyId"); + this.SetAttributeValue("transactioncurrencyid", value); + this.OnPropertyChanged("TransactionCurrencyId"); + } + } + + /// + /// A comma separated list of string values representing the unique identifiers of stages in a Business Process Flow Instance in the order that they occur. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("traversedpath")] + public string TraversedPath + { + get + { + return this.GetAttributeValue("traversedpath"); + } + set + { + this.OnPropertyChanging("TraversedPath"); + this.SetAttributeValue("traversedpath", value); + this.OnPropertyChanged("TraversedPath"); + } + } + + /// + /// Time zone code that was in use when the record was created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("utcconversiontimezonecode")] + public System.Nullable UTCConversionTimeZoneCode + { + get + { + return this.GetAttributeValue>("utcconversiontimezonecode"); + } + set + { + this.OnPropertyChanging("UTCConversionTimeZoneCode"); + this.SetAttributeValue("utcconversiontimezonecode", value); + this.OnPropertyChanged("UTCConversionTimeZoneCode"); + } + } + + /// + /// Version number of the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("versionnumber")] + public System.Nullable VersionNumber + { + get + { + return this.GetAttributeValue>("versionnumber"); + } + } + + /// + /// Type the account's website URL to get quick details about the company profile. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("websiteurl")] + public string WebSiteURL + { + get + { + return this.GetAttributeValue("websiteurl"); + } + set + { + this.OnPropertyChanging("WebSiteURL"); + this.SetAttributeValue("websiteurl", value); + this.OnPropertyChanged("WebSiteURL"); + } + } + + /// + /// Type the phonetic spelling of the company name, if specified in Japanese, to make sure the name is pronounced correctly in phone calls and other communications. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("yominame")] + public string YomiName + { + get + { + return this.GetAttributeValue("yominame"); + } + set + { + this.OnPropertyChanging("YomiName"); + this.SetAttributeValue("yominame", value); + this.OnPropertyChanged("YomiName"); + } + } + + /// + /// 1:N account_activity_parties + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_activity_parties")] + public System.Collections.Generic.IEnumerable account_activity_parties + { + get + { + return this.GetRelatedEntities("account_activity_parties", null); + } + set + { + this.OnPropertyChanging("account_activity_parties"); + this.SetRelatedEntities("account_activity_parties", null, value); + this.OnPropertyChanged("account_activity_parties"); + } + } + + /// + /// 1:N Account_ActivityPointers + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_ActivityPointers")] + public System.Collections.Generic.IEnumerable Account_ActivityPointers + { + get + { + return this.GetRelatedEntities("Account_ActivityPointers", null); + } + set + { + this.OnPropertyChanging("Account_ActivityPointers"); + this.SetRelatedEntities("Account_ActivityPointers", null, value); + this.OnPropertyChanged("Account_ActivityPointers"); + } + } + + /// + /// 1:N Account_Annotation + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Annotation")] + public System.Collections.Generic.IEnumerable Account_Annotation + { + get + { + return this.GetRelatedEntities("Account_Annotation", null); + } + set + { + this.OnPropertyChanging("Account_Annotation"); + this.SetRelatedEntities("Account_Annotation", null, value); + this.OnPropertyChanged("Account_Annotation"); + } + } + + /// + /// 1:N Account_Appointments + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Appointments")] + public System.Collections.Generic.IEnumerable Account_Appointments + { + get + { + return this.GetRelatedEntities("Account_Appointments", null); + } + set + { + this.OnPropertyChanging("Account_Appointments"); + this.SetRelatedEntities("Account_Appointments", null, value); + this.OnPropertyChanged("Account_Appointments"); + } + } + + /// + /// 1:N Account_AsyncOperations + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_AsyncOperations")] + public System.Collections.Generic.IEnumerable Account_AsyncOperations + { + get + { + return this.GetRelatedEntities("Account_AsyncOperations", null); + } + set + { + this.OnPropertyChanging("Account_AsyncOperations"); + this.SetRelatedEntities("Account_AsyncOperations", null, value); + this.OnPropertyChanged("Account_AsyncOperations"); + } + } + + /// + /// 1:N Account_BulkDeleteFailures + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_BulkDeleteFailures")] + public System.Collections.Generic.IEnumerable Account_BulkDeleteFailures + { + get + { + return this.GetRelatedEntities("Account_BulkDeleteFailures", null); + } + set + { + this.OnPropertyChanging("Account_BulkDeleteFailures"); + this.SetRelatedEntities("Account_BulkDeleteFailures", null, value); + this.OnPropertyChanged("Account_BulkDeleteFailures"); + } + } + + /// + /// 1:N account_connections1 + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_connections1")] + public System.Collections.Generic.IEnumerable account_connections1 + { + get + { + return this.GetRelatedEntities("account_connections1", null); + } + set + { + this.OnPropertyChanging("account_connections1"); + this.SetRelatedEntities("account_connections1", null, value); + this.OnPropertyChanged("account_connections1"); + } + } + + /// + /// 1:N account_connections2 + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_connections2")] + public System.Collections.Generic.IEnumerable account_connections2 + { + get + { + return this.GetRelatedEntities("account_connections2", null); + } + set + { + this.OnPropertyChanging("account_connections2"); + this.SetRelatedEntities("account_connections2", null, value); + this.OnPropertyChanged("account_connections2"); + } + } + + /// + /// 1:N account_customer_opportunity_roles + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_customer_opportunity_roles")] + public System.Collections.Generic.IEnumerable account_customer_opportunity_roles + { + get + { + return this.GetRelatedEntities("account_customer_opportunity_roles", null); + } + set + { + this.OnPropertyChanging("account_customer_opportunity_roles"); + this.SetRelatedEntities("account_customer_opportunity_roles", null, value); + this.OnPropertyChanged("account_customer_opportunity_roles"); + } + } + + /// + /// 1:N account_customer_relationship_customer + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_customer_relationship_customer")] + public System.Collections.Generic.IEnumerable account_customer_relationship_customer + { + get + { + return this.GetRelatedEntities("account_customer_relationship_customer", null); + } + set + { + this.OnPropertyChanging("account_customer_relationship_customer"); + this.SetRelatedEntities("account_customer_relationship_customer", null, value); + this.OnPropertyChanged("account_customer_relationship_customer"); + } + } + + /// + /// 1:N account_customer_relationship_partner + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_customer_relationship_partner")] + public System.Collections.Generic.IEnumerable account_customer_relationship_partner + { + get + { + return this.GetRelatedEntities("account_customer_relationship_partner", null); + } + set + { + this.OnPropertyChanging("account_customer_relationship_partner"); + this.SetRelatedEntities("account_customer_relationship_partner", null, value); + this.OnPropertyChanged("account_customer_relationship_partner"); + } + } + + /// + /// 1:N Account_CustomerAddress + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_CustomerAddress")] + public System.Collections.Generic.IEnumerable Account_CustomerAddress + { + get + { + return this.GetRelatedEntities("Account_CustomerAddress", null); + } + set + { + this.OnPropertyChanging("Account_CustomerAddress"); + this.SetRelatedEntities("Account_CustomerAddress", null, value); + this.OnPropertyChanged("Account_CustomerAddress"); + } + } + + /// + /// 1:N Account_DuplicateBaseRecord + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_DuplicateBaseRecord")] + public System.Collections.Generic.IEnumerable Account_DuplicateBaseRecord + { + get + { + return this.GetRelatedEntities("Account_DuplicateBaseRecord", null); + } + set + { + this.OnPropertyChanging("Account_DuplicateBaseRecord"); + this.SetRelatedEntities("Account_DuplicateBaseRecord", null, value); + this.OnPropertyChanged("Account_DuplicateBaseRecord"); + } + } + + /// + /// 1:N Account_DuplicateMatchingRecord + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_DuplicateMatchingRecord")] + public System.Collections.Generic.IEnumerable Account_DuplicateMatchingRecord + { + get + { + return this.GetRelatedEntities("Account_DuplicateMatchingRecord", null); + } + set + { + this.OnPropertyChanging("Account_DuplicateMatchingRecord"); + this.SetRelatedEntities("Account_DuplicateMatchingRecord", null, value); + this.OnPropertyChanged("Account_DuplicateMatchingRecord"); + } + } + + /// + /// 1:N Account_Email_EmailSender + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Email_EmailSender")] + public System.Collections.Generic.IEnumerable Account_Email_EmailSender + { + get + { + return this.GetRelatedEntities("Account_Email_EmailSender", null); + } + set + { + this.OnPropertyChanging("Account_Email_EmailSender"); + this.SetRelatedEntities("Account_Email_EmailSender", null, value); + this.OnPropertyChanged("Account_Email_EmailSender"); + } + } + + /// + /// 1:N Account_Email_SendersAccount + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Email_SendersAccount")] + public System.Collections.Generic.IEnumerable Account_Email_SendersAccount + { + get + { + return this.GetRelatedEntities("Account_Email_SendersAccount", null); + } + set + { + this.OnPropertyChanging("Account_Email_SendersAccount"); + this.SetRelatedEntities("Account_Email_SendersAccount", null, value); + this.OnPropertyChanged("Account_Email_SendersAccount"); + } + } + + /// + /// 1:N Account_Emails + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Emails")] + public System.Collections.Generic.IEnumerable Account_Emails + { + get + { + return this.GetRelatedEntities("Account_Emails", null); + } + set + { + this.OnPropertyChanging("Account_Emails"); + this.SetRelatedEntities("Account_Emails", null, value); + this.OnPropertyChanged("Account_Emails"); + } + } + + /// + /// 1:N account_entitlement_Account + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_entitlement_Account")] + public System.Collections.Generic.IEnumerable account_entitlement_Account + { + get + { + return this.GetRelatedEntities("account_entitlement_Account", null); + } + set + { + this.OnPropertyChanging("account_entitlement_Account"); + this.SetRelatedEntities("account_entitlement_Account", null, value); + this.OnPropertyChanged("account_entitlement_Account"); + } + } + + /// + /// 1:N account_entitlement_Customer + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_entitlement_Customer")] + public System.Collections.Generic.IEnumerable account_entitlement_Customer + { + get + { + return this.GetRelatedEntities("account_entitlement_Customer", null); + } + set + { + this.OnPropertyChanging("account_entitlement_Customer"); + this.SetRelatedEntities("account_entitlement_Customer", null, value); + this.OnPropertyChanged("account_entitlement_Customer"); + } + } + + /// + /// 1:N Account_Faxes + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Faxes")] + public System.Collections.Generic.IEnumerable Account_Faxes + { + get + { + return this.GetRelatedEntities("Account_Faxes", null); + } + set + { + this.OnPropertyChanging("Account_Faxes"); + this.SetRelatedEntities("Account_Faxes", null, value); + this.OnPropertyChanged("Account_Faxes"); + } + } + + /// + /// 1:N Account_Letters + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Letters")] + public System.Collections.Generic.IEnumerable Account_Letters + { + get + { + return this.GetRelatedEntities("Account_Letters", null); + } + set + { + this.OnPropertyChanging("Account_Letters"); + this.SetRelatedEntities("Account_Letters", null, value); + this.OnPropertyChanged("Account_Letters"); + } + } + + /// + /// 1:N account_master_account + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referenced)] + public System.Collections.Generic.IEnumerable Referencedaccount_master_account + { + get + { + return this.GetRelatedEntities("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referenced); + } + set + { + this.OnPropertyChanging("Referencedaccount_master_account"); + this.SetRelatedEntities("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referenced, value); + this.OnPropertyChanged("Referencedaccount_master_account"); + } + } + + /// + /// 1:N account_parent_account + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_parent_account", Microsoft.Xrm.Sdk.EntityRole.Referenced)] + public System.Collections.Generic.IEnumerable Referencedaccount_parent_account + { + get + { + return this.GetRelatedEntities("account_parent_account", Microsoft.Xrm.Sdk.EntityRole.Referenced); + } + set + { + this.OnPropertyChanging("Referencedaccount_parent_account"); + this.SetRelatedEntities("account_parent_account", Microsoft.Xrm.Sdk.EntityRole.Referenced, value); + this.OnPropertyChanged("Referencedaccount_parent_account"); + } + } + + /// + /// 1:N Account_Phonecalls + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Phonecalls")] + public System.Collections.Generic.IEnumerable Account_Phonecalls + { + get + { + return this.GetRelatedEntities("Account_Phonecalls", null); + } + set + { + this.OnPropertyChanging("Account_Phonecalls"); + this.SetRelatedEntities("Account_Phonecalls", null, value); + this.OnPropertyChanged("Account_Phonecalls"); + } + } + + /// + /// 1:N account_PostFollows + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_PostFollows")] + public System.Collections.Generic.IEnumerable account_PostFollows + { + get + { + return this.GetRelatedEntities("account_PostFollows", null); + } + set + { + this.OnPropertyChanging("account_PostFollows"); + this.SetRelatedEntities("account_PostFollows", null, value); + this.OnPropertyChanged("account_PostFollows"); + } + } + + /// + /// 1:N account_principalobjectattributeaccess + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_principalobjectattributeaccess")] + public System.Collections.Generic.IEnumerable account_principalobjectattributeaccess + { + get + { + return this.GetRelatedEntities("account_principalobjectattributeaccess", null); + } + set + { + this.OnPropertyChanging("account_principalobjectattributeaccess"); + this.SetRelatedEntities("account_principalobjectattributeaccess", null, value); + this.OnPropertyChanged("account_principalobjectattributeaccess"); + } + } + + /// + /// 1:N Account_ProcessSessions + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_ProcessSessions")] + public System.Collections.Generic.IEnumerable Account_ProcessSessions + { + get + { + return this.GetRelatedEntities("Account_ProcessSessions", null); + } + set + { + this.OnPropertyChanging("Account_ProcessSessions"); + this.SetRelatedEntities("Account_ProcessSessions", null, value); + this.OnPropertyChanged("Account_ProcessSessions"); + } + } + + /// + /// 1:N Account_RecurringAppointmentMasters + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_RecurringAppointmentMasters")] + public System.Collections.Generic.IEnumerable Account_RecurringAppointmentMasters + { + get + { + return this.GetRelatedEntities("Account_RecurringAppointmentMasters", null); + } + set + { + this.OnPropertyChanging("Account_RecurringAppointmentMasters"); + this.SetRelatedEntities("Account_RecurringAppointmentMasters", null, value); + this.OnPropertyChanged("Account_RecurringAppointmentMasters"); + } + } + + /// + /// 1:N Account_ServiceAppointments + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_ServiceAppointments")] + public System.Collections.Generic.IEnumerable Account_ServiceAppointments + { + get + { + return this.GetRelatedEntities("Account_ServiceAppointments", null); + } + set + { + this.OnPropertyChanging("Account_ServiceAppointments"); + this.SetRelatedEntities("Account_ServiceAppointments", null, value); + this.OnPropertyChanged("Account_ServiceAppointments"); + } + } + + /// + /// 1:N Account_SharepointDocument + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_SharepointDocument")] + public System.Collections.Generic.IEnumerable Account_SharepointDocument + { + get + { + return this.GetRelatedEntities("Account_SharepointDocument", null); + } + set + { + this.OnPropertyChanging("Account_SharepointDocument"); + this.SetRelatedEntities("Account_SharepointDocument", null, value); + this.OnPropertyChanged("Account_SharepointDocument"); + } + } + + /// + /// 1:N Account_SharepointDocumentLocation + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_SharepointDocumentLocation")] + public System.Collections.Generic.IEnumerable Account_SharepointDocumentLocation + { + get + { + return this.GetRelatedEntities("Account_SharepointDocumentLocation", null); + } + set + { + this.OnPropertyChanging("Account_SharepointDocumentLocation"); + this.SetRelatedEntities("Account_SharepointDocumentLocation", null, value); + this.OnPropertyChanged("Account_SharepointDocumentLocation"); + } + } + + /// + /// 1:N Account_SocialActivities + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_SocialActivities")] + public System.Collections.Generic.IEnumerable Account_SocialActivities + { + get + { + return this.GetRelatedEntities("Account_SocialActivities", null); + } + set + { + this.OnPropertyChanging("Account_SocialActivities"); + this.SetRelatedEntities("Account_SocialActivities", null, value); + this.OnPropertyChanged("Account_SocialActivities"); + } + } + + /// + /// 1:N Account_Tasks + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Account_Tasks")] + public System.Collections.Generic.IEnumerable Account_Tasks + { + get + { + return this.GetRelatedEntities("Account_Tasks", null); + } + set + { + this.OnPropertyChanging("Account_Tasks"); + this.SetRelatedEntities("Account_Tasks", null, value); + this.OnPropertyChanged("Account_Tasks"); + } + } + + /// + /// 1:N contact_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("contact_customer_accounts")] + public System.Collections.Generic.IEnumerable contact_customer_accounts + { + get + { + return this.GetRelatedEntities("contact_customer_accounts", null); + } + set + { + this.OnPropertyChanging("contact_customer_accounts"); + this.SetRelatedEntities("contact_customer_accounts", null, value); + this.OnPropertyChanged("contact_customer_accounts"); + } + } + + /// + /// 1:N contract_billingcustomer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("contract_billingcustomer_accounts")] + public System.Collections.Generic.IEnumerable contract_billingcustomer_accounts + { + get + { + return this.GetRelatedEntities("contract_billingcustomer_accounts", null); + } + set + { + this.OnPropertyChanging("contract_billingcustomer_accounts"); + this.SetRelatedEntities("contract_billingcustomer_accounts", null, value); + this.OnPropertyChanged("contract_billingcustomer_accounts"); + } + } + + /// + /// 1:N contract_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("contract_customer_accounts")] + public System.Collections.Generic.IEnumerable contract_customer_accounts + { + get + { + return this.GetRelatedEntities("contract_customer_accounts", null); + } + set + { + this.OnPropertyChanging("contract_customer_accounts"); + this.SetRelatedEntities("contract_customer_accounts", null, value); + this.OnPropertyChanged("contract_customer_accounts"); + } + } + + /// + /// 1:N contractlineitem_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("contractlineitem_customer_accounts")] + public System.Collections.Generic.IEnumerable contractlineitem_customer_accounts + { + get + { + return this.GetRelatedEntities("contractlineitem_customer_accounts", null); + } + set + { + this.OnPropertyChanging("contractlineitem_customer_accounts"); + this.SetRelatedEntities("contractlineitem_customer_accounts", null, value); + this.OnPropertyChanged("contractlineitem_customer_accounts"); + } + } + + /// + /// 1:N CreatedAccount_BulkOperationLogs2 + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("CreatedAccount_BulkOperationLogs2")] + public System.Collections.Generic.IEnumerable CreatedAccount_BulkOperationLogs2 + { + get + { + return this.GetRelatedEntities("CreatedAccount_BulkOperationLogs2", null); + } + set + { + this.OnPropertyChanging("CreatedAccount_BulkOperationLogs2"); + this.SetRelatedEntities("CreatedAccount_BulkOperationLogs2", null, value); + this.OnPropertyChanged("CreatedAccount_BulkOperationLogs2"); + } + } + + /// + /// 1:N incident_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("incident_customer_accounts")] + public System.Collections.Generic.IEnumerable incident_customer_accounts + { + get + { + return this.GetRelatedEntities("incident_customer_accounts", null); + } + set + { + this.OnPropertyChanging("incident_customer_accounts"); + this.SetRelatedEntities("incident_customer_accounts", null, value); + this.OnPropertyChanged("incident_customer_accounts"); + } + } + + /// + /// 1:N invoice_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("invoice_customer_accounts")] + public System.Collections.Generic.IEnumerable invoice_customer_accounts + { + get + { + return this.GetRelatedEntities("invoice_customer_accounts", null); + } + set + { + this.OnPropertyChanging("invoice_customer_accounts"); + this.SetRelatedEntities("invoice_customer_accounts", null, value); + this.OnPropertyChanged("invoice_customer_accounts"); + } + } + + /// + /// 1:N lead_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("lead_customer_accounts")] + public System.Collections.Generic.IEnumerable lead_customer_accounts + { + get + { + return this.GetRelatedEntities("lead_customer_accounts", null); + } + set + { + this.OnPropertyChanging("lead_customer_accounts"); + this.SetRelatedEntities("lead_customer_accounts", null, value); + this.OnPropertyChanged("lead_customer_accounts"); + } + } + + /// + /// 1:N lead_parent_account + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("lead_parent_account")] + public System.Collections.Generic.IEnumerable lead_parent_account + { + get + { + return this.GetRelatedEntities("lead_parent_account", null); + } + set + { + this.OnPropertyChanging("lead_parent_account"); + this.SetRelatedEntities("lead_parent_account", null, value); + this.OnPropertyChanged("lead_parent_account"); + } + } + + /// + /// 1:N opportunity_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("opportunity_customer_accounts")] + public System.Collections.Generic.IEnumerable opportunity_customer_accounts + { + get + { + return this.GetRelatedEntities("opportunity_customer_accounts", null); + } + set + { + this.OnPropertyChanging("opportunity_customer_accounts"); + this.SetRelatedEntities("opportunity_customer_accounts", null, value); + this.OnPropertyChanged("opportunity_customer_accounts"); + } + } + + /// + /// 1:N opportunity_parent_account + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("opportunity_parent_account")] + public System.Collections.Generic.IEnumerable opportunity_parent_account + { + get + { + return this.GetRelatedEntities("opportunity_parent_account", null); + } + set + { + this.OnPropertyChanging("opportunity_parent_account"); + this.SetRelatedEntities("opportunity_parent_account", null, value); + this.OnPropertyChanged("opportunity_parent_account"); + } + } + + /// + /// 1:N order_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("order_customer_accounts")] + public System.Collections.Generic.IEnumerable order_customer_accounts + { + get + { + return this.GetRelatedEntities("order_customer_accounts", null); + } + set + { + this.OnPropertyChanging("order_customer_accounts"); + this.SetRelatedEntities("order_customer_accounts", null, value); + this.OnPropertyChanged("order_customer_accounts"); + } + } + + /// + /// 1:N quote_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("quote_customer_accounts")] + public System.Collections.Generic.IEnumerable quote_customer_accounts + { + get + { + return this.GetRelatedEntities("quote_customer_accounts", null); + } + set + { + this.OnPropertyChanging("quote_customer_accounts"); + this.SetRelatedEntities("quote_customer_accounts", null, value); + this.OnPropertyChanged("quote_customer_accounts"); + } + } + + /// + /// 1:N SocialActivity_PostAuthor_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("SocialActivity_PostAuthor_accounts")] + public System.Collections.Generic.IEnumerable SocialActivity_PostAuthor_accounts + { + get + { + return this.GetRelatedEntities("SocialActivity_PostAuthor_accounts", null); + } + set + { + this.OnPropertyChanging("SocialActivity_PostAuthor_accounts"); + this.SetRelatedEntities("SocialActivity_PostAuthor_accounts", null, value); + this.OnPropertyChanged("SocialActivity_PostAuthor_accounts"); + } + } + + /// + /// 1:N SocialActivity_PostAuthorAccount_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("SocialActivity_PostAuthorAccount_accounts")] + public System.Collections.Generic.IEnumerable SocialActivity_PostAuthorAccount_accounts + { + get + { + return this.GetRelatedEntities("SocialActivity_PostAuthorAccount_accounts", null); + } + set + { + this.OnPropertyChanging("SocialActivity_PostAuthorAccount_accounts"); + this.SetRelatedEntities("SocialActivity_PostAuthorAccount_accounts", null, value); + this.OnPropertyChanged("SocialActivity_PostAuthorAccount_accounts"); + } + } + + /// + /// 1:N Socialprofile_customer_accounts + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("Socialprofile_customer_accounts")] + public System.Collections.Generic.IEnumerable Socialprofile_customer_accounts + { + get + { + return this.GetRelatedEntities("Socialprofile_customer_accounts", null); + } + set + { + this.OnPropertyChanging("Socialprofile_customer_accounts"); + this.SetRelatedEntities("Socialprofile_customer_accounts", null, value); + this.OnPropertyChanged("Socialprofile_customer_accounts"); + } + } + + /// + /// 1:N SourceAccount_BulkOperationLogs + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("SourceAccount_BulkOperationLogs")] + public System.Collections.Generic.IEnumerable SourceAccount_BulkOperationLogs + { + get + { + return this.GetRelatedEntities("SourceAccount_BulkOperationLogs", null); + } + set + { + this.OnPropertyChanging("SourceAccount_BulkOperationLogs"); + this.SetRelatedEntities("SourceAccount_BulkOperationLogs", null, value); + this.OnPropertyChanged("SourceAccount_BulkOperationLogs"); + } + } + + /// + /// 1:N userentityinstancedata_account + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("userentityinstancedata_account")] + public System.Collections.Generic.IEnumerable userentityinstancedata_account + { + get + { + return this.GetRelatedEntities("userentityinstancedata_account", null); + } + set + { + this.OnPropertyChanging("userentityinstancedata_account"); + this.SetRelatedEntities("userentityinstancedata_account", null, value); + this.OnPropertyChanged("userentityinstancedata_account"); + } + } + + /// + /// N:N accountleads_association + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("accountleads_association")] + public System.Collections.Generic.IEnumerable accountleads_association + { + get + { + return this.GetRelatedEntities("accountleads_association", null); + } + set + { + this.OnPropertyChanging("accountleads_association"); + this.SetRelatedEntities("accountleads_association", null, value); + this.OnPropertyChanged("accountleads_association"); + } + } + + /// + /// N:N listaccount_association + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("listaccount_association")] + public System.Collections.Generic.IEnumerable listaccount_association + { + get + { + return this.GetRelatedEntities("listaccount_association", null); + } + set + { + this.OnPropertyChanging("listaccount_association"); + this.SetRelatedEntities("listaccount_association", null, value); + this.OnPropertyChanged("listaccount_association"); + } + } + + /// + /// N:1 account_master_account + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("masterid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referencing)] + public Account Referencingaccount_master_account + { + get + { + return this.GetRelatedEntity("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referencing); + } + } + + /// + /// N:1 account_originating_lead + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("originatingleadid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_originating_lead")] + public Lead account_originating_lead + { + get + { + return this.GetRelatedEntity("account_originating_lead", null); + } + set + { + this.OnPropertyChanging("account_originating_lead"); + this.SetRelatedEntity("account_originating_lead", null, value); + this.OnPropertyChanged("account_originating_lead"); + } + } + + /// + /// N:1 account_parent_account + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("parentaccountid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_parent_account", Microsoft.Xrm.Sdk.EntityRole.Referencing)] + public Account Referencingaccount_parent_account + { + get + { + return this.GetRelatedEntity("account_parent_account", Microsoft.Xrm.Sdk.EntityRole.Referencing); + } + set + { + this.OnPropertyChanging("Referencingaccount_parent_account"); + this.SetRelatedEntity("account_parent_account", Microsoft.Xrm.Sdk.EntityRole.Referencing, value); + this.OnPropertyChanged("Referencingaccount_parent_account"); + } + } + + /// + /// N:1 account_primary_contact + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("primarycontactid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_primary_contact")] + public Contact account_primary_contact + { + get + { + return this.GetRelatedEntity("account_primary_contact", null); + } + set + { + this.OnPropertyChanging("account_primary_contact"); + this.SetRelatedEntity("account_primary_contact", null, value); + this.OnPropertyChanged("account_primary_contact"); + } + } + + /// + /// N:1 business_unit_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owningbusinessunit")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("business_unit_accounts")] + public BusinessUnit business_unit_accounts + { + get + { + return this.GetRelatedEntity("business_unit_accounts", null); + } + } + + /// + /// N:1 equipment_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredequipmentid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("equipment_accounts")] + public Equipment equipment_accounts + { + get + { + return this.GetRelatedEntity("equipment_accounts", null); + } + set + { + this.OnPropertyChanging("equipment_accounts"); + this.SetRelatedEntity("equipment_accounts", null, value); + this.OnPropertyChanged("equipment_accounts"); + } + } + + /// + /// N:1 lk_accountbase_createdby + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdby")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("lk_accountbase_createdby")] + public SystemUser lk_accountbase_createdby + { + get + { + return this.GetRelatedEntity("lk_accountbase_createdby", null); + } + } + + /// + /// N:1 lk_accountbase_createdonbehalfby + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdonbehalfby")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("lk_accountbase_createdonbehalfby")] + public SystemUser lk_accountbase_createdonbehalfby + { + get + { + return this.GetRelatedEntity("lk_accountbase_createdonbehalfby", null); + } + } + + /// + /// N:1 lk_accountbase_modifiedby + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedby")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("lk_accountbase_modifiedby")] + public SystemUser lk_accountbase_modifiedby + { + get + { + return this.GetRelatedEntity("lk_accountbase_modifiedby", null); + } + } + + /// + /// N:1 lk_accountbase_modifiedonbehalfby + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedonbehalfby")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("lk_accountbase_modifiedonbehalfby")] + public SystemUser lk_accountbase_modifiedonbehalfby + { + get + { + return this.GetRelatedEntity("lk_accountbase_modifiedonbehalfby", null); + } + } + + /// + /// N:1 price_level_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultpricelevelid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("price_level_accounts")] + public PriceLevel price_level_accounts + { + get + { + return this.GetRelatedEntity("price_level_accounts", null); + } + set + { + this.OnPropertyChanging("price_level_accounts"); + this.SetRelatedEntity("price_level_accounts", null, value); + this.OnPropertyChanged("price_level_accounts"); + } + } + + /// + /// N:1 processstage_account + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("stageid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("processstage_account")] + public ProcessStage processstage_account + { + get + { + return this.GetRelatedEntity("processstage_account", null); + } + set + { + this.OnPropertyChanging("processstage_account"); + this.SetRelatedEntity("processstage_account", null, value); + this.OnPropertyChanged("processstage_account"); + } + } + + /// + /// N:1 service_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredserviceid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("service_accounts")] + public Service service_accounts + { + get + { + return this.GetRelatedEntity("service_accounts", null); + } + set + { + this.OnPropertyChanging("service_accounts"); + this.SetRelatedEntity("service_accounts", null, value); + this.OnPropertyChanged("service_accounts"); + } + } + + /// + /// N:1 system_user_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("preferredsystemuserid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("system_user_accounts")] + public SystemUser system_user_accounts + { + get + { + return this.GetRelatedEntity("system_user_accounts", null); + } + set + { + this.OnPropertyChanging("system_user_accounts"); + this.SetRelatedEntity("system_user_accounts", null, value); + this.OnPropertyChanged("system_user_accounts"); + } + } + + /// + /// N:1 team_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owningteam")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("team_accounts")] + public Team team_accounts + { + get + { + return this.GetRelatedEntity("team_accounts", null); + } + } + + /// + /// N:1 territory_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("territoryid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("territory_accounts")] + public Territory territory_accounts + { + get + { + return this.GetRelatedEntity("territory_accounts", null); + } + set + { + this.OnPropertyChanging("territory_accounts"); + this.SetRelatedEntity("territory_accounts", null, value); + this.OnPropertyChanged("territory_accounts"); + } + } + + /// + /// N:1 transactioncurrency_account + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("transactioncurrencyid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("transactioncurrency_account")] + public TransactionCurrency transactioncurrency_account + { + get + { + return this.GetRelatedEntity("transactioncurrency_account", null); + } + set + { + this.OnPropertyChanging("transactioncurrency_account"); + this.SetRelatedEntity("transactioncurrency_account", null, value); + this.OnPropertyChanged("transactioncurrency_account"); + } + } + + /// + /// N:1 user_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owninguser")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("user_accounts")] + public SystemUser user_accounts + { + get + { + return this.GetRelatedEntity("user_accounts", null); + } + } +} + +/// +/// +/// +[System.Runtime.Serialization.DataContractAttribute()] +[Microsoft.Xrm.Sdk.Client.EntityLogicalNameAttribute("accountleads")] +[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "7.0.0000.3048")] +public partial class AccountLeads : Microsoft.Xrm.Sdk.Entity, System.ComponentModel.INotifyPropertyChanging, System.ComponentModel.INotifyPropertyChanged +{ + + /// + /// Default Constructor. + /// + public AccountLeads() : + base(EntityLogicalName) + { + } + + public const string EntityLogicalName = "accountleads"; + + public const int EntityTypeCode = 16; + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; + + private void OnPropertyChanged(string propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + + private void OnPropertyChanging(string propertyName) + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, new System.ComponentModel.PropertyChangingEventArgs(propertyName)); + } + } + + /// + /// + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountid")] + public System.Nullable AccountId + { + get + { + return this.GetAttributeValue>("accountid"); + } + } + + /// + /// Unique identifier of the lead for the account. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountleadid")] + public System.Nullable AccountLeadId + { + get + { + return this.GetAttributeValue>("accountleadid"); + } + set + { + this.OnPropertyChanging("AccountLeadId"); + this.SetAttributeValue("accountleadid", value); + if (value.HasValue) + { + base.Id = value.Value; + } + else + { + base.Id = System.Guid.Empty; + } + this.OnPropertyChanged("AccountLeadId"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountleadid")] + public override System.Guid Id + { + get + { + return base.Id; + } + set + { + this.AccountLeadId = value; + } + } + + /// + /// + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("leadid")] + public System.Nullable LeadId + { + get + { + return this.GetAttributeValue>("leadid"); + } + } + + /// + /// + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("versionnumber")] + public System.Nullable VersionNumber + { + get + { + return this.GetAttributeValue>("versionnumber"); + } + } + + /// + /// N:N accountleads_association + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("accountleads_association")] + public System.Collections.Generic.IEnumerable accountleads_association + { + get + { + return this.GetRelatedEntities("accountleads_association", null); + } + set + { + this.OnPropertyChanging("accountleads_association"); + this.SetRelatedEntities("accountleads_association", null, value); + this.OnPropertyChanged("accountleads_association"); + } + } +} + +/// +/// MIME attachment for an activity. +/// +[System.Runtime.Serialization.DataContractAttribute()] +[Microsoft.Xrm.Sdk.Client.EntityLogicalNameAttribute("activitymimeattachment")] +[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "7.0.0000.3048")] +public partial class ActivityMimeAttachment : Microsoft.Xrm.Sdk.Entity, System.ComponentModel.INotifyPropertyChanging, System.ComponentModel.INotifyPropertyChanged +{ + + /// + /// Default Constructor. + /// + public ActivityMimeAttachment() : + base(EntityLogicalName) + { + } + + public const string EntityLogicalName = "activitymimeattachment"; + + public const int EntityTypeCode = 1001; + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + public event System.ComponentModel.PropertyChangingEventHandler PropertyChanging; + + private void OnPropertyChanged(string propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + + private void OnPropertyChanging(string propertyName) + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, new System.ComponentModel.PropertyChangingEventArgs(propertyName)); + } + } + + /// + /// Unique identifier of the activity with which the attachment is associated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activityid")] + [System.ObsoleteAttribute()] + public Microsoft.Xrm.Sdk.EntityReference ActivityId + { + get + { + return this.GetAttributeValue("activityid"); + } + set + { + this.OnPropertyChanging("ActivityId"); + this.SetAttributeValue("activityid", value); + this.OnPropertyChanged("ActivityId"); + } + } + + /// + /// Unique identifier of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitymimeattachmentid")] + public System.Nullable ActivityMimeAttachmentId + { + get + { + return this.GetAttributeValue>("activitymimeattachmentid"); + } + set + { + this.OnPropertyChanging("ActivityMimeAttachmentId"); + this.SetAttributeValue("activitymimeattachmentid", value); + if (value.HasValue) + { + base.Id = value.Value; + } + else + { + base.Id = System.Guid.Empty; + } + this.OnPropertyChanged("ActivityMimeAttachmentId"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitymimeattachmentid")] + public override System.Guid Id + { + get + { + return base.Id; + } + set + { + this.ActivityMimeAttachmentId = value; + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitymimeattachmentidunique")] + public System.Nullable ActivityMimeAttachmentIdUnique + { + get + { + return this.GetAttributeValue>("activitymimeattachmentidunique"); + } + set + { + this.OnPropertyChanging("ActivityMimeAttachmentIdUnique"); + this.SetAttributeValue("activitymimeattachmentidunique", value); + this.OnPropertyChanged("ActivityMimeAttachmentIdUnique"); + } + } + + /// + /// For internal use only + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("attachmentcontentid")] + public string AttachmentContentId + { + get + { + return this.GetAttributeValue("attachmentcontentid"); + } + set + { + this.OnPropertyChanging("AttachmentContentId"); + this.SetAttributeValue("attachmentcontentid", value); + this.OnPropertyChanged("AttachmentContentId"); + } + } + + /// + /// Unique identifier of the attachment with which this activitymimeattachment is associated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("attachmentid")] + public Microsoft.Xrm.Sdk.EntityReference AttachmentId + { + get + { + return this.GetAttributeValue("attachmentid"); + } + set + { + this.OnPropertyChanging("AttachmentId"); + this.SetAttributeValue("attachmentid", value); + this.OnPropertyChanged("AttachmentId"); + } + } + + /// + /// Number of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("attachmentnumber")] + public System.Nullable AttachmentNumber + { + get + { + return this.GetAttributeValue>("attachmentnumber"); + } + set + { + this.OnPropertyChanging("AttachmentNumber"); + this.SetAttributeValue("attachmentnumber", value); + this.OnPropertyChanged("AttachmentNumber"); + } + } + + /// + /// Contents of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("body")] + public string Body + { + get + { + return this.GetAttributeValue("body"); + } + set + { + this.OnPropertyChanging("Body"); + this.SetAttributeValue("body", value); + this.OnPropertyChanged("Body"); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("componentstate")] + public Microsoft.Xrm.Sdk.OptionSetValue ComponentState + { + get + { + return this.GetAttributeValue("componentstate"); + } + } + + /// + /// File name of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("filename")] + public string FileName + { + get + { + return this.GetAttributeValue("filename"); + } + set + { + this.OnPropertyChanging("FileName"); + this.SetAttributeValue("filename", value); + this.OnPropertyChanged("FileName"); + } + } + + /// + /// File size of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("filesize")] + public System.Nullable FileSize + { + get + { + return this.GetAttributeValue>("filesize"); + } + } + + /// + /// Indicates whether the solution component is part of a managed solution. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismanaged")] + public System.Nullable IsManaged + { + get + { + return this.GetAttributeValue>("ismanaged"); + } + } + + /// + /// MIME type of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mimetype")] + public string MimeType + { + get + { + return this.GetAttributeValue("mimetype"); + } + set + { + this.OnPropertyChanging("MimeType"); + this.SetAttributeValue("mimetype", value); + this.OnPropertyChanged("MimeType"); + } + } + + /// + /// Unique identifier of the record with which the attachment is associated + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + public Microsoft.Xrm.Sdk.EntityReference ObjectId + { + get + { + return this.GetAttributeValue("objectid"); + } + set + { + this.OnPropertyChanging("ObjectId"); + this.SetAttributeValue("objectid", value); + this.OnPropertyChanged("ObjectId"); + } + } + + /// + /// Object Type Code of the entity that is associated with the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objecttypecode")] + public string ObjectTypeCode + { + get + { + return this.GetAttributeValue("objecttypecode"); + } + set + { + this.OnPropertyChanging("ObjectTypeCode"); + this.SetAttributeValue("objecttypecode", value); + this.OnPropertyChanged("ObjectTypeCode"); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("overwritetime")] + public System.Nullable OverwriteTime + { + get + { + return this.GetAttributeValue>("overwritetime"); + } + } + + /// + /// Unique identifier of the user or team who owns the activity_mime_attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ownerid")] + public Microsoft.Xrm.Sdk.EntityReference OwnerId + { + get + { + return this.GetAttributeValue("ownerid"); + } + } + + /// + /// Unique identifier of the business unit that owns the activity mime attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owningbusinessunit")] + public Microsoft.Xrm.Sdk.EntityReference OwningBusinessUnit + { + get + { + return this.GetAttributeValue("owningbusinessunit"); + } + } + + /// + /// Unique identifier of the user who owns the activity mime attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("owninguser")] + public Microsoft.Xrm.Sdk.EntityReference OwningUser + { + get + { + return this.GetAttributeValue("owninguser"); + } + } + + /// + /// Unique identifier of the associated solution. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("solutionid")] + public System.Nullable SolutionId + { + get + { + return this.GetAttributeValue>("solutionid"); + } + } + + /// + /// Descriptive subject for the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("subject")] + public string Subject + { + get + { + return this.GetAttributeValue("subject"); + } + set + { + this.OnPropertyChanging("Subject"); + this.SetAttributeValue("subject", value); + this.OnPropertyChanged("Subject"); + } + } + + /// + /// Version number of the activity mime attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("versionnumber")] + public System.Nullable VersionNumber + { + get + { + return this.GetAttributeValue>("versionnumber"); + } + } + + /// + /// 1:N ActivityMimeAttachment_AsyncOperations + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("ActivityMimeAttachment_AsyncOperations")] + public System.Collections.Generic.IEnumerable ActivityMimeAttachment_AsyncOperations + { + get + { + return this.GetRelatedEntities("ActivityMimeAttachment_AsyncOperations", null); + } + set + { + this.OnPropertyChanging("ActivityMimeAttachment_AsyncOperations"); + this.SetRelatedEntities("ActivityMimeAttachment_AsyncOperations", null, value); + this.OnPropertyChanged("ActivityMimeAttachment_AsyncOperations"); + } + } + + /// + /// 1:N ActivityMimeAttachment_BulkDeleteFailures + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("ActivityMimeAttachment_BulkDeleteFailures")] + public System.Collections.Generic.IEnumerable ActivityMimeAttachment_BulkDeleteFailures + { + get + { + return this.GetRelatedEntities("ActivityMimeAttachment_BulkDeleteFailures", null); + } + set + { + this.OnPropertyChanging("ActivityMimeAttachment_BulkDeleteFailures"); + this.SetRelatedEntities("ActivityMimeAttachment_BulkDeleteFailures", null, value); + this.OnPropertyChanged("ActivityMimeAttachment_BulkDeleteFailures"); + } + } + + /// + /// 1:N userentityinstancedata_activitymimeattachment + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("userentityinstancedata_activitymimeattachment")] + public System.Collections.Generic.IEnumerable userentityinstancedata_activitymimeattachment + { + get + { + return this.GetRelatedEntities("userentityinstancedata_activitymimeattachment", null); + } + set + { + this.OnPropertyChanging("userentityinstancedata_activitymimeattachment"); + this.SetRelatedEntities("userentityinstancedata_activitymimeattachment", null, value); + this.OnPropertyChanged("userentityinstancedata_activitymimeattachment"); + } + } + + /// + /// N:1 activity_pointer_activity_mime_attachment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("activity_pointer_activity_mime_attachment")] + public ActivityPointer activity_pointer_activity_mime_attachment + { + get + { + return this.GetRelatedEntity("activity_pointer_activity_mime_attachment", null); + } + set + { + this.OnPropertyChanging("activity_pointer_activity_mime_attachment"); + this.SetRelatedEntity("activity_pointer_activity_mime_attachment", null, value); + this.OnPropertyChanged("activity_pointer_activity_mime_attachment"); + } + } + + /// + /// N:1 appointment_activity_mime_attachment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("appointment_activity_mime_attachment")] + public Appointment appointment_activity_mime_attachment + { + get + { + return this.GetRelatedEntity("appointment_activity_mime_attachment", null); + } + set + { + this.OnPropertyChanging("appointment_activity_mime_attachment"); + this.SetRelatedEntity("appointment_activity_mime_attachment", null, value); + this.OnPropertyChanged("appointment_activity_mime_attachment"); + } + } + + /// + /// N:1 email_activity_mime_attachment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("email_activity_mime_attachment")] + public Email email_activity_mime_attachment + { + get + { + return this.GetRelatedEntity("email_activity_mime_attachment", null); + } + set + { + this.OnPropertyChanging("email_activity_mime_attachment"); + this.SetRelatedEntity("email_activity_mime_attachment", null, value); + this.OnPropertyChanged("email_activity_mime_attachment"); + } + } + + /// + /// N:1 template_activity_mime_attachments + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("template_activity_mime_attachments")] + public Template template_activity_mime_attachments + { + get + { + return this.GetRelatedEntity