vreksam/BL/Factories/FoorumFactory.cs

62 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using BL.DTOs;
using BL.Interfaces;
using DAL.Domain;
namespace BL.Factories
{
public class FoorumFactory
{
private readonly PostFactory _postFactory;
public FoorumFactory(IFoorumService forumService)
{
_postFactory = new PostFactory(forumService);
}
public FoorumDTO Create(Foorum f, bool withPosts = false)
{
var dto = new FoorumDTO()
{
FoorumId = f.FoorumId,
Title = f.Title,
Author = f.Author,
Body = f.Body,
CreationTime = f.CreationTime,
Description = f.Description,
Visible = f.Visible
};
if (withPosts)
{
dto.Posts = new List<PostDTO>();
f.Posts.ForEach(p => {dto.Posts.Add(_postFactory.Create(p));});
}
return dto;
}
public Foorum Create(FoorumDTO f)
{
return new Foorum()
{
Author = f.Author,
Body = f.Body,
CreationTime = f.CreationTime,
Description = f.Description,
Title = f.Title
};
}
public Foorum Update(Foorum domain, FoorumDTO dto)
{
domain.Title = dto.Title ?? domain.Title;
domain.Body = dto.Body ?? domain.Body;
domain.Description = dto.Description ?? domain.Description;
return domain;
}
}
}