public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append($"{AccessibilityLevel} ");
            sb.Append($"{ClassName} (");
            sb.Append(String.Join(", ", Arguments.Select(x => x.ToString())));
            sb.Append(")");
            if (BaseArguments.Count > 0)
            {
                sb.Append(" : base(");
                sb.Append(String.Join(", ", BaseArguments.Select(x => x.ArgumentName)));
                sb.Append(")");
            }
            else if (ThisArguments.Count > 0)
            {
                sb.Append(" : this(");
                sb.Append(String.Join(", ", ThisArguments.Select(x => x.ArgumentName)));
                sb.Append(")");
            }
            sb.AppendLine();

            sb.AppendLine("{");
            Lines.ForEach((l) => sb.AppendLine($"\t{l}"));
            sb.AppendLine("}");
            return(sb.ToString());
        }
Example #2
0
        public override Type CheckTypes()
        {
            //TODO base ctor call
            BaseArguments?.ForEach(x => x.CheckTypes());
            Body?.CheckTypes();

            return(null);
        }
        private static void TrackLaunch(BaseArguments args, LaunchSurface launchSurface, string action)
        {
            if (launchSurface == LaunchSurface.Uri || launchSurface == LaunchSurface.Normal)
            {
                if (args != null)
                {
                    launchSurface = args.LaunchSurface;
                }
            }

            if (launchSurface != LaunchSurface.Normal)
            {
                TelemetryExtension.Current?.TrackEvent($"Launch_From{launchSurface}_{action}");
            }
        }
        public SGClassConstructor WithBaseConstructorArguments(params SGArgument[] baseCtorArgs)
        {
            if (baseCtorArgs.Any(x => x == null))
            {
                throw new ArgumentException("Base Constructor Arguments cannot be null.");
            }

            if (ThisArguments.Count > 0)
            {
                throw new Exception("Cannot specify both Base constructor arguments and This constructor arguments.");
            }

            BaseArguments.AddRange(baseCtorArgs);
            return(this);
        }
        private static NotificationCompat.Builder CreateReminderBuilder(Context context, Guid localAccountId, BaseArguments launchArgs)
        {
            Intent intent = new Intent(context, typeof(MainActivity))
                            .SetAction(Intent.ActionView)
                            .SetData(Android.Net.Uri.Parse("powerplanner:?" + launchArgs.SerializeToString()));

            var pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.UpdateCurrent);

            // By setting SDK target to 21 or higher, the logo will automatically become white on the system tray,
            // and will use the color specified when displayed in the notification itself
            var builder = new NotificationCompat.Builder(context)
                          .SetSmallIcon(Resource.Drawable.ic_powerplanner_notification)
                          .SetColor(new Color(55, 84, 198).ToArgb()) // #3754C6 (a bit more vibrant than my other theme colors)
                          .SetCategory(Notification.CategoryReminder)
                          .SetContentIntent(pendingIntent)
                          .SetShowWhen(false)
                          .SetOnlyAlertOnce(true)
                          .SetAutoCancel(true);

            if (Android.OS.Build.VERSION.SdkInt >= BuildVersionCodes.LollipopMr1)
            {
                // High priority causes the popup banner to appear
                builder.SetPriority((int)NotificationPriority.High);
            }

            return(builder);
        }
Example #6
0
        public static BaseArguments Parse(string queryString)
        {
            QueryString qs = QueryString.Parse(queryString);

            string          val;
            ArgumentsAction action = ArgumentsAction.Unknown;

            if (!(qs.TryGetValue(KEY_ACTION, out val) && Enum.TryParse(val, out action)))
            {
                return(null);
            }

            BaseArguments answer = null;

            switch (action)
            {
            case ArgumentsAction.ViewPage:
                answer = new ViewPageArguments();
                break;

            case ArgumentsAction.ViewSchedule:
                answer = new ViewScheduleArguments();
                break;

            case ArgumentsAction.ViewClass:
                answer = new ViewClassArguments();
                break;

            case ArgumentsAction.QuickAdd:
                answer = new QuickAddArguments();
                break;

            case ArgumentsAction.QuickAddToCurrentAccount:
                answer = new QuickAddToCurrentAccountArguments();
                break;

            case ArgumentsAction.QuickAddHomeworkToCurrentAccount:
                answer = new QuickAddHomeworkToCurrentAccountArguments();
                break;

            case ArgumentsAction.QuickAddExamToCurrentAccount:
                answer = new QuickAddExamToCurrentAccountArguments();
                break;

            case ArgumentsAction.OpenAccount:
                answer = new OpenAccountArguments();
                break;

            case ArgumentsAction.ViewHomework:
                answer = new ViewHomeworkArguments();
                break;

            case ArgumentsAction.ViewExam:
                answer = new ViewExamArguments();
                break;

            case ArgumentsAction.ViewHoliday:
                answer = new ViewHolidayArguments();
                break;
            }

            if (answer != null)
            {
                if (answer.TryParse(qs))
                {
                    return(answer);
                }
            }

            return(null);
        }
Example #7
0
 public void get_producer_schedule([ArgRequired] BaseArguments args)
 {
     OutputJson(ChainAPIProvider.GetInstance(args.host.AbsoluteUri).GetProducerSchedule());
 }
Example #8
0
 public void get_info([ArgRequired] BaseArguments args)
 {
     OutputJson(ChainAPIProvider.GetInstance(args.host.AbsoluteUri).GetInfo());
 }
Example #9
0
 public override void ResolveNames(Scope scope)
 {
     Parameters?.ForEach(x => x.ResolveNames(scope));
     BaseArguments?.ForEach(x => x.ResolveNames(scope));
     Body?.ResolveNames(new Scope(scope));
 }