Beispiel #1
0
        public IActionResult Uploads()
        {
            var user = _authHelper.User();

            ViewBag.user = user;
            using (var context = new DigiSignContext())
            {
                var classification = context.SignerMClassification.ToList();

                ViewBag.classification = classification;
            }
            return(View());
        }
Beispiel #2
0
        /// <summary>
        /// Get the authenticated user
        /// </summary>
        /// <returns>\Std</returns>
        public SignerEmployee User()
        {
            _httpContext = _contextAccessor.HttpContext;
            if (_httpContext == null)
            {
                return(null);
            }
            if (_httpContext.Session.GetString(Auth.Session) == null)
            {
                return(null);
            }

            //var userid = HttpContext.Current.Session[Auth.Session].ToString();
            var employee_id = _httpContext.Session.GetString(Auth.Session);

            using (var context = new DigiSignContext())
            {
                var query = context.SignerEmployee.Where(s => s.EmployeeId == employee_id).FirstOrDefault();
                return(query);
            }
        }
        public void Logging(string activity)
        {
            var user = _authHelper.User();

            using (var context = new DigiSignContext())
            {
                lock (logging_lock)
                {
                    context.SignerLogs.Add(new SignerLogs
                    {
                        Activity = activity,
                        //ip_address = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"],
                        IpAddress = _contextAccessor.HttpContext.Connection.RemoteIpAddress.ToString(),
                        Users     = user == null ? 0 : Convert.ToInt32(user.EmployeeId),
                        //uri = HttpContext.Current.Request.ServerVariables["REQUEST_URI"],
                        Uri  = GetUri().ToString(),
                        Time = DateTime.Now
                    });
                    context.SaveChanges();
                }
            }
        }
Beispiel #4
0
        public ContentResult UploadFile()
        {
            dynamic resp;

            try
            {
                var user = _authHelper.User();

                if (user == null)
                {
                    resp = _commonHelper.Responder("error", "Oops!", "Please Relogin..!!!", "redirect('" + _appConfig.APP_ADDRESS + "/Auth/Get/');", true, "swal");
                }

                var requestor = new SignerRequests
                {
                    Company          = 1,
                    Sender           = user.EmployeeId,
                    RequestorEmail   = user.EmployeeEmail,
                    DepartmentId     = user.DepartmentId,
                    SenderNote       = Request.Form["notes"].ToString().Replace("\r\n", "<br>").Replace("<", " ").Replace(">", " "),
                    NextOrder        = 0,
                    Status           = "Draft",
                    WorkflowMethod   = Request.Form["workflowType"],
                    ClassificationId = Convert.ToInt32(Request.Form["classification"]),
                    CreatedTime      = DateTime.Now
                };

                using (var context = new DigiSignContext())
                {
                    context.SignerRequests.Add(requestor);
                    //var insert_one = context.SaveChanges();
                    var docKey = RandomGenerator.RandomString(32, false);

                    dynamic data = new ExpandoObject();
                    //data.request_id = requestor.id;
                    data.company           = 1;
                    data.folder            = Request.Form["folder"];
                    data.name              = Request.Form["name"].ToString().Replace("<", " ").Replace(">", " ");
                    data.category_id       = Request.Form["category"];
                    data.editted           = "No";
                    data.accessibility     = "Everyone";
                    data.public_permission = "sign_edit";
                    data.source            = "form";
                    data.file              = Request.Form.Files["fileupload"];
                    data.document_key      = docKey;
                    data.activity          = "File uploaded by <span class='text-primary'>" + user.employee_name + "</span>.";

                    if (requestor.WorkflowMethod == "COMBINE")
                    {
                        //var num = Request.Form.GetValues("num[]");
                        var num  = Request.Form["num[]"];
                        var tipe = Request.Form["tipe[]"];

                        if (String.IsNullOrEmpty(num))
                        {
                            resp = _commonHelper.Responder("error", "Oops!", "Please check your data..");
                            return(Content(JsonConvert.SerializeObject(resp), "application/json"));
                        }

                        List <string> userlist = new List <string>();

                        foreach (var valueNum in num)
                        {
                            var wfSequenceInput = Request.Form["workflowSequenceInput" + valueNum + "[]"];

                            if (!String.IsNullOrEmpty(wfSequenceInput))
                            {
                                foreach (var val in wfSequenceInput)
                                {
                                    if (userlist.Contains(val))
                                    {
                                        resp = _commonHelper.Responder("error", "Oops!", "Users in workflow must unique..");
                                        return(Content(JsonConvert.SerializeObject(resp), "application/json"));
                                    }

                                    userlist.Add(val);
                                }
                            }

                            var wfParalelInput = Request.Form["workflowParalelInput" + valueNum + "[]"];
                            if (!String.IsNullOrEmpty(wfParalelInput))
                            {
                                foreach (var val in wfParalelInput)
                                {
                                    if (userlist.Contains(val))
                                    {
                                        resp = _commonHelper.Responder("error", "Oops!", "Users in workflow must unique..");
                                        return(Content(JsonConvert.SerializeObject(resp), "application/json"));
                                    }
                                    userlist.Add(val);
                                }
                            }
                        }

                        if (!ComposeWorkflowCombine(num, tipe, requestor, context, data, docKey, user))
                        {
                            resp = _commonHelper.Responder("error", "Oops!", "Approver cannot be same as Uploader..");
                            return(Content(JsonConvert.SerializeObject(resp), "application/json"));
                        }
                    }
                    else
                    {
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #5
0
        private bool ComposeWorkflowCombine(string[] num, string[] tipe, SignerRequests requestor, DigiSignContext context, dynamic data,
                                            string docKey, SignerEmployee user)
        {
            try
            {
                var x = 0;

                var numCounter = 0;
                foreach (var valueNum in num)
                {
                    if (num.Length == 1)
                    {
                        var wfSequenceInput = Request.Form["workflowSequenceInput" + valueNum + "[]"];

                        if (!String.IsNullOrEmpty(wfSequenceInput))
                        {
                            if (wfSequenceInput.Count == 1)
                            {
                                foreach (var val in wfSequenceInput)
                                {
                                    if (user.EmployeeEmail == val)
                                    {
                                        return(false);
                                    }
                                }
                            }
                        }

                        var wfParalelInput = Request.Form["workflowParalelInput" + valueNum + "[]"];
                        if (!String.IsNullOrEmpty(wfParalelInput))
                        {
                            if (wfParalelInput.Count == 1)
                            {
                                foreach (var val in wfParalelInput)
                                {
                                    if (user.EmployeeEmail == val)
                                    {
                                        return(false);
                                    }
                                }
                            }
                        }
                    }

                    if (numCounter == 0)
                    {
                        var insert_one = context.SaveChanges();
                        data.request_id = requestor.Id;
                    }

                    if (tipe[numCounter] == "SEQ")
                    {
                        ComposeWokflowSeq(valueNum, context, data, docKey, user, ref x);
                    }
                    //else if (tipe[Convert.ToInt32(valueNum)] == "PAR")
                    else if (tipe[numCounter] == "PAR")
                    {
                        var workflowParalelInput = Request.Form["workflowParalelInput" + valueNum + "[]"];
                        foreach (var value in workflowParalelInput)
                        {
                            var employee             = context.SignerEmployee.Where(o => o.EmployeeEmail == value).FirstOrDefault();
                            var signer_workflow_item = new SignerWorkflow
                            {
                                RequestId  = data.request_id,
                                EmployeeId = Convert.ToInt32(employee.EmployeeId),
                                Document   = docKey,
                                Email      = employee.EmployeeEmail,
                                Status     = "PENDING",
                                Notes      = "PARALEL",
                                UpdatedBy  = Convert.ToInt32(user.EmployeeId),
                                OrderBy    = x
                            };
                            context.SignerWorkflow.Add(signer_workflow_item);
                            //var insertWorkflow = context.SaveChanges();
                        }
                        context.SaveChanges();
                        x++;
                    }

                    ++numCounter;
                }
            }
            catch (Exception ex)
            {
                //SignerHelper.LogEx(ex);
                throw ex;
            }

            return(true);
        }