public ActionResult RemoveAttachment(int announcementType, int announcementId, int announcementAssignedAttributeId)
        {
            EnsureAnnouncementExsists(announcementId, announcementType);
            var attr = SchoolLocator.AnnouncementAssignedAttributeService.RemoveAttachment(announcementAssignedAttributeId);
            var res  = AnnouncementAssignedAttributeViewData.Create(attr, null);

            return(Json(res, HTML_CONTENT_TYPE, 6));
        }
        public ActionResult AddAttachment(int announcementType, int announcementId, int assignedAttributeId, int attachmentId)
        {
            EnsureAnnouncementExsists(announcementId, announcementType);
            var attr = SchoolLocator.AnnouncementAssignedAttributeService.AddAttachment((AnnouncementTypeEnum)announcementType, announcementId, assignedAttributeId, attachmentId);
            var attrAttachmentInfo = SchoolLocator.AttachementService.TransformToAttachmentInfo(attr.Attachment);
            var res = AnnouncementAssignedAttributeViewData.Create(attr, attrAttachmentInfo);

            return(Json(res, HTML_CONTENT_TYPE, 6));
        }
        public ActionResult CloneAttachment(int attachmentId, int announcementId, int announcementType, int announcementAssignedAttributeId)
        {
            EnsureAnnouncementExsists(announcementId, announcementType);
            var attribute      = SchoolLocator.AnnouncementAssignedAttributeService.GetAssignedAttributeById(announcementAssignedAttributeId);
            var attContentInfo = SchoolLocator.AttachementService.GetAttachmentContent(attachmentId);

            if (attContentInfo != null && announcementId == attribute.AnnouncementRef)
            {
                byte[] bin  = attContentInfo.Content;
                string name = attContentInfo.Attachment.Name;
                attribute = SchoolLocator.AnnouncementAssignedAttributeService.UploadAttachment((AnnouncementTypeEnum)announcementType, announcementId, announcementAssignedAttributeId, bin, name);
            }
            var attrAttachmentInfo = attribute.Attachment != null?SchoolLocator.AttachementService.TransformToAttachmentInfo(attribute.Attachment) : null;

            var res = AnnouncementAssignedAttributeViewData.Create(attribute, attrAttachmentInfo);

            return(Json(res, HTML_CONTENT_TYPE, 6));
        }
        public ActionResult UploadAttachment(int announcementType, int announcementId, int assignedAttributeId, string fileName)
        {
            var length = Request.InputStream.Length;

            if (length == 0)
            {
                return(Json(new ChalkableException(ChlkResources.ERR_FILE_REQUIRED)));
            }

            var bin = new byte[length];

            Request.InputStream.Read(bin, 0, (int)length);

            var attr = SchoolLocator.AnnouncementAssignedAttributeService.UploadAttachment((AnnouncementTypeEnum)announcementType, announcementId, assignedAttributeId, bin, fileName);
            var attrAttachmentInfo = SchoolLocator.AttachementService.TransformToAttachmentInfo(attr.Attachment);
            var res = AnnouncementAssignedAttributeViewData.Create(attr, attrAttachmentInfo);

            return(Json(res, HTML_CONTENT_TYPE, 6));
        }
        public ActionResult UploadAttachment(int announcementType, int announcementId, int assignedAttributeId)
        {
            try
            {
                EnsureAnnouncementExsists(announcementId, announcementType);

                byte[] bin;
                string name;
                if (!GetFileFromRequest(out bin, out name))
                {
                    return(Json(new ChalkableException(ChlkResources.ERR_FILE_REQUIRED)));
                }
                var attr = SchoolLocator.AnnouncementAssignedAttributeService.UploadAttachment((AnnouncementTypeEnum)announcementType, announcementId, assignedAttributeId, bin, name);
                var attrAttachmentInfo = SchoolLocator.AttachementService.TransformToAttachmentInfo(attr.Attachment);
                var res = AnnouncementAssignedAttributeViewData.Create(attr, attrAttachmentInfo);
                return(Json(res, HTML_CONTENT_TYPE, 6));
            }
            catch (Exception exception)
            {
                return(HandleAttachmentException(exception));
            }
        }