These kind of tasks in C# are almost the same - you can solve them by finding similar logic.
...and here are my screenshots for the half beer:


And here is my CODE:
using System;
class Summertime
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
Console.WriteLine("{0}{1}{0}",
new string((' '), ((2 * n) - (n + 1)) / 2),
new string(('*'), n + 1));
for (int i = 0; i < n / 2 + 1; i++)//0,1,2;
{
Console.WriteLine("{0}*{1}*{0}",
new string((' '), ((2 * n) - (n + 1)) / 2),
new string((' '), (n + 1) - 2));
}
for (int i = 0; i < n / 2 - 1; i++)//0,1,2
{
Console.WriteLine("{0}*{1}*{0}",
new string((' '), n / 2 - i - 1),
new string((' '), n + 1 + 2 * i));
}
for (int i = 0; i < n; i++)
{
Console.WriteLine("*{0}*",
new string(('.'), (2 * n - 2)));
}
for (int i = 0; i < n; i++)
{
Console.WriteLine("*{0}*",
new string(('@'), (2 * n - 2)));
}
Console.WriteLine("{0}",
new string(('*'), 2 * n));
}
}