using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GreenTree.Nachtragsmanagement.Core.Domain.Deviation;
namespace GreenTree.Nachtragsmanagement.Services.Deviation
{
public interface IDeviationService
{
#region Deviation
///
/// Gets all deviations
///
IList GetAllDeviations();
///
/// Gets all deviations where the user is assigned to the corresponding site if the current role only allows assigned sites
///
IList GetAllUserAssignedDeviations(Core.Domain.User.User user);
///
/// Gets a deviation by specified Id
///
/// Deviation identifier.
Core.Domain.Deviation.Deviation GetDeviationById(int id);
///
/// Gets all deviations to the specified ids
///
IList GetDeviationsByIds(int[] ids);
///
/// Gets a deviation by specified customer number
///
/// Customer number.
Core.Domain.Deviation.Deviation GetDeviationByCustomNumber(string customNumber);
///
/// Insert a deviation
///
/// Deviation.
void InsertDeviation(Core.Domain.Deviation.Deviation deviation);
///
/// Update a deviation
///
/// Deviation.
void UpdateDeviation(Core.Domain.Deviation.Deviation deviation);
///
/// Delete a deviation
///
/// Deviation.
void DeleteDeviation(Core.Domain.Deviation.Deviation deviation);
#endregion
#region Disturbance
///
/// Gets all disturbances
///
IList GetAllDisturbances();
///
/// Gets a disturbance by specified Id
///
/// Disturbance identifier.
Disturbance GetDisturbanceById(int id);
///
/// Gets all disturbances to the specified ids
///
IList GetDisturbancesByIds(int[] ids);
///
/// Insert a disturbance
///
/// Disturbance.
void InsertDisturbance(Disturbance disturbance);
///
/// Update a disturbance
///
/// Disturbance.
void UpdateDisturbance(Disturbance disturbance);
///
/// Delete a disturbance
///
/// Disturbance.
void DeleteDisturbance(Disturbance disturbance);
#endregion
#region Kind
///
/// Gets all kinds
///
IList GetAllKinds();
///
/// Gets a kind by specified Id
///
/// Kind identifier.
Kind GetKindById(int id);
///
/// Gets all kinds to the specified ids
///
IList GetKindsByIds(int[] ids);
///
/// Gets all deviations to the specified with the specified kind id
///
/// Kind identifier.
IList GetDeviationsByKind(int id);
///
/// Gets the kind which is defaultly selected
///
Kind GetDefaultKind();
///
/// Insert a kind
///
/// Kind.
void InsertKind(Kind kind);
///
/// Update a kind
///
/// Kind.
void UpdateKind(Kind kind);
///
/// Delete a kind
///
/// Kind.
void DeleteKind(Kind kind);
#endregion
#region Status
///
/// Gets all statuses
///
IList GetAllStatuses();
///
/// Gets a status by specified Id
///
/// Status identifier.
Status GetStatusById(int id);
///
/// Gets all statuses to the specified ids
///
IList GetStatusesByIds(int[] ids);
///
/// Gets all deviations to the specified with the specified status id
///
/// Status identifier.
IList GetDeviationsByStatus(int id);
///
/// Gets the status which is defaultly selected
///
Status GetDefaultStatus();
///
/// Insert a status
///
/// Status.
void InsertStatus(Status status);
///
/// Update a status
///
/// Status.
void UpdateStatus(Status status);
///
/// Delete a status
///
/// Status.
void DeleteStatus(Status status);
#endregion
}
}