/// <summary>
        /// Add a resource to the transfer request.
        /// </summary>
        /// <param name="resource">The <see cref="OrbitalLogisticsResource"/> to transfer from the source <see cref="Vessel"/>.</param>
        /// <param name="amount">The amount to transfer to the destination <see cref="Vessel"/>.</param>
        /// <returns></returns>
        public OrbitalLogisticsTransferRequestResource AddResource(OrbitalLogisticsResource resource, double amount)
        {
            // Determine if requested transfer amount is feasible
            double available = resource.GetAvailableAmount();

            if (amount > available)
            {
                amount = available;
            }

            // Check if there is already a transfer setup for the selected resource
            var transferResource = ResourceRequests.Where(r => r.ResourceDefinition.id == resource.ResourceDefinition.id).SingleOrDefault();

            if (transferResource == null)
            {
                // Add the resource to the transfer request
                transferResource = new OrbitalLogisticsTransferRequestResource(resource.ResourceDefinition, amount);
                ResourceRequests.Add(transferResource);
            }
            else
            {
                transferResource.TransferAmount = amount;
            }

            // Update duration
            CalculateDuration();

            return(transferResource);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Serializes the object to JSON.
 /// </summary>
 /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param>
 /// <param name="obj">The object to serialize to JSON.</param>
 internal static void Serialize(JsonWriter writer, ResourceRequests obj)
 {
     // Required properties are always serialized, optional properties are serialized when not null.
     writer.WriteStartObject();
     writer.WriteProperty(obj.MemoryInGB, "memoryInGB", JsonWriterExtensions.WriteDoubleValue);
     writer.WriteProperty(obj.Cpu, "cpu", JsonWriterExtensions.WriteDoubleValue);
     writer.WriteEndObject();
 }
        /// <summary>
        /// Implementation of <see cref="IConfigNode.Load(ConfigNode)"/>.
        /// </summary>
        /// <param name="node"></param>
        public void Load(ConfigNode node)
        {
            ConfigNode.LoadObjectFromConfig(this, node);

            if (ResourceRequests == null)
            {
                ResourceRequests = new List <OrbitalLogisticsTransferRequestResource>();
            }

            foreach (ConfigNode subNode in node.nodes)
            {
                ResourceRequests.Add(ConfigNode.CreateObjectFromConfig <OrbitalLogisticsTransferRequestResource>(subNode));
            }
        }
        public HolidayResponseSync AddResourceHolidaySync(HolidayRequestSync model, int tenantId, int userId)
        {
            var request = new ResourceRequests();

            request.RequestedDate = model.RequestedDate;
            request.AllDay        = model.IsAllDay == true;
            request.HolidayReason = model.HolidayReason;
            request.StartDate     = model.StartDate;
            request.EndDate       = model.EndDate;
            request.ResourceId    = _userService.GetResourceIdByUserId(userId);
            request.RequestType   = ResourceRequestTypesEnum.AnnualHoliday;
            request.RequestStatus = ResourceRequestStatusEnum.Created;
            request.DateCreated   = DateTime.UtcNow;
            _currentDbContext.ResourceHolidays.Add(request);
            request.TenantId  = tenantId;
            request.CreatedBy = userId;
            _currentDbContext.SaveChanges();

            var response = new HolidayResponseSync();

            Mapper.Map(model, response);
            return(response);
        }
Exemplo n.º 5
0
        private static async Task Create10Instances(ContainerInstanceManagementClient client, string containerGroup, string location, int flag, string guid)
        {
            var resources = new ResourceRequirements();
            var request   = new ResourceRequests();

            request.Cpu        = 0.2;
            request.MemoryInGB = 0.3; // once I tried 0.1 it cause a long execution time.

            resources.Requests = request;

            var list = new List <Container>();

            for (int i = 0; i < 5; i++)
            {
                if (flag == 0)
                {
                    list.Add(CreateClientContainer("DOCKERHUB_NAME/client", i, resources, $"{guid}-{i}"));
                }
                else
                {
                    list.Add(CreateSpamerContainer("DOCKERHUB_NAME/spamer", i, resources, $"{guid}-{i}"));
                }
            }


            await client.ContainerGroups.CreateOrUpdateAsync(resourceGroup, containerGroup,
                                                             new ContainerGroup()
            {
                Containers    = list,
                Location      = location,
                OsType        = "Linux",
                RestartPolicy = "Never"       // try not to emit the message by restarting
            }
                                                             );

            Console.WriteLine($"Done for {containerGroup}");
        }