Click here to Skip to main content
15,893,161 members
Articles / Desktop Programming / WPF

Layers Pattern in Practice

Rate me:
Please Sign up or sign in to vote.
4.96/5 (59 votes)
23 Apr 2010CPOL25 min read 153K   8.1K   187  
Layers Pattern via a WPF project.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BillsEntityLib;

namespace BillsBusinessLogicLib
{
    /// <summary>
    /// Interface for Bill manager business logic
    /// </summary>
    public interface IBillsManager
    {
        /// <summary>
        /// Read from data source
        /// </summary>
        /// <param name="fromDate">From date</param>
        /// <param name="toDate">To date</param>
        /// <returns>List of bills</returns>
        Bills Read(DateTime fromDate, DateTime toDate);

        /// <summary>
        /// Reads a bill by its ID
        /// </summary>
        /// <param name="id">Bills Id</param>
        /// <returns>Bill object</returns>
        Bill ReadById(Guid id);

        /// <summary>
        /// Insert a bill into the database
        /// </summary>
        /// <param name="bill">Bill to insert</param>
        void Insert(Bills bill);

        /// <summary>
        /// Delete a bill from database
        /// </summary>
        /// <param name="bill">Bill to delete</param>
        /// <returns>Number of deleted items</returns>
        int Delete(Guid bill);

        /// <summary>
        /// Delete a list of bills with the specified guids
        /// </summary>
        /// <param name="guids">Guids to delete</param>
        /// <returns>Number of deleted items</returns>
        int Delete(IEnumerable<Guid> guids);

        /// <summary>
        /// Update a bill in the database
        /// </summary>
        /// <param name="billId">BillId to update</param>
        /// <param name="newBill">New bill</param>
        /// <returns>Number of updated items</returns>
        int Update(Guid billId, Bill newBill);

        /// <summary>
        /// Settings
        /// </summary>
        object[] Settings
        {
            get;
            set;
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Moldova (Republic of) Moldova (Republic of)
Interested in computer science, math, research, and everything that relates to innovation. Fan of agnostic programming, don't mind developing under any platform/framework if it explores interesting topics. In search of a better programming paradigm.

Comments and Discussions