コード例 #1
0
 public ActionResult CreateInvocationDocument(int?id)
 {
     try
     {
         using (var db = new StoreContext())
         {
             this.InvocationDocumentViewBugs(db);
             var item = new InvocationDocumentTemplate();
             item.InvocationId = id;
             ViewBag.fileName  = Guid.NewGuid().ToString();
             return(View("InvocationDocumentTemplate", item));
         }
     }
     catch (Exception ex)
     {
         return(HttpNotFound(ex.Message));
     }
 }
コード例 #2
0
        public ActionResult SaveInvocationDocument(InvocationDocumentTemplate invocationDocumentTemplate)
        {
            try
            {
                using (var db = new StoreContext())
                {
                    string[] files = Directory.GetFiles(Server.MapPath("~/FileStorage/Invocation/" + invocationDocumentTemplate.InvocationId.ToString()), invocationDocumentTemplate.DocumentGuid + ".*");

                    if (invocationDocumentTemplate.InvocationDocumentId == 0)
                    {
                        var invocationDocument = new InvocationDocument();
                        invocationDocument.InvocationId   = invocationDocumentTemplate.InvocationId;
                        invocationDocument.DocumentTypeId = invocationDocumentTemplate.DocumentTypeId;
                        invocationDocument.DocumentGuid   = invocationDocumentTemplate.DocumentGuid;
                        if (files != null)
                        {
                            foreach (var file in files)
                            {
                                invocationDocument.DocumentURL = "~/FileStorage/Invocation/" + invocationDocumentTemplate.InvocationId.ToString() + "/" + Path.GetFileName(file);
                            }
                        }
                        invocationDocument.Id      = userId;
                        invocationDocument.LogDate = db.Database.SqlQuery <DateTime>("SELECT GETDATE()").Single();
                        db.InvocationDocuments.Add(invocationDocument);
                    }
                    else
                    {
                        InvocationDocument invocationDocument = db.InvocationDocuments.Find(invocationDocumentTemplate.InvocationDocumentId);
                        invocationDocument.InvocationId   = invocationDocumentTemplate.InvocationId;
                        invocationDocument.DocumentTypeId = invocationDocumentTemplate.DocumentTypeId;
                        invocationDocument.DocumentGuid   = invocationDocumentTemplate.DocumentGuid;
                        if (files != null)
                        {
                            foreach (var file in files)
                            {
                                invocationDocument.DocumentURL = "~/FileStorage/Invocation/" + invocationDocumentTemplate.InvocationId.ToString() + "/" + Path.GetFileName(file);
                            }
                        }
                        invocationDocument.Id      = userId;
                        invocationDocument.LogDate = db.Database.SqlQuery <DateTime>("SELECT GETDATE()").Single();
                        db.InvocationDocuments.Attach(invocationDocument);
                        db.Entry(invocationDocument).State = EntityState.Modified;
                    }
                    db.SaveChanges();

                    //Clear folder from unbound files
                    string[] allFiles = Directory.GetFiles(Server.MapPath("~/FileStorage/Invocation/" + invocationDocumentTemplate.InvocationId.ToString()));
                    foreach (string fileName in allFiles)
                    {
                        string fn = Path.GetFileNameWithoutExtension(fileName);

                        int fileCnt = db.InvocationDocuments.Where(p => p.DocumentGuid.ToString() == fn).Count();
                        if (fileCnt == 0)
                        {
                            if (System.IO.File.Exists(fileName))
                            {
                                System.IO.File.Delete(fileName);
                            }
                        }
                    }

                    return(this.Json(new { statuscode = 1, message = "" }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Invocation", "SaveInvocationDocument")));
            }
        }