using System; using System.Collections.Generic; namespace DocumentStore.Question   // remove semi colon from here and put starting { and ending } at the end of the code {      /// /// ! IMPORTANT ! /// The following conditions must be

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

//The tostring method is not returning proper results

//Please Use C#
 
using System;
using System.Collections.Generic;

namespace DocumentStore.Question   // remove semi colon from here and put starting { and ending } at the end of the code
{
    

/// <summary>
/// ! IMPORTANT !
/// The following conditions must be satisfied:
///   - The documents property show return the contents of the documents store.
///     This content should be readonly, ensure that there is no way to edit the data.
///   - The `AddDocument(string document)` function should add a new document to the store.
///     If the store is full, an InvalidOperationException should be thrown.
///   - The ToString() function should return the document store's description in the format of 
///     "Document store: number of documents/capacity"
///     For example: if the store contains 1 document, and the capacity is 2, the expected output is:
///     "Document store: 1/2"   
///   - If a document is a duplicate, it will be ignored when being added.
/// 
/// Please identify and fix any/all issues with the code!
/// </summary>
public class DocumentStoreService
{

  /// create A list of `documents`. Which are just strings for the purpose of this example.
      
  /// <summary>
  /// A list of `documents`. Which are just strings for the purpose of this example.
  /// </summary>
  private readonly List<string> documents = new List<string>();

  /// <summary>
  /// The maximum capacity allowed in the document store.
  /// </summary>

  private readonly int capacity;

  public DocumentStoreService(int capacity)
  {
    this.capacity = capacity;    // both variables have same name - compiler will get confused and give error
  }

  public int Capacity { get { return capacity; } }
  
  public IEnumerable<string> Documents
  {
    get { return documents; }       // returning the contents
  }

  public void AddDocument(string document)
  {
    if (documents.Capacity > capacity)             // capacity is variable while Capacity is property of list
      throw new InvalidOperationException();

    var isDuplicated = false; // Would we set this to false to start off with?
    for(int i=0; i<documents.Capacity; i++)
    {
      for(int j=1; j<documents.Capacity; j++)
      {
        if (documents[i] == documents[j])         // both for loop are the same, they need to be different
        {
          isDuplicated = true;
        }
      }
    }
    if (!isDuplicated)
    {
      documents.Add(document);
    }
  }

  public override string ToString()
  {
    return $"Document store: " + (documents.Capacity / capacity);    // incorrect placement of quotes
  }
  
}

// class having main() method
class Test
{
    public static void Main(string[]args)
    {
        DocumentStoreService ob = new DocumentStoreService(2);
        ob.AddDocument("1");
        //ob.AddDocument("2");
       // ob.AddDocument("3");
        Console.WriteLine(ob.ToString());
    }
}

} // namespace ends

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Introduction to Template
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-engineering and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY