Getting Housewives, Quotes, and Quotes from specific Housewives!
This commit is contained in:
parent
70f2b7a234
commit
f6d7f90287
|
@ -0,0 +1,100 @@
|
||||||
|
using Housewives.Api.Entities;
|
||||||
|
using Housewives.Api.Extensions;
|
||||||
|
using Housewives.Api.Repositories.Contracts;
|
||||||
|
using Housewives.Models.Dtos;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace Housewives.Api.Controllers
|
||||||
|
{
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class HousewifeController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly IHousewifeRepository housewifeRepository;
|
||||||
|
|
||||||
|
public HousewifeController(IHousewifeRepository housewifeRepository)
|
||||||
|
{
|
||||||
|
this.housewifeRepository = housewifeRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<ActionResult<IEnumerable<HousewifeDto>>> GetHousewives()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var housewives = await this.housewifeRepository.GetHousewives();
|
||||||
|
var quotes = await this.housewifeRepository.GetQuotes();
|
||||||
|
|
||||||
|
if (housewives == null || quotes == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var housewifeDtos = housewives.ConvertToDto();
|
||||||
|
return Ok(housewifeDtos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError,
|
||||||
|
"Error retrieving data from the database");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[Route(nameof(GetQuotes))]
|
||||||
|
public async Task<ActionResult<IEnumerable<QuoteDto>>> GetQuotes()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var housewives = await this.housewifeRepository.GetHousewives();
|
||||||
|
var quotes = await this.housewifeRepository.GetQuotes();
|
||||||
|
|
||||||
|
if (housewives == null || quotes == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var quoteDtos = quotes.ConvertToDto();
|
||||||
|
return Ok(quoteDtos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError,
|
||||||
|
"Error retrieving data from the database");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("GetQuotesByHousewife")]
|
||||||
|
public async Task<ActionResult<IEnumerable<QuoteDto>>> GetQuotesById(int housewifeId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var quotes = await this.housewifeRepository.GetQuotesById(housewifeId);
|
||||||
|
|
||||||
|
if (quotes == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var quoteDtos = quotes.ConvertToDto();
|
||||||
|
return Ok(quoteDtos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError,
|
||||||
|
"Error retrieving data from the database");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,33 +0,0 @@
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
|
|
||||||
namespace Housewives.Api.Controllers
|
|
||||||
{
|
|
||||||
[ApiController]
|
|
||||||
[Route("[controller]")]
|
|
||||||
public class WeatherForecastController : ControllerBase
|
|
||||||
{
|
|
||||||
private static readonly string[] Summaries = new[]
|
|
||||||
{
|
|
||||||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
|
||||||
};
|
|
||||||
|
|
||||||
private readonly ILogger<WeatherForecastController> _logger;
|
|
||||||
|
|
||||||
public WeatherForecastController(ILogger<WeatherForecastController> logger)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpGet(Name = "GetWeatherForecast")]
|
|
||||||
public IEnumerable<WeatherForecast> Get()
|
|
||||||
{
|
|
||||||
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
|
||||||
{
|
|
||||||
Date = DateTime.Now.AddDays(index),
|
|
||||||
TemperatureC = Random.Shared.Next(-20, 55),
|
|
||||||
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
|
|
||||||
})
|
|
||||||
.ToArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -41,7 +41,7 @@ namespace Housewives.Api.Data
|
||||||
modelBuilder.Entity<Housewife>().HasData(new Housewife
|
modelBuilder.Entity<Housewife>().HasData(new Housewife
|
||||||
{
|
{
|
||||||
Id = 4,
|
Id = 4,
|
||||||
Name = "Heathere Gay",
|
Name = "Heather Gay",
|
||||||
Series = "The Real Housewives of Salt Lake City",
|
Series = "The Real Housewives of Salt Lake City",
|
||||||
ImageUrl = "https://static.wikia.nocookie.net/realitytv-girl/images/4/42/Heather_Gay.jpg/revision/latest?cb=20210509144203"
|
ImageUrl = "https://static.wikia.nocookie.net/realitytv-girl/images/4/42/Heather_Gay.jpg/revision/latest?cb=20210509144203"
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
using Housewives.Api.Entities;
|
||||||
|
using Housewives.Models.Dtos;
|
||||||
|
|
||||||
|
namespace Housewives.Api.Extensions
|
||||||
|
{
|
||||||
|
public static class DtoConversions
|
||||||
|
{
|
||||||
|
public static IEnumerable<HousewifeDto> ConvertToDto(this IEnumerable<Housewife> housewives)
|
||||||
|
{
|
||||||
|
return (from housewife in housewives
|
||||||
|
select new HousewifeDto
|
||||||
|
{
|
||||||
|
Id = housewife.Id,
|
||||||
|
Name = housewife.Name,
|
||||||
|
Series = housewife.Series,
|
||||||
|
ImageUrl = housewife.ImageUrl
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
public static IEnumerable<QuoteDto> ConvertToDto(this IEnumerable<Quote> quotes)
|
||||||
|
{
|
||||||
|
return (from quote in quotes
|
||||||
|
select new QuoteDto
|
||||||
|
{
|
||||||
|
Id = quote.Id,
|
||||||
|
HousewifeId = quote.HousewifeId,
|
||||||
|
Phrase = quote.Phrase,
|
||||||
|
Season = quote.Season,
|
||||||
|
Episode = quote.Episode
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
@ -15,4 +15,8 @@
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Housewives.Models\Housewives.Models.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -0,0 +1,188 @@
|
||||||
|
// <auto-generated />
|
||||||
|
using Housewives.Api.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Housewives.Api.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(HousewivesDbContext))]
|
||||||
|
[Migration("20220916234005_FixedName")]
|
||||||
|
partial class FixedName
|
||||||
|
{
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "6.0.8")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||||
|
|
||||||
|
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
|
||||||
|
|
||||||
|
modelBuilder.Entity("Housewives.Api.Entities.Housewife", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
|
||||||
|
|
||||||
|
b.Property<string>("ImageUrl")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Series")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Housewives");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
ImageUrl = "https://i.dailymail.co.uk/1s/2022/06/02/08/58580139-10877237-image-a-10_1654154206127.jpg",
|
||||||
|
Name = "Chanel Ayan",
|
||||||
|
Series = "The Real Housewives of Dubai"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
ImageUrl = "https://imgix.bustle.com/uploads/image/2022/6/1/7cbf222b-98cf-4c0b-9643-483ef07f19b9-nup_196331_01313.JPG?w=800&fit=crop&crop=focalpoint&auto=format%2Ccompress&fp-x=0.5787&fp-y=0.22",
|
||||||
|
Name = "Sara Al Madani",
|
||||||
|
Series = "The Real Housewives of Dubai"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
ImageUrl = "https://www.bravotv.com/sites/bravo/files/media_mpx/thumbnails/bravo-video.nbcuni.com/image/NBCU_Bravo/561/911/161202_3434774_This_Is_How_Dorit_and_Lisa_Vanderpump_Became.jpg",
|
||||||
|
Name = "Lisa Vanderpump",
|
||||||
|
Series = "The Real Housewives of Beverly Hills"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 4,
|
||||||
|
ImageUrl = "https://static.wikia.nocookie.net/realitytv-girl/images/4/42/Heather_Gay.jpg/revision/latest?cb=20210509144203",
|
||||||
|
Name = "Heather Gay",
|
||||||
|
Series = "The Real Housewives of Salt Lake City"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Housewives.Api.Entities.Quote", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
|
||||||
|
|
||||||
|
b.Property<int>("Episode")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("HousewifeId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Phrase")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<int>("Season")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Quotes");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
Episode = 9,
|
||||||
|
HousewifeId = 1,
|
||||||
|
Phrase = "But I'm going to enjoy my life just like I was born today.",
|
||||||
|
Season = 1
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
Episode = 11,
|
||||||
|
HousewifeId = 1,
|
||||||
|
Phrase = "Be careful who you surround yourself with. You might pick their fashion sense.",
|
||||||
|
Season = 1
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
Episode = 3,
|
||||||
|
HousewifeId = 2,
|
||||||
|
Phrase = "You're bleeding on people who did not cut you.",
|
||||||
|
Season = 1
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 4,
|
||||||
|
Episode = 0,
|
||||||
|
HousewifeId = 3,
|
||||||
|
Phrase = "I'm passionate about dogs, just not about crazy bitches.",
|
||||||
|
Season = 6
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 5,
|
||||||
|
Episode = 0,
|
||||||
|
HousewifeId = 3,
|
||||||
|
Phrase = "Life isn't all diamonds and rose, but it should be.",
|
||||||
|
Season = 3
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 6,
|
||||||
|
Episode = 4,
|
||||||
|
HousewifeId = 4,
|
||||||
|
Phrase = "For me, the fairytale is the be seen for exactly who I am, and to still be loved.",
|
||||||
|
Season = 1
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Housewives.Api.Entities.Tag", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"), 1L, 1);
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Tags");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
Name = "Advice"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
Name = "Funny"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Housewives.Api.Migrations
|
||||||
|
{
|
||||||
|
public partial class FixedName : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.UpdateData(
|
||||||
|
table: "Housewives",
|
||||||
|
keyColumn: "Id",
|
||||||
|
keyValue: 4,
|
||||||
|
column: "Name",
|
||||||
|
value: "Heather Gay");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.UpdateData(
|
||||||
|
table: "Housewives",
|
||||||
|
keyColumn: "Id",
|
||||||
|
keyValue: 4,
|
||||||
|
column: "Name",
|
||||||
|
value: "Heathere Gay");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -71,7 +71,7 @@ namespace Housewives.Api.Migrations
|
||||||
{
|
{
|
||||||
Id = 4,
|
Id = 4,
|
||||||
ImageUrl = "https://static.wikia.nocookie.net/realitytv-girl/images/4/42/Heather_Gay.jpg/revision/latest?cb=20210509144203",
|
ImageUrl = "https://static.wikia.nocookie.net/realitytv-girl/images/4/42/Heather_Gay.jpg/revision/latest?cb=20210509144203",
|
||||||
Name = "Heathere Gay",
|
Name = "Heather Gay",
|
||||||
Series = "The Real Housewives of Salt Lake City"
|
Series = "The Real Housewives of Salt Lake City"
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
using Housewives.Api.Data;
|
using Housewives.Api.Data;
|
||||||
|
using Housewives.Api.Repositories;
|
||||||
|
using Housewives.Api.Repositories.Contracts;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
@ -15,6 +17,8 @@ builder.Services.AddDbContextPool<HousewivesDbContext>(options =>
|
||||||
options.UseSqlServer(builder.Configuration.GetConnectionString("HousewivesConnection"))
|
options.UseSqlServer(builder.Configuration.GetConnectionString("HousewivesConnection"))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
builder.Services.AddScoped<IHousewifeRepository, HousewifeRepository>();
|
||||||
|
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
using Housewives.Api.Entities;
|
||||||
|
|
||||||
|
namespace Housewives.Api.Repositories.Contracts
|
||||||
|
{
|
||||||
|
public interface IHousewifeRepository
|
||||||
|
{
|
||||||
|
Task<IEnumerable<Housewife>> GetHousewives();
|
||||||
|
Task<IEnumerable<Quote>> GetQuotes();
|
||||||
|
Task<IEnumerable<Quote>> GetQuotesById(int housewifeId);
|
||||||
|
|
||||||
|
Task<Housewife> GetHousewife(int id);
|
||||||
|
Task<Quote> GetQuote(int id);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
using Housewives.Api.Data;
|
||||||
|
using Housewives.Api.Entities;
|
||||||
|
using Housewives.Api.Repositories.Contracts;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace Housewives.Api.Repositories
|
||||||
|
{
|
||||||
|
public class HousewifeRepository : IHousewifeRepository
|
||||||
|
{
|
||||||
|
private readonly HousewivesDbContext housewivesDbContext;
|
||||||
|
|
||||||
|
public HousewifeRepository(HousewivesDbContext housewivesDbContext)
|
||||||
|
{
|
||||||
|
this.housewivesDbContext = housewivesDbContext;
|
||||||
|
}
|
||||||
|
public Task<Housewife> GetHousewife(int id)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<Housewife>> GetHousewives()
|
||||||
|
{
|
||||||
|
var housewives = await this.housewivesDbContext.Housewives.ToListAsync();
|
||||||
|
return housewives;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<Quote> GetQuote(int id)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<Quote>> GetQuotes()
|
||||||
|
{
|
||||||
|
var quotes = await this.housewivesDbContext.Quotes.ToListAsync();
|
||||||
|
return quotes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<Quote>> GetQuotesById(int housewifeId)
|
||||||
|
{
|
||||||
|
var quotes = await (from quote in housewivesDbContext.Quotes
|
||||||
|
where quote.HousewifeId == housewifeId
|
||||||
|
select quote).ToListAsync();
|
||||||
|
return quotes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,13 +0,0 @@
|
||||||
namespace Housewives.Api
|
|
||||||
{
|
|
||||||
public class WeatherForecast
|
|
||||||
{
|
|
||||||
public DateTime Date { get; set; }
|
|
||||||
|
|
||||||
public int TemperatureC { get; set; }
|
|
||||||
|
|
||||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
|
||||||
|
|
||||||
public string? Summary { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Housewives.Models.Dtos
|
||||||
|
{
|
||||||
|
public class HousewifeDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Series { get; set; }
|
||||||
|
public string ImageUrl { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Housewives.Models.Dtos
|
||||||
|
{
|
||||||
|
public class QuoteDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int HousewifeId { get; set; }
|
||||||
|
public string Phrase { get; set; }
|
||||||
|
public int Season { get; set; }
|
||||||
|
public int Episode { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Housewives.Models.Dtos
|
||||||
|
{
|
||||||
|
public class TagDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -1,18 +0,0 @@
|
||||||
@page "/counter"
|
|
||||||
|
|
||||||
<PageTitle>Counter</PageTitle>
|
|
||||||
|
|
||||||
<h1>Counter</h1>
|
|
||||||
|
|
||||||
<p role="status">Current count: @currentCount</p>
|
|
||||||
|
|
||||||
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
|
||||||
|
|
||||||
@code {
|
|
||||||
private int currentCount = 0;
|
|
||||||
|
|
||||||
private void IncrementCount()
|
|
||||||
{
|
|
||||||
currentCount++;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
@page "/fetchdata"
|
|
||||||
@inject HttpClient Http
|
|
||||||
|
|
||||||
<PageTitle>Weather forecast</PageTitle>
|
|
||||||
|
|
||||||
<h1>Weather forecast</h1>
|
|
||||||
|
|
||||||
<p>This component demonstrates fetching data from the server.</p>
|
|
||||||
|
|
||||||
@if (forecasts == null)
|
|
||||||
{
|
|
||||||
<p><em>Loading...</em></p>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<table class="table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Date</th>
|
|
||||||
<th>Temp. (C)</th>
|
|
||||||
<th>Temp. (F)</th>
|
|
||||||
<th>Summary</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
@foreach (var forecast in forecasts)
|
|
||||||
{
|
|
||||||
<tr>
|
|
||||||
<td>@forecast.Date.ToShortDateString()</td>
|
|
||||||
<td>@forecast.TemperatureC</td>
|
|
||||||
<td>@forecast.TemperatureF</td>
|
|
||||||
<td>@forecast.Summary</td>
|
|
||||||
</tr>
|
|
||||||
}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
}
|
|
||||||
|
|
||||||
@code {
|
|
||||||
private WeatherForecast[]? forecasts;
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WeatherForecast
|
|
||||||
{
|
|
||||||
public DateTime Date { get; set; }
|
|
||||||
|
|
||||||
public int TemperatureC { get; set; }
|
|
||||||
|
|
||||||
public string? Summary { get; set; }
|
|
||||||
|
|
||||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -14,16 +14,6 @@
|
||||||
<span class="oi oi-home" aria-hidden="true"></span> Home
|
<span class="oi oi-home" aria-hidden="true"></span> Home
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-item px-3">
|
|
||||||
<NavLink class="nav-link" href="counter">
|
|
||||||
<span class="oi oi-plus" aria-hidden="true"></span> Counter
|
|
||||||
</NavLink>
|
|
||||||
</div>
|
|
||||||
<div class="nav-item px-3">
|
|
||||||
<NavLink class="nav-link" href="fetchdata">
|
|
||||||
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
|
|
||||||
</NavLink>
|
|
||||||
</div>
|
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
<div class="alert alert-secondary mt-4">
|
|
||||||
<span class="oi oi-pencil me-2" aria-hidden="true"></span>
|
|
||||||
<strong>@Title</strong>
|
|
||||||
|
|
||||||
<span class="text-nowrap">
|
|
||||||
Please take our
|
|
||||||
<a target="_blank" class="font-weight-bold link-dark" href="https://go.microsoft.com/fwlink/?linkid=2148851">brief survey</a>
|
|
||||||
</span>
|
|
||||||
and tell us what you think.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@code {
|
|
||||||
// Demonstrates how a parent component can supply parameters
|
|
||||||
[Parameter]
|
|
||||||
public string? Title { get; set; }
|
|
||||||
}
|
|
|
@ -3,9 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.3.32811.315
|
VisualStudioVersion = 17.3.32811.315
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Housewives.Web", "Housewives.Web\Housewives.Web.csproj", "{F4ACEA70-1731-4A3B-8BB9-EF2F4F103C39}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Housewives.Web", "Housewives.Web\Housewives.Web.csproj", "{F4ACEA70-1731-4A3B-8BB9-EF2F4F103C39}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Housewives.Api", "Housewives.Api\Housewives.Api.csproj", "{F70C0E37-A51E-417F-A020-1820C987B2D1}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Housewives.Api", "Housewives.Api\Housewives.Api.csproj", "{F70C0E37-A51E-417F-A020-1820C987B2D1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Housewives.Models", "Housewives.Models\Housewives.Models.csproj", "{18D146FE-C32C-476C-A06C-6EA693382675}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
@ -21,6 +23,10 @@ Global
|
||||||
{F70C0E37-A51E-417F-A020-1820C987B2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{F70C0E37-A51E-417F-A020-1820C987B2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{F70C0E37-A51E-417F-A020-1820C987B2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{F70C0E37-A51E-417F-A020-1820C987B2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{F70C0E37-A51E-417F-A020-1820C987B2D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
{F70C0E37-A51E-417F-A020-1820C987B2D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{18D146FE-C32C-476C-A06C-6EA693382675}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{18D146FE-C32C-476C-A06C-6EA693382675}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{18D146FE-C32C-476C-A06C-6EA693382675}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{18D146FE-C32C-476C-A06C-6EA693382675}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
Loading…
Reference in New Issue