예제 #1
0
        public ActionResult UploadAttachments(HttpPostedFileBase[] files, FormCollection form)
        {
            string[] typeIDs = form.GetValues("attachmentTypes");
            string   fileExtension;

            for (int i = 0; i < files.Length; i++)
            {
                try
                {
                    fileExtension = Path.GetExtension(files[i].FileName);

                    if (fileExtension != ".jpg" && fileExtension != ".pdf" && fileExtension != ".png")
                    {
                        throw new Exception("Error, Invalid extension");
                    }

                    string path = Path.Combine(Server.MapPath("~/Attachments"),
                                               Path.GetRandomFileName().Replace(".", "") + Path.GetExtension(files[i].FileName));
                    files[i].SaveAs(path);

                    Attachment attachment = new Attachment
                    {
                        TypeID       = Convert.ToInt64(typeIDs[i]),
                        Date         = DateTime.Now,
                        SpecialistID = User.Identity.GetUserId <long>(),
                        CitizenID    = Convert.ToInt64(form["Id"]),
                        FilePath     = path,
                        FileName     = files[i].FileName,
                        IsRead       = false
                    };

                    MedicalHistoryBusinessLayer.SaveAttachment(attachment);
                    NotificationsHub.NotifyAttachment(attachment.CitizenID, User.Identity.GetCitizen().Name, attachment.FileName);
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }
            }

            return(Redirect(Request.UrlReferrer.ToString()));
        }