示例#1
0
        public string ShowStatus(out bool success, out string exceptionString)
        {
            string table = Settings.TableHeaders.Length >= 4 ? $"{Settings.TableHeaders[0],-Settings.ColumnWidth}{Settings.TableHeaders[1],-Settings.ColumnWidth}{Settings.TableHeaders[2],-Settings.ColumnWidth}{Settings.TableHeaders[3],-Settings.ColumnWidth}" : "";
            var    sites = DataFunctions.GetSites(true, true, out success, out exceptionString);

            if (!success)
            {
                return(exceptionString);
            }
            foreach (var site in sites)
            {
                var hangars = DataFunctions.GetHangars(site.id, true, true, out success, out exceptionString);
                if (!success)
                {
                    return(exceptionString);
                }
                foreach (var hangar in hangars)
                {
                    table += Environment.NewLine + $"{hangar.site_id,-Settings.ColumnWidth}{hangar.id,-Settings.ColumnWidth}{hangar.capacity,-Settings.ColumnWidth}{hangar.fullness,-Settings.ColumnWidth}";
                }
            }
            return(table);
        }
示例#2
0
        ushort Place(ushort N, out bool success, out string exceptionString, bool emptySites = false, bool emptyHangars = false)
        {
            if (N == 0)
            {
                success         = true;
                exceptionString = null;
                return(0);
            }
            var sites = DataFunctions.GetSites(emptySites, true, out success, out exceptionString);

            if (!success)
            {
                return(N);
            }
            for (int i = 0; i < sites.Count && N > 0; i++)
            {
                var hangars = DataFunctions.GetHangars(sites[i].id, emptyHangars, false, out success, out exceptionString);
                if (!success)
                {
                    return(N);
                }
                for (int j = 0; j < hangars.Count && N > 0; j++)
                {
                    ushort hN       = Math.Min((ushort)(hangars[j].capacity - hangars[j].fullness), N);
                    bool   modified = DataFunctions.ModifyHangar(hangars[j].id, hN, out success, out exceptionString);
                    if (!success)
                    {
                        return(N);
                    }
                    if (modified)
                    {
                        N -= hN;
                    }
                }
            }
            return(N);
        }