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()); }
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); }
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); }
public void get_producer_schedule([ArgRequired] BaseArguments args) { OutputJson(ChainAPIProvider.GetInstance(args.host.AbsoluteUri).GetProducerSchedule()); }
public void get_info([ArgRequired] BaseArguments args) { OutputJson(ChainAPIProvider.GetInstance(args.host.AbsoluteUri).GetInfo()); }
public override void ResolveNames(Scope scope) { Parameters?.ForEach(x => x.ResolveNames(scope)); BaseArguments?.ForEach(x => x.ResolveNames(scope)); Body?.ResolveNames(new Scope(scope)); }