Skip to content

Instantly share code, notes, and snippets.

View mortezadalil's full-sized avatar

Morteza Dalil mortezadalil

View GitHub Profile
@mortezadalil
mortezadalil / install_python_virtual_environment
Created April 30, 2019 15:35
ایجاد فضای توسعه برای پروژه پایتون
python -m venv venv
public interface IUseCaseRequestHandler<in TUseCaseRequest, out TUseCaseResponse> where TUseCaseRequest : IUseCaseRequest<TUseCaseResponse>
{
Task HandleAsync(TUseCaseRequest message, IOutputPort<TUseCaseResponse> outputPort);
}
public interface IUseCaseRequest<out TUseCaseResponse> { }
public class AddPostRequest : IUseCaseRequest<AddPostResponse>
{
public string Title { get; set; }
public string Content { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
public class AddPostResponse
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
using System.Collections.Generic;
using System.Text;
using Cms.Core.Dtos.Generals;
using Cms.Core.Dtos.UseCaseDtos;
namespace Cms.Core.IUseCases
{
public interface IAddPostUseCase : IUseCaseRequestHandler<AddPostRequest, GenericResponse<AddPostResponse>>
{
public interface IOutputPort<in TUseCaseResponse>
{
void Handle(TUseCaseResponse response);
}
using Cms.Core.IUseCases;
namespace Cms.Api.Presenters
{
public class PostApiPresenter<T> : IOutputPort<T>
{
public JsonContentResult ContentResult { get; }
public PostApiPresenter()
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Cms.Core.Domain;
using Cms.Core.Dtos.Generals;
using Cms.Core.Dtos.UseCaseDtos;
using Cms.Core.IRepositories;
using Cms.Core.IUseCases;
[HttpPost]
public async Task<IActionResult> Add(AddPostVm model)
{
await _addPostUseCase.HandleAsync(new AddPostRequest
{
Content = model.Content,
Title = model.Title
}, _addApiPresenter);
return _addApiPresenter.ContentResult;