public ActionResult Create(Guid entryId, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                if (file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);

                    var entry = _entryRepository.FindBy(entryId);

                    var attachment = new Attachment
                                         {
                                             Entry = entry,
                                             FileName = fileName,
                                             ContentLength = file.ContentLength,
                                             ContentType = file.ContentType
                                         };

                    _attachmentRepository.Save(attachment);

                    var path = Path.Combine(Server.MapPath(AttachmentsPath), attachment.Id.ToString());

                    file.SaveAs(path);

                    TempData["Message"] = string.Format("Attachment {0} created successfully", attachment.FileName);

                    var controller = "Topic";

                    if (entry.Actual is Post)
                    {
                        controller = "Post";
                    }

                    return RedirectToAction("Details", controller, new {attachment.Entry.Id});
                }
            }

            TempData["Message"] = "Failed to create attachment";

            return RedirectToAction("Create", new {entryId});
        }
示例#2
0
 public virtual void Remove(Attachment attachment)
 {
     attachment.Entry = null;
     _attachments.Remove(attachment);
 }
示例#3
0
 public virtual void Add(Attachment attachment)
 {
     attachment.Entry = this;
     _attachments.Add(attachment);
 }
        private void AttachmentIs_(string action)
        {
            switch (action)
            {
                case Loaded:
                    _attachment = Session.Load<Attachment>(_attachmentId);
                    break;

                case Saved:
                    Session.SaveOrUpdate(_attachment);
                    Assert.That(Session.IsDirty());
                    Session.Flush();
                    _attachmentId = _attachment.Id;
                    break;

                case Modified:
                    _attachment.FileName = string.Format("/{0}/{1}", Modified, _attachment.FileName);
                    _attachment.ContentType = string.Format("{0}/{1}", Modified, _attachment.ContentType);
                    _attachment.ContentLength += 123;
                    break;

                case Deleted:
                    Session.Delete(_attachment);
                    Assert.That(Session.IsDirty());
                    Session.Flush();
                    break;
            }
        }
 private void Attachment()
 {
     _attachment = AttachmentFixtures.Attachment(1);
 }
        //
        // GET: /Attachment/Create

        public ViewResult Create(Guid entryId)
        {
            var attachment = new Attachment {Entry = _entryRepository.FindBy(entryId)};

            return View(attachment);
        }