using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassi.Core.Interfaces;
using gehGassi.Domain.Common;
using gehGassi.Domain.Feedback;
namespace gehGassi.Core.Services
{
///
/// Service der die Verwaltung von Feedbacks aus der App ermöglicht
///
public class AppFeedbackService : ServiceBase, IAppFeedbackService
{
///
/// Erstellt eine Instanz
///
/// Instanz eines IUnitOfWork
public AppFeedbackService(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
///
/// Erstellen eines Feedback
///
/// AppFeedback
public AppFeedback Create()
{
var item = new AppFeedback();
return item;
}
///
/// Gibt eine gefilterte Liste von Feedback zurück
///
/// Filterbegriff der in bestimmten Feldern gesucht wird
/// List betroffener Feedbacks
public IQueryable Filter(string filter)
{
return Repository.Query(c => c.UserName.Contains(filter) || c.Name.Contains(filter));
}
///
/// Gibt die Anzahl von Feedbacks in einem bestimmten Status zurück
///
/// Gewünschter Status
/// Anzahl Feedbacks im Status
public async Task CountAsync(AppFeedbackStatus status)
{
return await Repository.CountAsync(c => c.Status == status).ConfigureAwait(false);
}
}
}