Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3357484
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T02:38:18+00:00 2026-05-18T02:38:18+00:00

I want to write an user defined error collection class which should collect all

  • 0

I want to write an user defined error collection class which should collect all the Error’s. When we validate an entity object if there is no error it should go and save to the Database. if Error there it should display it.
now i have wrote the class it collects the error and displays it successfully but when there is two identical error the class throws an exception.
(i use error-code for the error. the value for the error-code is in resx file from where the display method will take the value and display it. Display works perfectly)

//The code where it collects Error 
if (objdepartment.Departmentname == null)
{
    ErrorCollection.AddErrors("A1001","Department Name");
}
if (objdepartment.Departmentcode == null)
{
    ErrorCollection.AddErrors("A1001","Department code");
}

//In the Errorcollection  

public class ErrorCollection
{
    static Dictionary<string,List<string>> ErrorCodes;
    private ErrorCollection() { }

    public static void AddErrors(string eCode,params string[] dataItem)
    {
        if (ErrorCodes == null)
        {
            ErrorCodes = new Dictionary<string, List<string>>();
        }
        List<String> lsDataItem = new List<String>();
        foreach (string strD in dataItem)            
            lsDataItem.Add(strD);
        ErrorCodes.Add(eCode, lsDataItem);
    }

    public static string DisplayErrors()
    {
        string ErrorMessage;
        //string Key;
        ErrorMessage = String.Empty;
        if (ErrorCodes != null)
        {
            string Filepath= "D:\\Services\\ErrorCollection\\";
            //Read Errors- Language Specsific message from resx file.
            ResourceManager rm = ResourceManager.CreateFileBasedResourceManager("ErrorMessages", Filepath, null);
            StringBuilder sb = new StringBuilder();
            foreach (string error in ErrorCodes.Keys)
            {                
                List<string> list = ErrorCodes[error];
                if (error == "A0000")
                {
                    sb.Append("System Exception : " + list[0]);
                }
                else
                {
                    sb.Append(rm.GetString(error) + "\nBreak\n");
                }

                for (int counter = 0; counter < list.Count; counter++)
                {
                    sb.Replace("{A}", list[counter]);
                }
            }
            ErrorMessage = sb.ToString();
        }
        return ErrorMessage;
    }
}    

now when there is two common error. then the code shows an exception like “datakey already exist” in the line ” ErrorCodes.Add(eCode, lsDataItem);” (the italic part where the exception throwed)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T02:38:19+00:00Added an answer on May 18, 2026 at 2:38 am

    You are adding “A1001” twice as a key in a dictionary. That simply isn’t allowed. However, more urgently – why is that dictionary static? That means that everything, anywhere, shares that error collection.

    Suggestions:

    • make that not static (that is a bad idea – also, it isn’t synchronized)
    • check for existence of the key, and react accordingly:

      if(ErrorCodes.ContainsKey(eCode)) ErrorCodes[eCode].AddRange(lsDataItem);
      else ErrorCodes.Add(eCode, lsDataItem);
      

    As an aside, you might also consider implementing IDataErrorInfo, which is a built-in standard wrapper for this type of functionality, and will provide support for your error collection to work with a few standard APIs. But don’t rush into this until you need it ;p

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.