public ActionResult DeleteInvocationDocument([DataSourceRequest] DataSourceRequest request, int?id)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (var db = new StoreContext())
                    {
                        InvocationDocument item = db.InvocationDocuments.Find(Convert.ToInt32(id));
                        db.InvocationDocuments.Attach(item);

                        string fileName = Server.MapPath(item.DocumentURL);
                        if (System.IO.File.Exists(fileName))
                        {
                            System.IO.File.Delete(fileName);
                        }

                        db.InvocationDocuments.Remove(item);
                        db.SaveChanges();
                    }
                }
                return(Json("1", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
        public ChangeSignatureTestState(TestWorkspace workspace)
        {
            Workspace     = workspace;
            _testDocument = Workspace.Documents.SingleOrDefault(d => d.CursorPosition.HasValue);

            if (_testDocument == null)
            {
                throw new ArgumentException("markup does not contain a cursor position", nameof(workspace));
            }

            InvocationDocument     = Workspace.CurrentSolution.GetDocument(_testDocument.Id);
            ChangeSignatureService = InvocationDocument.GetLanguageService <AbstractChangeSignatureService>();
        }
 public ActionResult UpdateInvocationDocument(int?id)
 {
     try
     {
         using (var db = new StoreContext())
         {
             this.InvocationDocumentViewBugs(db);
             InvocationDocument invocationDocument = db.InvocationDocuments.Find(id);
             var item = new InvocationDocumentTemplate();
             item.InvocationDocumentId = invocationDocument.InvocationDocumentId;
             item.InvocationId         = invocationDocument.InvocationId;
             item.DocumentTypeId       = invocationDocument.DocumentTypeId;
             item.DocumentGuid         = invocationDocument.DocumentGuid;
             ViewBag.fileName          = Guid.NewGuid().ToString();
             return(View("InvocationDocumentTemplate", item));
         }
     }
     catch (Exception ex)
     {
         return(HttpNotFound(ex.Message));
     }
 }
Example #4
0
        public ActionResult DigitalInvocation(HomeDigitalInvocationModel homeDigitalInvocationModel, string folder, string file1, string file2, string file3, string file4)
        {
            try
            {
                string pxPath        = "~/FileStorage/Invocation/";
                string directoryPath = Server.MapPath(pxPath + folder);

                using (var db = new StoreContext())
                {
                    bool isCapthcaValid = ValidateCaptcha(Request["g-recaptcha-response"]);
                    if (!isCapthcaValid)
                    {
                        TempData["requestMessage"] = "Captcha ստուգումը խափանվեց";
                        if (Directory.Exists(directoryPath))
                        {
                            Directory.Delete(directoryPath, true);
                        }
                        ViewBag.InvocationFile = Guid.NewGuid().ToString();
                        ViewBag.File1          = Guid.NewGuid().ToString();
                        ViewBag.File2          = Guid.NewGuid().ToString();
                        ViewBag.File3          = Guid.NewGuid().ToString();
                        ViewBag.File4          = Guid.NewGuid().ToString();
                        ViewBag.Folder         = Guid.NewGuid().ToString();
                        this.DigitalInvocationViewBugs(db);
                        return(View("DigitalInvocation", homeDigitalInvocationModel));
                    }

                    if (ModelState.IsValid)
                    {
                        var invocation = new Models.Invocation();
                        invocation.FirstName           = homeDigitalInvocationModel.FirstName;
                        invocation.LastName            = homeDigitalInvocationModel.LastName;
                        invocation.PatronymicName      = homeDigitalInvocationModel.PatronymicName;
                        invocation.BirthDate           = homeDigitalInvocationModel.BirthDate;
                        invocation.RegionId            = homeDigitalInvocationModel.RegionId;
                        invocation.CommunityId         = homeDigitalInvocationModel.CommunityId;
                        invocation.Street              = homeDigitalInvocationModel.Street;
                        invocation.Home                = homeDigitalInvocationModel.Home;
                        invocation.Room                = homeDigitalInvocationModel.Room;
                        invocation.ResidentMail        = homeDigitalInvocationModel.ResidentMail;
                        invocation.OrganizationId      = homeDigitalInvocationModel.OrganizationId;
                        invocation.InvocationPurposeId = homeDigitalInvocationModel.InvocationPurposeId;

                        // Nonvisible fields
                        invocation.InvocationDate     = db.Database.SqlQuery <DateTime>("SELECT GETDATE()").Single();
                        invocation.InitiationDate     = db.Database.SqlQuery <DateTime>("SELECT GETDATE()").Single();
                        invocation.InitiationTypeId   = 2;
                        invocation.InvocationStatusId = 1;

                        db.Invocations.Add(invocation);
                        db.SaveChanges();

                        if (!Directory.Exists(directoryPath))
                        {
                            Directory.CreateDirectory(directoryPath);
                        }

                        string path1 = Server.MapPath(pxPath + folder);
                        string path2 = Server.MapPath(pxPath + invocation.InvocationId.ToString());

                        if (Directory.Exists(path1))
                        {
                            Directory.Move(path1, path2);
                        }

                        var fileArray = new string[] { file1, file2, file3, file4 };

                        foreach (string item in fileArray)
                        {
                            if (!string.IsNullOrEmpty(item))
                            {
                                string[] files = Directory.GetFiles(Server.MapPath(pxPath + invocation.InvocationId.ToString()), item + ".*");
                                if (files != null)
                                {
                                    foreach (var file in files)
                                    {
                                        var item1 = new InvocationDocument();
                                        item1.InvocationId   = invocation.InvocationId;
                                        item1.DocumentURL    = pxPath + invocation.InvocationId.ToString() + "/" + Path.GetFileName(file);
                                        item1.DocumentTypeId = Array.IndexOf(fileArray, item) + 1;
                                        item1.DocumentGuid   = new Guid(item);
                                        db.InvocationDocuments.Add(item1);
                                    }
                                }
                            }
                        }

                        db.Invocations.Attach(invocation);
                        db.Entry(invocation).State = EntityState.Modified;
                        db.SaveChanges();
                        return(RedirectToAction("InvocationDetail", new { id = invocation.InvocationId }));
                    }
                    else
                    {
                        TempData["requestMessage"] = "մոդելը վավեր չէ";
                        if (Directory.Exists(directoryPath))
                        {
                            Directory.Delete(directoryPath, true);
                        }
                        ViewBag.InvocationFile = Guid.NewGuid().ToString();
                        ViewBag.File1          = Guid.NewGuid().ToString();
                        ViewBag.File2          = Guid.NewGuid().ToString();
                        ViewBag.File3          = Guid.NewGuid().ToString();
                        ViewBag.File4          = Guid.NewGuid().ToString();
                        ViewBag.Folder         = Guid.NewGuid().ToString();
                        this.DigitalInvocationViewBugs(db);
                        return(View("DigitalInvocation", homeDigitalInvocationModel));
                    }
                }
            }
            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Home", "DigitalInvocation")));
            }
        }
        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")));
            }
        }