using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GreenTree.Nachtragsmanagement.Core.Domain.Appendix;
using GreenTree.Nachtragsmanagement.Core.Domain.Invoice;
namespace GreenTree.Nachtragsmanagement.Services.Appendix
{
public interface IAppendixService
{
#region Appendix
///
/// Gets all appendices
///
IList GetAllAppendices();
///
/// Gets all appendices where the user is assigned to the corresponding site if the current role only allows assigned sites
///
IList GetAllUserAssignedAppendices(Core.Domain.User.User user);
///
/// Gets a appendix by specified Id
///
/// Appendix identifier.
Core.Domain.Appendix.Appendix GetAppendixById(int id);
///
/// Gets all appendices to the specified ids
///
IList GetAppendicesByIds(int[] ids);
///
/// Gets a appendix by specified customer number
///
/// Customer number.
Core.Domain.Appendix.Appendix GetAppendixByCustomNumber(string customNumber);
///
/// Insert a appendix
///
/// Appendix.
void InsertAppendix(Core.Domain.Appendix.Appendix appendix);
///
/// Update a appendix
///
/// Appendix.
void UpdateAppendix(Core.Domain.Appendix.Appendix appendix);
///
/// Delete a appendix
///
/// Appendix.
void DeleteAppendix(Core.Domain.Appendix.Appendix appendix);
#endregion
#region Category
///
/// Gets all categories
///
IList GetAllCategories();
///
/// Gets a category by specified Id
///
/// Category identifier.
Category GetCategoryById(int id);
///
/// Gets all categories to the specified ids
///
IList GetCategoriesByIds(int[] ids);
///
/// Insert a category
///
/// Category.
void InsertCategory(Category category);
///
/// Update a category
///
/// Category.
void UpdateCategory(Category category);
///
/// Delete a category
///
/// Category.
void DeleteCategory(Category category);
#endregion
#region Invoice
///
/// Gets all invoices
///
IList GetAllInvoices();
///
/// Gets a invoice by specified Id
///
/// Invoice identifier.
Invoice GetInvoiceById(int id);
///
/// Gets all invoices to the specified ids
///
IList GetInvoicesByIds(int[] ids);
///
/// Insert a invoice
///
/// Invoice.
void InsertInvoice(Invoice invoice);
///
/// Update a invoice
///
/// Invoice.
void UpdateInvoice(Invoice invoice);
///
/// Delete a invoice
///
/// Invoice.
void DeleteInvoice(Invoice invoice);
#endregion
#region State
///
/// Gets all states
///
IList GetAllStates();
///
/// Gets a state by specified Id
///
/// State identifier.
State GetStateById(int id);
///
/// Gets all states to the specified ids
///
IList GetStatesByIds(int[] ids);
///
/// Gets all appendices to the specified with the specified status id
///
/// State identifier.
IList GetAppendicesByState(int id);
///
/// Gets the state which is defaultly selected
///
State GetDefaultState();
///
/// Gets the state which is marked as finish
///
State GetFinishState();
///
/// Insert a state
///
/// State.
void InsertState(State state);
///
/// Update a state
///
/// State.
void UpdateState(State state);
///
/// Delete a state
///
/// State.
void DeleteState(State state);
#endregion
}
}