Skip to content

Instantly share code, notes, and snippets.

View sunilkumarmedium's full-sized avatar

SUNIL KUMAR B sunilkumarmedium

View GitHub Profile
@sunilkumarmedium
sunilkumarmedium / SwaggerConfig.cs
Last active November 22, 2020 07:44
SwaggerConfig
namespace CleanArchitectureApp.WebApi.Extensions
{
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi.Models;
using System;
using System.Reflection;
public static class SwaggerConfig
@sunilkumarmedium
sunilkumarmedium / JwtTokenConfig.cs
Created November 22, 2020 07:47
JwtTokenConfig.cs
namespace CleanArchitectureApp.WebApi.Extensions
{
using CleanArchitectureApp.Application.Wrappers;
using CleanArchitectureApp.Domain;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens;
using Newtonsoft.Json;
@sunilkumarmedium
sunilkumarmedium / JWTTokenGeneration
Created November 22, 2020 07:55
JwtTokenGeneration
private Task<JwtSecurityToken> GenerateJWToken(User user)
{
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
new Claim(JwtRegisteredClaimNames.Email, user.UserEmail),
new Claim("uid", user.UserId.ToString()),
};
@sunilkumarmedium
sunilkumarmedium / ErrorHandlerMiddleware.cs
Created November 22, 2020 07:58
ErrorHandlerMiddleware.cs
namespace CleanArchitectureApp.WebApi.Middlewares
{
using CleanArchitectureApp.Application.Exceptions;
using CleanArchitectureApp.Application.Wrappers;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Net;
using System.Text.Json;
using System.Threading.Tasks;
@sunilkumarmedium
sunilkumarmedium / NHibernateServiceRegistration.cs
Created November 22, 2020 08:06
NHibernateServiceRegistration.cs
namespace CleanArchitectureApp.Infrastructure.Persistence
{
public static class ServiceRegistration
{
public static void AddPersistenceInfrastructure(this IServiceCollection services, IConfiguration configuration)
{
var mapper = new ModelMapper();
mapper.AddMappings(typeof(UserMap).Assembly.ExportedTypes);
HbmMapping domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
@sunilkumarmedium
sunilkumarmedium / User.cs
Created November 22, 2020 08:09
user.cs
namespace CleanArchitectureApp.Domain
{
public class User : AuditableBaseEntity
{
public User()
{
UserTokens = new List<UserToken>();
}
public virtual Guid UserId { get; set; }
@sunilkumarmedium
sunilkumarmedium / UserMap.cs
Created November 22, 2020 08:10
UserMap.cs
namespace CleanArchitectureApp.Infrastructure.Persistence.Repositories
{
public partial class UserMap : ClassMapping<Domain.User>
{
public UserMap()
{
Schema("dbo");
Table("Users");
Lazy(true);
Id(x => x.UserId, map =>
@sunilkumarmedium
sunilkumarmedium / CreateUserCommandValidator.cs
Created November 22, 2020 08:12
CreateUserCommandValidator.cs
namespace CleanArchitectureApp.Application.Features.Users.Commands
{
public class CreateUserCommandValidator : AbstractValidator<CreateUserCommand>
{
private readonly IUserRepositoryAsync userRepository;
public CreateUserCommandValidator(IUserRepositoryAsync userRepository)
{
this.userRepository = userRepository;
@sunilkumarmedium
sunilkumarmedium / login.component.html
Created November 22, 2020 09:55
login.component.html
<div class="card shadow p-3 mb-5 bg-white rounded card-top">
<h4 class="card-header">Login</h4>
<div class="card-body">
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div class="form-group">
<label for="username">Username</label>
<input type="text" formControlName="username" class="form-control" [ngClass]="{ 'is-invalid': submitted && formControls.username.errors }" />
<div *ngIf="submitted && formControls.username.errors" class="invalid-feedback">
@sunilkumarmedium
sunilkumarmedium / login.component.ts
Created November 22, 2020 09:56
login.component.ts
import { AuthenticationService } from './../../../_services/authentication/authentication.service';
import { ActivatedRoute, Router } from '@angular/router';
import { Component, OnInit, Injector } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { first } from 'rxjs/operators';
import { ToastService } from 'src/app/_services/toast/toast.service';
import { HttpErrorResponse } from '@angular/common/http';
@Component({
templateUrl: './login.component.html',