示例#1
0
 public OverlayCalendar(OverlaySettings settings)
 {
     _settings = settings;
 }
示例#2
0
        static int Main(string[] args)
        {
            if (args.Length < 1)
            {
                Usage();
                return 1;
            }

            var settings = new OverlaySettings();
            var q = new Queue<string>(args);
            while (q.Count > 0)
            {
                var arg = q.Dequeue();
                if (string.IsNullOrWhiteSpace(arg)) continue;

                if (arg[0] == '/')
                {
                    if (arg == "/?")
                    {
                        Usage();
                        return 0;
                    }

                    if (arg.StartsWith("/font:"))
                        settings.FontFamily = arg.Substring("/font:".Length);

                    else if (arg.StartsWith("/culture:"))
                        settings.Culture = arg.Substring("/culture:".Length);

                    else if (arg.StartsWith("/workdays:"))
                    {
                        var t = arg.Substring("/workdays:".Length);
                        int x;
                        if(int.TryParse(t, out x))
                            settings.WorkDays = x;
                    }

                    else if(arg.StartsWith("/offset:"))
                    {
                        var t = arg.Substring("/offset:".Length);
                        int x;
                        if (int.TryParse(t, out x))
                            settings.VerticalOffset = x;
                    }

                    else if (arg.StartsWith("/year:"))
                    {
                        var t = arg.Substring("/year:".Length);
                        settings.WholeYear = true;
                        int x;
                        if (int.TryParse(t, out x))
                            settings.Year = x;
                    }

                    else if (arg.StartsWith("/month:"))
                    {
                        var t = arg.Substring("/month:".Length);
                        if (t == "*")
                            settings.Month = null;
                        else
                        {
                            int x;
                            if (int.TryParse(t, out x))
                                settings.Month = x;
                        }
                    }

                    else if (arg.StartsWith("/out:"))
                    {
                        var t = arg.Substring("/out:".Length);
                        settings.OutputFileName = t;
                    }

                    else
                    {
                        Log.Warning("Unknown flag: {0}", arg);
                    }
                }
                else
                {
                    if (settings.Filename == null)
                        settings.Filename = arg;
                }
            }

            var overlay = new OverlayCalendar(settings);
            try
            {
                return overlay.Apply();
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return 255;
            }
        }