en mi proyecto, la lógica de negocios todo en el servicio de aplicaciones, el servicio de dominio solo alguna entidad, ¿quién puede decirme o darme un ejemplo para mostrar cómo agregar lógica empresarial al servicio de dominio en el diseño controlado por el dominio? ¡muchas gracias!Cómo agregar lógica de negocios al servicio de dominio en el diseño controlado por el dominio?
ACTUALIZACIÓN
escribo un solutation sencillo, este solutation es un sistema de votación, la parte principal solutation es:
Vote.Application.Service.VoteService.cs:
namespace Vote.Application.Service
{
public class VoteService
{
private IVoteRepository _voteRepository;
private IArticleRepository _articleRepository;
public VoteService(IVoteRepository voteRepository,IArticleRepository articleRepository)
{
_voteRepository = voteRepository;
_articleRepository = articleRepository;
}
public bool AddVote(int articleId, string ip)
{
var article = _articleRepository.Single(articleId);
if (article == null)
{
throw new Exception("this article not exist!");
}
else
{
article.VoteCount++;
}
if (IsRepeat(ip, articleId))
return false;
if (IsOvertakeTodayVoteCountLimit(ip))
return false;
_voteRepository.Add(new VoteRecord()
{
ArticleID = articleId,
IP = ip,
VoteTime = DateTime.Now
});
try
{
_voteRepository.UnitOfWork.Commit();
return true;
}
catch (Exception ex)
{
throw ex;
}
}
private bool IsRepeat(string ip, int articleId)
{
//An IP per article up to cast 1 votes
//todo
return false;
}
private bool IsOvertakeTodayVoteCountLimit(string ip)
{
//An IP per day up to cast 10 votes
//todo
return false;
}
}
}
Vote.Domain.Contract.IVoteRepository.cs:
namespace Vote.Domain.Contract
{
public interface IVoteRepository
: IRepository<VoteRecord>
{
void Add(VoteRecord model);
}
}
Vote.Domain.Contract.IArticleRepository.cs:
namespace Vote.Domain.Contract
{
public interface IArticleRepository
: IRepository<Article>
{
void Add(VoteRecord model);
Article Single(int articleId);
}
}
Vote.Domain.Entities.VoteRecord:
namespace Vote.Domain.Entities
{
public class VoteRecord
{
public int ID { get; set; }
public DateTime VoteTime { get; set; }
public int ArticleID { get; set; }
public string IP { get; set; }
}
}
Vote.Domain.Entities.Article:
namespace Vote.Domain.Entities
{
public class Article
{
public int ID { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int VoteCount { get; set; }
}
}
Quiero mover el registro de negocios en application.service a Domain.service (actual no en este proyecto), ¿quién puede ayudarme? ¿cómo hacerlo es razonable? ¡muchas gracias!
¿Puede proporcionar algunos ejemplos de los objetos de su dominio? – casablanca
@casablanca He actualizado mi pregunta – artwl
¿Qué significa IP? ¿Hay alguna relación entre Article y VoteRecord? Por favor, publique el artículo de la clase –