Skip to content

Instantly share code, notes, and snippets.

View ducmeit1's full-sized avatar
:octocat:
Simple is best! Always do every simple!

David Ho ducmeit1

:octocat:
Simple is best! Always do every simple!
View GitHub Profile
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Serverless Specification template describing your function.
Resources:
resizeimage:
Type: 'AWS::Serverless::Function'
Properties:
Handler: main
Runtime: go1.x
CodeUri: .
@ducmeit1
ducmeit1 / aws-s3-policy.json
Last active July 5, 2019 07:34
resize-image
{
"Version": "2012-10-17",
"Id": "Policy1553842544056",
"Statement": [
{
"Sid": "Stmt1553842540551",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::golang-resize-image/*"
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Demo.Configurations {
public sealed class UserConfiguration : IEntityTypeConfiguration<User>
{
public void Configure(EntityTypeBuilder<User> builder) {
builder.ToTable("UsersTbl");
builder.HasKey(u => u.Id);
builder.Property(u => u.FirstName).IsRequired();
builder.Property(u => u.LastName).IsRequired();
}
using Microsoft.EntityFrameworkCore;
namespace Demo {
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) {}
protected override void OnModelCreating(ModelBuilder modelBuilder){
modelBuilder.ApplyConfiguration(new UserConfiguration());
//In here, you will have to do loop again for every new entity configuration, it will make you feel lazy if you are :D
}
using System;
using System.Linq;
using System.Reflection;
using Microsoft.EntityFrameworkCore;
namespace Demo {
public static class Extensions
{
/// <summary>
/// Auto find and apply all IEntityTypeConfiguration to modelBuilder
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyAllConfigurations<MyDbContext>();
}
@ducmeit1
ducmeit1 / Controller.cs
Created July 15, 2019 07:57
ThinController
[AllowAnonymous]
[HttpPost]
public async Task<IHttpActionResult> Register (RegisterBindingModel model) {
if (!ModelState.IsValid) return BadRequest (ModelState);
var user = new User {
UserName = model.Email,
Email = model.Email,
DateOfBirth = DateTime.Parse (model.DateOfBirth.ToString (CultureInfo.InvariantCulture)),
PhoneNumber = model.PhoneNumber,
public class GetUserDetailQuery : IRequest<UserDto>
{
public GetUserDetailQuery(int id) {
Id = id;
}
public int Id {get;}
}
public class GetUserDetailHandler : IRequestHandler<GetUserDetailQuery, UserDto>
{
private readonly IUserRepository _userRepository;
private readonly IUserMapper _userMapper;
public GetUserDetailHandler(IUserRepository userRepository, IUserMapper userMapper) {
_userRepository = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
_userMapper = userMapper ?? throw new ArgumentNullException(nameof(userMapper));
}