SlideShare ist ein Scribd-Unternehmen logo
1 von 9
(Framework              Project) by Marcelo Salvador
Introduction: The project was created to build parts of a business tier for a retail
company.

Audience:

                     Business Executives
                     Information Workers
                     IT Managers

Project Goals:

        The goal of the Framework Project was to create and test two assemblies. The
first assembly is a class library project called Foundation that contains interfaces and
base classes. The second assembly is a class library project called AppTypes where it
contains an entity, collection and exception classes used in various business processes.
(AppTypes/Foundation Projects)

(Foundation)




namespace Foundation
{
    /// <summary>
    /// Public interface with Collection
    /// </summary>
    public interface ICustomCollection
    {
        /// <summary>
        /// Adds an oject to the Collection and returns int
        /// value of the collection index for the object just added.
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        int Add(Object value);

       /// <summary>
       /// Removes all objects from the Collection.
       /// </summary>
       void Clear();

       /// <summary>
       ///Determines whether the collection contains a specific
          object.
       /// </summary>
/// <param name="value"></param>
/// <returns></returns>
bool Contains(Object value);


/// <summary>
///Determines the index of a specific object in the collection.
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
int IndexOf(Object value);

/// <summary>
/// Inserts the object in the collection at the specified index
/// </summary>
/// <param name="index"></param>
/// <param name="value"></param>
void Insert(int index,Object value);

/// <summary>
/// Removes the first occurence of the specified object from
    the collection.
/// </summary>
/// <param name="index"></param>
void Remove(object index);

/// <summary>
/// Removes the object at a specific index.
/// </summary>
/// <param name="index"></param>
void RemoveAt(int index);

///   <summary>
///   Returns the number of elements currently in the collection.
///   </summary>
int   Count { get;}

/// <summary>
/// takes in the Array of type of object where the items of the
    collection will be copied.
/// </summary>
/// <param name="value"></param>
void CopyTo(Object[] value);

/// <summary>
/// Sorts the collection using the IComparable interface of
    each member of the collection.
/// </summary>
void Sort();

/// <summary>
/// Sorts the Collection based on the supplied IComparer.
/// </summary>
/// <param name="value"></param>
void Sort(IComparer value);

/// <summary>
/// Used to retrieve or replace the object at the specified
               index.
           /// </summary>
           /// <param name="index"></param>
           /// <returns></returns>
           Object this[int index] { get;set;}


     }
}


         Specification: Project containing Interfaces consolidating required properties
for abstractions. For example, IcompanyContact, Iaddress, IcountryPhone, IcontactInfo
and IcustomCollection. The ICustomCollection interface was provided as a contract to
guarantee that certain basic collection functionality would be available in the collection
classes written.
(AppTypes)




/* ********************************************************************
 * @Programmer: Marcelo D. Salvador
 * SetFocus 2008(Q4) Project#1 - (Business Tier for Retail Company)
 * Description: Attribute class created to further document the
 * classes written. Project: AppTypes; Namespace: appTypes; Source:
 *                           DeveloperInfoAttribute.cs
 *
 *********************************************************************/

namespace AppTypes
{
    /// <summary>
    /// Developer Info Attribute class
    /// </summary>
[AttributeUsage(AttributeTargets.Assembly|AttributeTargets.Class|
AttributeTargets.Interface|
AttributeTargets.Enum,AllowMultiple=true,Inherited=true)]
    class DeveloperInfoAttribute: Attribute
    {
        /// <summary>
        /// Protected class variable.
        /// </summary>
        protected string name;
        /// <summary>
        /// Constructor initializing protected variable.
        /// </summary>
        /// <param name="name"></param>
        public DeveloperInfoAttribute(string name)
        {
            this.name = name;

       }

       /// <summary>
       /// The GetProperty and Set property returns a property value
       /// from a Name BuiltIn or Custom property sets. The property
       /// declaration is shown below:
       /// </summary>
       public string Name
       {
           get
           {
               return name;
           }
           set
           {
               name = value;
           }
       }

       /// <summary>
       /// protected class variable
       /// </summary>
       protected string title;


       /// <summary>
       /// The GetProperty and Set property returns a property value
       /// from a Title BuiltIn or Custom property sets. The property
       /// declaration is shown below:
       /// </summary>
       public string Title
       {
           get
           {
               return title;
           }
           set
           {
               title = value;
           }
}
        /// <summary>
        /// Protected date variable
        /// </summary>
        protected string date;

        /// <summary>
        /// The GetProperty and Set property returns a property value
        /// from a Date BuiltIn or Custom property sets. The property
        /// declaration is shown below:
        /// </summary>
        public string Date
        {
            get
            {
                return date;
            }
            set
            {
                date = value;
            }
        }


    }
}

 namespace AppTypes
{
     /// <summary>
     /// Attributes
     /// </summary>
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited
= true)]

    public class CustomDescriptionAttribute : Attribute
    {
        /// <summary>
        /// constructor initializer
        /// </summary>
        /// <param name="Description"></param>
        public CustomDescriptionAttribute(string Description)
        {
            this.description = Description;

        }
        private string description;

        /// <summary>
        /// The GetProperty and Set property returns a property value
        /// from a Description BuiltIn or Custom property sets.
        /// The property declaration is shown below:
        /// </summary>
        public string Description
        {
            get { return description; }
set { this.description = value; }
         }
    }
}
        Two custom attributes DeveloperInfoAttribute and CustomDescription
Attribute were developed and used to further document the classes written. The
SupplierTypes enum is provided to insure that the type of each Supplier is limited to one
of the known types.




    (Test Program allows viewing either the summary
 results or the detail test output. Also, It will enable to
filter the output presenting results for a single section.)
Framework Project Portfolio

Weitere ähnliche Inhalte

Was ist angesagt?

ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf Conference
 
Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1
Michał Orman
 
Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)
eddiejaoude
 

Was ist angesagt? (20)

ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
 
MidCamp 2016 - Demystifying AJAX Callback Commands in Drupal 8
MidCamp 2016 - Demystifying AJAX Callback Commands in Drupal 8MidCamp 2016 - Demystifying AJAX Callback Commands in Drupal 8
MidCamp 2016 - Demystifying AJAX Callback Commands in Drupal 8
 
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
SQL Views
SQL ViewsSQL Views
SQL Views
 
Java Beans
Java BeansJava Beans
Java Beans
 
Demystifying Drupal AJAX Callback Commands
Demystifying Drupal AJAX Callback CommandsDemystifying Drupal AJAX Callback Commands
Demystifying Drupal AJAX Callback Commands
 
Michael Colon Portfolio
Michael Colon PortfolioMichael Colon Portfolio
Michael Colon Portfolio
 
Raybiztech Guide To Backbone Javascript Library
Raybiztech Guide To Backbone Javascript LibraryRaybiztech Guide To Backbone Javascript Library
Raybiztech Guide To Backbone Javascript Library
 
Demystifying AJAX Callback Commands in Drupal 8
Demystifying AJAX Callback Commands in Drupal 8Demystifying AJAX Callback Commands in Drupal 8
Demystifying AJAX Callback Commands in Drupal 8
 
DrupalJam 2018 - Maintaining a Drupal Module: Keep It Small and Simple
DrupalJam 2018 - Maintaining a Drupal Module: Keep It Small and SimpleDrupalJam 2018 - Maintaining a Drupal Module: Keep It Small and Simple
DrupalJam 2018 - Maintaining a Drupal Module: Keep It Small and Simple
 
Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1
 
JSP Standard Tag Library
JSP Standard Tag LibraryJSP Standard Tag Library
JSP Standard Tag Library
 
Pragmatic sbt
Pragmatic sbtPragmatic sbt
Pragmatic sbt
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
 
Sqlapi0.1
Sqlapi0.1Sqlapi0.1
Sqlapi0.1
 
Doctrine with Symfony - SymfonyCon 2019
Doctrine with Symfony - SymfonyCon 2019Doctrine with Symfony - SymfonyCon 2019
Doctrine with Symfony - SymfonyCon 2019
 
Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)
 
Sql views
Sql viewsSql views
Sql views
 
Jsp standard tag_library
Jsp standard tag_libraryJsp standard tag_library
Jsp standard tag_library
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 

Ähnlich wie Framework Project Portfolio

First java-server-faces-tutorial-en
First java-server-faces-tutorial-enFirst java-server-faces-tutorial-en
First java-server-faces-tutorial-en
techbed
 
Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805
LearningTech
 
Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805
LearningTech
 
Padroes Projeto
Padroes ProjetoPadroes Projeto
Padroes Projeto
lcbj
 
オレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいましたオレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいました
Katsuhiro Ogawa
 

Ähnlich wie Framework Project Portfolio (20)

First java-server-faces-tutorial-en
First java-server-faces-tutorial-enFirst java-server-faces-tutorial-en
First java-server-faces-tutorial-en
 
Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805
 
Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805Design pattern proxy介紹 20130805
Design pattern proxy介紹 20130805
 
WPF and Prism 4.1 Workshop at BASTA Austria
WPF and Prism 4.1 Workshop at BASTA AustriaWPF and Prism 4.1 Workshop at BASTA Austria
WPF and Prism 4.1 Workshop at BASTA Austria
 
The state of hooking into Drupal - DrupalCon Dublin
The state of hooking into Drupal - DrupalCon DublinThe state of hooking into Drupal - DrupalCon Dublin
The state of hooking into Drupal - DrupalCon Dublin
 
Padroes Projeto
Padroes ProjetoPadroes Projeto
Padroes Projeto
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
 
Library Project Marcelo Salvador
Library Project Marcelo SalvadorLibrary Project Marcelo Salvador
Library Project Marcelo Salvador
 
Jsp presentation
Jsp presentationJsp presentation
Jsp presentation
 
A resource oriented framework using the DI/AOP/REST triangle
A resource oriented framework using the DI/AOP/REST triangleA resource oriented framework using the DI/AOP/REST triangle
A resource oriented framework using the DI/AOP/REST triangle
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
 
DWR, Hibernate and Dojo.E - A Tutorial
DWR, Hibernate and Dojo.E - A TutorialDWR, Hibernate and Dojo.E - A Tutorial
DWR, Hibernate and Dojo.E - A Tutorial
 
Angular JS2 Training Session #2
Angular JS2 Training Session #2Angular JS2 Training Session #2
Angular JS2 Training Session #2
 
Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
 
Codeigniter : Two Step View - Concept Implementation
Codeigniter : Two Step View - Concept ImplementationCodeigniter : Two Step View - Concept Implementation
Codeigniter : Two Step View - Concept Implementation
 
MBL301 Data Persistence to Amazon Dynamodb for Mobile Apps - AWS re: Invent 2012
MBL301 Data Persistence to Amazon Dynamodb for Mobile Apps - AWS re: Invent 2012MBL301 Data Persistence to Amazon Dynamodb for Mobile Apps - AWS re: Invent 2012
MBL301 Data Persistence to Amazon Dynamodb for Mobile Apps - AWS re: Invent 2012
 
オレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいましたオレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいました
 
Codemotion appengine
Codemotion appengineCodemotion appengine
Codemotion appengine
 
運用Closure Compiler 打造高品質的JavaScript
運用Closure Compiler 打造高品質的JavaScript運用Closure Compiler 打造高品質的JavaScript
運用Closure Compiler 打造高品質的JavaScript
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testing
 

Kürzlich hochgeladen

Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
instagramfab782445
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
amitlee9823
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
tbatkhuu1
 
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
amitlee9823
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
nirzagarg
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
TusharBahuguna2
 

Kürzlich hochgeladen (20)

Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
 
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfJordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptx
 
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, Pune
 
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls AgencyHire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
 
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
 
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
 

Framework Project Portfolio

  • 1. (Framework Project) by Marcelo Salvador Introduction: The project was created to build parts of a business tier for a retail company. Audience:  Business Executives  Information Workers  IT Managers Project Goals: The goal of the Framework Project was to create and test two assemblies. The first assembly is a class library project called Foundation that contains interfaces and base classes. The second assembly is a class library project called AppTypes where it contains an entity, collection and exception classes used in various business processes.
  • 2. (AppTypes/Foundation Projects) (Foundation) namespace Foundation { /// <summary> /// Public interface with Collection /// </summary> public interface ICustomCollection { /// <summary> /// Adds an oject to the Collection and returns int /// value of the collection index for the object just added. /// </summary> /// <param name="value"></param> /// <returns></returns> int Add(Object value); /// <summary> /// Removes all objects from the Collection. /// </summary> void Clear(); /// <summary> ///Determines whether the collection contains a specific object. /// </summary>
  • 3. /// <param name="value"></param> /// <returns></returns> bool Contains(Object value); /// <summary> ///Determines the index of a specific object in the collection. /// </summary> /// <param name="value"></param> /// <returns></returns> int IndexOf(Object value); /// <summary> /// Inserts the object in the collection at the specified index /// </summary> /// <param name="index"></param> /// <param name="value"></param> void Insert(int index,Object value); /// <summary> /// Removes the first occurence of the specified object from the collection. /// </summary> /// <param name="index"></param> void Remove(object index); /// <summary> /// Removes the object at a specific index. /// </summary> /// <param name="index"></param> void RemoveAt(int index); /// <summary> /// Returns the number of elements currently in the collection. /// </summary> int Count { get;} /// <summary> /// takes in the Array of type of object where the items of the collection will be copied. /// </summary> /// <param name="value"></param> void CopyTo(Object[] value); /// <summary> /// Sorts the collection using the IComparable interface of each member of the collection. /// </summary> void Sort(); /// <summary> /// Sorts the Collection based on the supplied IComparer. /// </summary> /// <param name="value"></param> void Sort(IComparer value); /// <summary>
  • 4. /// Used to retrieve or replace the object at the specified index. /// </summary> /// <param name="index"></param> /// <returns></returns> Object this[int index] { get;set;} } } Specification: Project containing Interfaces consolidating required properties for abstractions. For example, IcompanyContact, Iaddress, IcountryPhone, IcontactInfo and IcustomCollection. The ICustomCollection interface was provided as a contract to guarantee that certain basic collection functionality would be available in the collection classes written.
  • 5. (AppTypes) /* ******************************************************************** * @Programmer: Marcelo D. Salvador * SetFocus 2008(Q4) Project#1 - (Business Tier for Retail Company) * Description: Attribute class created to further document the * classes written. Project: AppTypes; Namespace: appTypes; Source: * DeveloperInfoAttribute.cs * *********************************************************************/ namespace AppTypes { /// <summary> /// Developer Info Attribute class /// </summary>
  • 6. [AttributeUsage(AttributeTargets.Assembly|AttributeTargets.Class| AttributeTargets.Interface| AttributeTargets.Enum,AllowMultiple=true,Inherited=true)] class DeveloperInfoAttribute: Attribute { /// <summary> /// Protected class variable. /// </summary> protected string name; /// <summary> /// Constructor initializing protected variable. /// </summary> /// <param name="name"></param> public DeveloperInfoAttribute(string name) { this.name = name; } /// <summary> /// The GetProperty and Set property returns a property value /// from a Name BuiltIn or Custom property sets. The property /// declaration is shown below: /// </summary> public string Name { get { return name; } set { name = value; } } /// <summary> /// protected class variable /// </summary> protected string title; /// <summary> /// The GetProperty and Set property returns a property value /// from a Title BuiltIn or Custom property sets. The property /// declaration is shown below: /// </summary> public string Title { get { return title; } set { title = value; }
  • 7. } /// <summary> /// Protected date variable /// </summary> protected string date; /// <summary> /// The GetProperty and Set property returns a property value /// from a Date BuiltIn or Custom property sets. The property /// declaration is shown below: /// </summary> public string Date { get { return date; } set { date = value; } } } } namespace AppTypes { /// <summary> /// Attributes /// </summary> [AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)] public class CustomDescriptionAttribute : Attribute { /// <summary> /// constructor initializer /// </summary> /// <param name="Description"></param> public CustomDescriptionAttribute(string Description) { this.description = Description; } private string description; /// <summary> /// The GetProperty and Set property returns a property value /// from a Description BuiltIn or Custom property sets. /// The property declaration is shown below: /// </summary> public string Description { get { return description; }
  • 8. set { this.description = value; } } } } Two custom attributes DeveloperInfoAttribute and CustomDescription Attribute were developed and used to further document the classes written. The SupplierTypes enum is provided to insure that the type of each Supplier is limited to one of the known types. (Test Program allows viewing either the summary results or the detail test output. Also, It will enable to filter the output presenting results for a single section.)