Skip to content

Instantly share code, notes, and snippets.

View rahulsahay19's full-sized avatar
💭
Microservices, Azure, Containers, Kubernetes, Infrastructure, Polyglot, etc

rahul sahay rahulsahay19

💭
Microservices, Azure, Containers, Kubernetes, Infrastructure, Polyglot, etc
View GitHub Profile
@rahulsahay19
rahulsahay19 / IMovieRepository.cs
Created November 28, 2020 12:33
IMovieRepository
using System.Collections.Generic;
using System.Threading.Tasks;
using Movies.Core.Entities;
using Movies.Core.Repositories.Base;
namespace Movies.Core.Repositories
{
public interface IMovieRepository : IRepository<Movie>
{
// Custom operations can go here
@rahulsahay19
rahulsahay19 / IRepository.cs
Created November 28, 2020 12:30
IRepository.cs
using System.Collections.Generic;
using System.Threading.Tasks;
using Movies.Core.Entities.Base;
namespace Movies.Core.Repositories.Base
{
public interface IRepository<T> where T : Entity
{
Task<IReadOnlyList<T>> GetAllAsync();
Task<T> GetByIdAsync(int id);
@rahulsahay19
rahulsahay19 / Movie.cs
Created November 28, 2020 12:24
Movie
using Movies.Core.Entities.Base;
namespace Movies.Core.Entities
{
public class Movie : Entity
{
public string MovieName { get; set; }
public string DirectorName { get; set; }
public string ReleaseYear { get; set; }
}
@rahulsahay19
rahulsahay19 / Entity.cs
Created November 28, 2020 12:21
Entity.cs
namespace Movies.Core.Entities.Base
{
public abstract class Entity:EntityBase<int>
{
}
}
@rahulsahay19
rahulsahay19 / EntityBase.cs
Created November 28, 2020 12:15
EntityBase
namespace Movies.Core.Entities.Base
{
public abstract class EntityBase<TId>: IEntityBase<TId>
{
public virtual TId Id { get; protected set; }
}
}
@rahulsahay19
rahulsahay19 / IEntityBase.cs
Created November 28, 2020 12:14
IEntityBase
namespace Movies.Core.Entities.Base
{
public interface IEntityBase<TId>
{
TId Id { get; }
}
}
@rahulsahay19
rahulsahay19 / API.csproj
Created November 28, 2020 12:02
API.csproj
<ItemGroup>
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.0.1" />
<PackageReference Include="MediatR" Version="9.0.0" />
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="4.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="4.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@rahulsahay19
rahulsahay19 / Application.csproj
Created November 28, 2020 12:01
Application.csproj
<ItemGroup>
<PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="FluentValidation" Version="9.2.2" />
<PackageReference Include="MediatR" Version="9.0.0" />
</ItemGroup>
@rahulsahay19
rahulsahay19 / infra.csproj
Created November 28, 2020 11:59
infra.csproj
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.9">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.9">
<PrivateAssets>all</PrivateAssets>
@rahulsahay19
rahulsahay19 / ocelot.json
Created October 7, 2020 07:38
ocelot.json
{
"Routes": [
{
"DownstreamPathTemplate": "/api/v1/movies",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 5001
}