Ejemplo n.º 1
0
 public ActionResult DigitalInvocation()
 {
     try
     {
         using (var db = new StoreContext())
         {
             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);
             var item = new HomeDigitalInvocationModel();
             return(View("DigitalInvocation", item));
         }
     }
     catch (Exception ex)
     {
         return(View("Error", new HandleErrorInfo(ex, "Home", "DigitalInvocation")));
     }
 }
Ejemplo n.º 2
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")));
            }
        }