Download Logo

Strings (Ch. 5)

C# String & string Manipulation String Basics In C#, a string is a sequence of characters stored as a single data type. Strings are immutable, meaning any operation that appears to modify a string actually creates a new string. string and String both can be used to represent string bath are same string preffered. String Concatenation Concatenation is the process of combining two or more strings into one. You can use the + operator to concatenate strings. ...

June 19, 2024 · 3 min · 633 words · PrashantUnity
Download Logo

YouTube API updates

YouTube Data API Sample in .NET Interactive Notebooks This sample demonstrates how to use the YouTube Data API to update video metadata (title, description, tags, etc.) in bulk using .NET Interactive Notebooks. It covers OAuth2 authentication, fetching uploaded videos, generating new metadata using an AI model, and updating the videos via the API. Get Gemini API Key Google Cloud Console for creating secret credentials 1 2 #r "nuget: Google.Apis.YouTube.v3" #r "nuget: Google.Apis.Auth" This cell loads the NuGet package references required to use the YouTube Data API and Google authentication in a polyglot/.NET Interactive notebook. ...

December 23, 2025 · 5 min · 978 words · PrashantUnity
Download Logo

QR codes in .NET

Generate QR Code in .NET Applications This comprehensive guide demonstrates how to create beautiful, customizable QR codes in .NET applications. We’ll build a QR code generator with advanced features including: Gradient coloring - Apply color gradients to QR code modules Rounded dots - Replace standard squares with rounded circles for a modern look Center logo - Embed logos with automatic sizing and contrast enhancement Footer text - Add descriptive text below the QR code UPI payment integration - Generate UPI URIs for Indian payment systems High error correction - Ensure QR codes remain scannable even with partial obstruction Base64 encoding - Easy embedding in web applications and documents Prerequisites You’ll need: ...

November 16, 2025 · 11 min · 2319 words · PrashantUnity
Download Logo

Auto carousel in MAUI

## 1. Create the Reusable Component Files 🧱 First, add a new item to your project. Choose the .NET MAUI ContentView (XAML) template. Name it something descriptive, like FeaturedCarouselView.xaml. ## 2. UI code sample of the ContentView FeaturedCarouselView.xaml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 <?xml version="1.0" encoding="utf-8" ?> <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:YourMauiProjectName" x:Class="YourMauiProjectName.FeaturedCarouselView"> <ContentView.Resources> <ResourceDictionary> <Color x:Key="CardBackgroundColor">#F9FAFB</Color> <Color x:Key="ForegroundColor">#111827</Color> <Color x:Key="MutedForegroundColor">#6B7280</Color> <Color x:Key="BorderColor">#E5E7EB</Color> <Color x:Key="PrimaryColor">#4A90E2</Color> <Style x:Key="CardBorderStyle" TargetType="Border"> <Setter Property="Stroke" Value="{StaticResource BorderColor}" /> <Setter Property="StrokeThickness" Value="1" /> <Setter Property="BackgroundColor" Value="{StaticResource PageBackgroundColor}" /> <Setter Property="StrokeShape" Value="RoundRectangle 8" /> <Setter Property="Padding" Value="0" /> <Setter Property="Shadow"> <Shadow Brush="Black" Offset="2,2" Radius="5" Opacity="0.1" /> </Setter> </Style> <Style x:Key="PrimaryButtonStyle" TargetType="Button"> <Setter Property="BackgroundColor" Value="{StaticResource PrimaryColor}" /> <Setter Property="TextColor" Value="{StaticResource PrimaryTextColor}" /> <Setter Property="FontAttributes" Value="Bold" /> <Setter Property="HeightRequest" Value="48" /> <Setter Property="CornerRadius" Value="8" /> <Setter Property="Padding" Value="24,0" /> </Style> </ResourceDictionary> </ContentView.Resources> <VerticalStackLayout Spacing="16" BackgroundColor="{StaticResource CardBackgroundColor}"> <CarouselView x:Name="FeaturedCarousel" IndicatorView="FeaturedIndicator" HeightRequest="500"> <CarouselView.ItemTemplate> <DataTemplate x:DataType="local:CarouselItem"> <VerticalStackLayout Padding="16,0" Spacing="24"> <Border Style="{StaticResource CardBorderStyle}" StrokeShape="RoundRectangle 12" HeightRequest="300"> <Image Source="{Binding ImageUrl}" Aspect="AspectFill" /> </Border> <VerticalStackLayout Spacing="16" HorizontalOptions="Center" Padding="16,0"> <Label Text="{Binding Title}" TextColor="{StaticResource ForegroundColor}" FontSize="24" FontAttributes="Bold" HorizontalTextAlignment="Center" /> <Label Text="{Binding Description}" TextColor="{StaticResource MutedForegroundColor}" FontSize="16" HorizontalTextAlignment="Center" /> <Button Text="Discover More →" Style="{StaticResource PrimaryButtonStyle}" HorizontalOptions="Center" /> </VerticalStackLayout> </VerticalStackLayout> </DataTemplate> </CarouselView.ItemTemplate> </CarouselView> <IndicatorView x:Name="FeaturedIndicator" IndicatorColor="{StaticResource BorderColor}" SelectedIndicatorColor="{StaticResource PrimaryColor}" HorizontalOptions="Center" Margin="0,0,0,16"/> </VerticalStackLayout> </ContentView> ## 3. Logic to the Component’s Code-Behind Important: We use the Loaded and Unloaded events to start and stop the timer. ...

June 23, 2025 · 3 min · 523 words · PrashantUnity
Download Logo

Entry without underline

Create Custom Entry Control 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 namespace WaterReminder.CFDControl; public class CfdEntry :Entry { protected override void OnHandlerChanged() { base.OnHandlerChanged(); SetBorderlessBackground(); } protected override void OnPropertyChanged([CallerMemberName] string propertyName = null) { base.OnPropertyChanged(propertyName); if (propertyName == nameof(BackgroundColor)) { SetBorderlessBackground(); } } private void SetBorderlessBackground() { #if ANDROID if (Handler is IEntryHandler entryHandler) { if (BackgroundColor == null) { entryHandler.PlatformView.BackgroundTintList = Android.Content.Res.ColorStateList.ValueOf(Colors.Transparent.ToPlatform()); } else { entryHandler.PlatformView.BackgroundTintList = Android.Content.Res.ColorStateList.ValueOf(BackgroundColor.ToPlatform()); } } #endif } } Step uses Import Name Spaces. in Xaml and so on … ...

June 19, 2025 · 2 min · 253 words · PrashantUnity
Download Logo

Floating action button

Code Snippet 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <AbsoluteLayout> <Grid AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All" > <Grid> <Border StrokeShape="RoundRectangle 30" HeightRequest="60" WidthRequest="60" BackgroundColor="Black" AbsoluteLayout.LayoutBounds="1, 1, AutoSize, AutoSize" AbsoluteLayout.LayoutFlags="PositionProportional" TranslationX="-30" TranslationY="-30" > <Border.GestureRecognizers> <TapGestureRecognizer Tapped="AddButton_Clicked" /> </Border.GestureRecognizers> <Label Text="➕" TextColor="White" VerticalOptions="Center" HorizontalOptions="Center" FontSize="25"/> </Border> </AbsoluteLayout>

June 19, 2025 · 1 min · 60 words · PrashantUnity
Download Logo

SQLite in MAUI

Implementation Steps Install/ Add Microsoft.EntityFrameworkCore.Sqlite to Project 1 <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.7" /> Register App db Context before var app = builder.Build(); in MauiProgram.cs 1 2 3 var dbPath = Path.Combine(FileSystem.AppDataDirectory, "waterreminder.db3"); builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlite($"Filename={dbPath}")); Just Before app run add this Command 1 2 3 4 5 6 7 8 // Initialize the database using (var scope = app.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); dbContext.Database.EnsureCreated(); } return app; Create Add Db Context 1 2 3 4 5 6 namespace WaterReminder.Data; public class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options) { public DbSet<Reminder> Reminders { get; set; } } Below is service or uses 1 2 3 4 5 6 7 8 9 10 11 public class ReminderService : IReminderService { private readonly AppDbContext _context; public ReminderService(AppDbContext context) { _context = context; } public Task<List<Reminder>> GetRemindersAsync() => _context.Reminders.ToListAsync(); }

June 19, 2025 · 1 min · 134 words · PrashantUnity
Download Logo

Giscus in Blazor

Giscus Script Configuration Be sure To Change Parameter value Based on you Generation from here https://giscus.app/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <script src="https://giscus.app/client.js" data-repo="PrashantUnity/GettingStarted" data-repo-id="R_kgDOKzC5Hw" data-category="General" data-category-id="DIC_kwDOKzC5H84CdPDh" data-mapping="specific" data-term=" GettingStarted Discussions" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="top" data-theme="light" data-lang="en" data-loading="lazy" crossorigin="anonymous" async> </script> Above Code is Coverted to be usable in Blazor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 @using Microsoft.AspNetCore.Components @if (Script != null) { <div> @Script </div> } @code { #region Parameter // change only commented section [Parameter] public string InputPosition { get; set; } = "top"; [Parameter] public string Term { get; set; } = "GettingStarted Discussions"; // name anything it will create one one discussion based on name [Parameter] public string Repo { get; set; } = "PrashantUnity/GettingStarted"; // your repository name [Parameter] public string RepoId { get; set; } = "R_kgDOKzC5Hw"; // this is generated by giscus website only one time creation required for one repo #endregion public string Category { get; set; } = "General"; public string CategoryId { get; set; } = "DIC_kwDOKzC5H84CdPDh"; // this is generateeed by giscus website only one time creation required for one repo public string Mapping { get; set; } = "specific"; public bool ReactionsEnabled { get; set; } = true; public string Theme { get; set; } = "light"; public string Language { get; set; } = "en"; public string Loading { get; set; } = "lazy"; public string EmitMetadata { get; set; } = "0"; public string Strict { get; set; } = "0"; private RenderFragment Script { get; set; } protected override void OnParametersSet() { Script = new RenderFragment(b => { b.OpenElement(0, "script"); b.AddMultipleAttributes(1, new List<KeyValuePair<string, object>>() { new KeyValuePair<string, object>("src", "https://giscus.app/client.js"), new KeyValuePair<string, object>("data-repo", Repo), new KeyValuePair<string, object>("data-repo-id", RepoId), new KeyValuePair<string, object>("data-category", Category), new KeyValuePair<string, object>("data-category-id", CategoryId), new KeyValuePair<string, object>("data-mapping", Mapping), new KeyValuePair<string, object>("data-term", Term), new KeyValuePair<string, object>("data-strict", Strict), new KeyValuePair<string, object>("data-reactions-enabled", ReactionsEnabled ? "1" : "0"), new KeyValuePair<string, object>("data-emit-metadata", EmitMetadata), new KeyValuePair<string, object>("data-input-position", InputPosition), new KeyValuePair<string, object>("data-theme", Theme), new KeyValuePair<string, object>("data-lang", Language), new KeyValuePair<string, object>("data-loading", Loading), new KeyValuePair<string, object>("crossorigin", "anonymous"), new KeyValuePair<string, object>("async", true), }); b.CloseElement(); }); } } Uses 1 <GiscusIntegration />

July 12, 2024 · 2 min · 417 words · PrashantUnity
Download Logo

If / else (Ch. 6)

C# Conditional Statements and Control Flow Example: If-Else Statement Here is an example that demonstrates the use of if, else if, and else statements to check the value of a variable and print corresponding messages. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int number = 10; if (number > 10) { Console.WriteLine("The number is greater than 10"); } else if (number == 10) { Console.WriteLine("The number is equal to 10"); } else { Console.WriteLine("The number is less than 10"); } Explanation If Statement ...

June 20, 2024 · 3 min · 553 words · PrashantUnity
Download Logo

Loops (Ch. 7)

Understanding Loops in C# Loops are fundamental programming constructs that allow you to execute a block of code repeatedly. They’re essential for: Processing collections of data Repeating operations until a condition is met Automating repetitive tasks Iterating through arrays and lists Think of loops as a way to tell the computer: “Do this task over and over again until I tell you to stop.” Types of Loops in C# C# provides four main types of loops: ...

June 19, 2024 · 15 min · 3098 words · PrashantUnity