public GroupCapacityDisplay(string groupName, CapacityBlock capacity) : this()
 {
     this.GroupName    = groupName;
     this.StartDate    = new DateTime?(capacity.StartDate);
     this.UpgradeUnits = new int?(capacity.UpgradeUnits);
 }
Пример #2
0
        protected override void InternalProcessRecord()
        {
            SetGroupCapacity.< > c__DisplayClass1 CS$ < > 8__locals1 = new SetGroupCapacity.< > c__DisplayClass1();
            CS$ < > 8__locals1.toUpdate = null;
            string parameterSetName;

            if ((parameterSetName = base.ParameterSetName) != null)
            {
                if (!(parameterSetName == "SingleGroupCapacityUpdate"))
                {
                    if (parameterSetName == "MultiGroupCapacityUpdate")
                    {
                        Dictionary <string, List <CapacityBlock> > dictionary = new Dictionary <string, List <CapacityBlock> >();
                        foreach (PSObject psobject in this.GroupCapacities)
                        {
                            string text = base.GetPropertyValue(psobject.Properties, "GroupName").ToString();
                            int    upgradeUnits;
                            int.TryParse(base.GetPropertyValue(psobject.Properties, "UpgradeUnits").ToString(), out upgradeUnits);
                            DateTime startDate;
                            DateTime.TryParse(base.GetPropertyValue(psobject.Properties, "StartDate").ToString(), out startDate);
                            Console.WriteLine("Capacity Group name is {0}", text);
                            if (dictionary.ContainsKey(text))
                            {
                                Console.WriteLine("CSV Input Contains this groupname already");
                                if (dictionary[text].Count >= 20)
                                {
                                    base.ThrowTerminatingError(new PSArgumentException("Cannot update more than 20 capacities per group"), ErrorCategory.InvalidArgument, this.GroupCapacities);
                                }
                                dictionary[text].Add(new CapacityBlock(startDate, upgradeUnits));
                            }
                            else
                            {
                                Console.WriteLine("CSV Input is creating a new group name");
                                dictionary.Add(text, new List <CapacityBlock>
                                {
                                    new CapacityBlock(startDate, upgradeUnits)
                                });
                            }
                        }
                        List <GroupCapacity> list = new List <GroupCapacity>();
                        foreach (KeyValuePair <string, List <CapacityBlock> > keyValuePair in dictionary)
                        {
                            list.Add(new GroupCapacity(keyValuePair.Key, keyValuePair.Value.ToArray()));
                        }
                        CS$ < > 8__locals1.toUpdate = list.ToArray();
                    }
                }
                else
                {
                    CapacityBlock[] capacities;
                    if (this.CapacityBlocks == null)
                    {
                        CapacityBlock capacityBlock = new CapacityBlock(this.StartDate, this.UpgradeUnits);
                        capacities = new CapacityBlock[]
                        {
                            capacityBlock
                        };
                    }
                    else
                    {
                        capacities = this.CapacityBlocks;
                    }
                    GroupCapacity groupCapacity = new GroupCapacity(this.GroupName, capacities);
                    CS$ < > 8__locals1.toUpdate = new GroupCapacity[]
                    {
                        groupCapacity
                    };
                }
            }
            using (ProxyWrapper <UpgradeSchedulingConstraintsClient, IUpgradeSchedulingConstraints> workloadClient = new ProxyWrapper <UpgradeSchedulingConstraintsClient, IUpgradeSchedulingConstraints>(base.WorkloadUri, base.Certificate))
            {
                workloadClient.CallSymphony(delegate
                {
                    workloadClient.Proxy.UpdateCapacity(CS$ < > 8__locals1.toUpdate);
                }, base.WorkloadUri.ToString());