Beispiel #1
0
    public static void GenerateDemoData(
      IIssueRepository issueRepository, 
      IProjectRepository projectRepository, 
      IAttachmentRepository attachmentRepository)
    {
      Project p = new Project("SHOP", "Webshop", "All issues related to the webshop.");
      projectRepository.Add(p);

      Issue i = new Issue(p, "Crash after payment", @"I have justed paid for two pairs of shoes - or rather I tried to. When I clicked 'Pay' all I got was a yellow error screen.", 3);

      issueRepository.Add(i);

      string errorReport = "This is an error report ...";
      Attachment att = new Attachment(i, "Error report", "Error report from end user", Encoding.UTF8.GetBytes(errorReport), "text/plain");
      attachmentRepository.Add(att);

      string logFile = "DEBUG 2014-01-22 15:45:07,610 166033ms  [9] Log4NetTraceListener   WriteLine          - Executing OperationResult OperationResult: type=OK, statusCode=200.";
      att = new Attachment(i, "Logfile", "Logfile with server stack trace", Encoding.UTF8.GetBytes(logFile), "text/plain");
      attachmentRepository.Add(att);

      i = new Issue(p, "Not calculating VAT correctly", @"When I add both shoes and socks it fails to calculate the VAT correctly.", 3);

      issueRepository.Add(i);

      i = new Issue(p, "General Failure?", @"When I press ctrl-P it says 'General failure reading harddisk'! Who is that General and why is he reading my hard disk?", 5);

      issueRepository.Add(i);
    }
    // "id" is issue ID
    public object Post(int id, AddAttachmentArgs args, IFile attachment = null)
    {
      return ExecuteInUnitOfWork(() =>
        {
          Issue issue = IssueRepository.Get(id);
          Attachment att;
          if (attachment != null)
          {
            using (Stream s = attachment.OpenStream())
            {
              byte[] content = s.ReadAllBytes();
              att = new Attachment(issue, args.Title, args.Description, content, attachment.ContentType.MediaType);
            }
          }
          else
          {
            att = new Attachment(issue, args.Title, args.Description, null, null);
          }

          AttachmentRepository.Add(att);

          Uri attUrl = typeof(AttachmentResource).CreateUri(new { id = att.Id });

          return new OperationResult.Created { RedirectLocation = attUrl };
        });
    }
    // "id" is project ID
    public object Post(int id, AddIssueArgs args, IFile attachment = null)
    {
      return ExecuteInUnitOfWork(() =>
      {
        Project p = ProjectRepository.Get(id);

        Issue i = new Issue(p, args.Title, args.Description, args.Severity);
        IssueRepository.Add(i);

        if (args.Attachment != null && attachment != null)
        {
          using (Stream s = attachment.OpenStream())
          {
            byte[] content = s.ReadAllBytes();
            Attachment att = new Attachment(i, args.Attachment.Title, args.Attachment.Description, content, attachment.ContentType.MediaType);
            AttachmentRepository.Add(att);
          }
        }

        Uri issueUrl = typeof(IssueResource).CreateUri(new { id = i.Id });

        return new OperationResult.Created { RedirectLocation = issueUrl };
      });
    }