Esempio n. 1
0
        public ActionResult CreateFormVars(FormVariableModel frmVar)
        {
            if (frmVar.Description.Length < 1 || frmVar.Name.Length < 1 || frmVar.Value.Length < 1)
            {
                ModelState.AddModelError("Form Variable", "Form Variable should have a name, a description and a value");
            }

            if (!ModelState.IsValid)
            {
                return(Json(ModelState));
            }
            using (var dbContext = new SarahIncContext())
            {
                var formVar = (from f in dbContext.FormVariable
                               where f.Name == frmVar.Name
                               select f).FirstOrDefault();

                if (formVar != null)
                {
                    return(Json(ModelState));
                }

                formVar = new FormVariable();
                dbContext.FormVariable.Add(formVar);
                formVar.FormId      = frmVar.FormId;
                formVar.Description = frmVar.Description;
                formVar.Name        = frmVar.Name;
                formVar.Value       = frmVar.Value;
                dbContext.SaveChanges();
                frmVar.Id = formVar.FormDataId;
            }
            // Return the updated frmVar. Also return any validation errors.
            return(Json(ModelState));
        }
        public void AddFormVariabelTest()
        {
            var variable = new FormVariable();

            variable.database_config = new DatabaseConfig()
            {
                column_name = "column_value",
                table_name  = "t_col",
            };
            variable.form_id           = 1;
            variable.variable_name_chs = "我";
            variable.data_type         = DataType.String;
            variable.default_value     = "column_value";
            _formVariableService.AddFormVariabel(variable, 0);
        }
Esempio n. 3
0
        public async Task <int> UpsertForm([FromBody] TempFormModel tfm = null)
        {
            Form formData;
            var  dbUserId = HttpContext.Session.GetInt32("UserId");

            if (dbUserId != null)
            {
                try
                {
                    var dbUserIdInt = Convert.ToInt32(dbUserId);

                    using (var sarahDb = new SarahIncContext())
                    {
                        if (tfm != null)
                        {
                            formData = await(from t in sarahDb.Form
                                             where t.TempId == tfm.TempId
                                             select t).FirstOrDefaultAsync();

                            if (formData == null)
                            {
                                return(-1);
                            }

                            var fm = new FormModel(_mapper);
                            _mapper.Map(tfm, fm);
                            _mapper.Map(fm, formData);
                            formData.LastSaved  = DateTime.Now;
                            formData.LastUserId = dbUserIdInt;

                            foreach (var formVar in tfm.FormVariableModels)
                            {
                                var fv = await(from f in sarahDb.FormVariable
                                               where f.Name == formVar.Name && f.FormId == formData.TempId
                                               select f).FirstAsync();

                                fv.Value = formVar.Value;

                                if (fv.Name == "frmEvalList" && fv.Value != "[Evaluators]")
                                {
                                    var evalList = formVar.Value.Split("<span id=\"ev").ToList();

                                    if (evalList.Count > 0)
                                    {
                                        foreach (var evalListItem in evalList)
                                        {
                                            var num = evalListItem.IndexOf('"');
                                            if (num != -1)
                                            {
                                                var numId      = Convert.ToInt32(evalListItem.Substring(0, num));
                                                var userExists = await sarahDb.FormUser.FirstOrDefaultAsync(x => x.UserId == numId && x.TempEvalFormId == formData.TempId);

                                                if (userExists == null)
                                                {
                                                    var fu = new FormUser();
                                                    fu.TempEvalFormId = formData.TempId;
                                                    var userInFormUsers = await sarahDb.User.FirstAsync(x => x.UserId == numId);

                                                    fu.UserId = userInFormUsers.UserId;
                                                    sarahDb.FormUser.Add(fu);
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            foreach (var formArea in tfm.FormAreaModels)
                            {
                                var fa = await(from f in sarahDb.FormArea
                                               where f.Name == formArea.Name && f.FormId == formData.TempId
                                               select f).FirstOrDefaultAsync();

                                if (fa != null)
                                {
                                    fa.Value = formArea.Value;
                                }
                                else
                                {
                                    fa = new FormArea();
                                    sarahDb.FormArea.Add(fa);
                                    fa.Name   = formArea.Name;
                                    fa.FormId = formData.TempId;
                                    fa.Value  = formArea.Value;
                                }
                            }

                            var printVarModel = new PrintVariableModel(_mapper);
                            foreach (var printVar in tfm.PrintVariableModels)
                            {
                                printVarModel = printVar;
                            }

                            var frmPageBreak = sarahDb.PrintVariable.FirstOrDefault(x => x.FormId == formData.TempId);

                            if (frmPageBreak == null)
                            {
                                frmPageBreak = new PrintVariable();
                                sarahDb.PrintVariable.Add(frmPageBreak);
                                frmPageBreak.FormId = formData.TempId;
                            }

                            frmPageBreak.PageBreaks = printVarModel.PageBreaks;
                        }
                        else
                        {
                            formData = new Form();
                            sarahDb.Form.Add(formData);
                            formData.CreatedOn  = DateTime.Now;
                            formData.LastUserId = dbUserIdInt;
                            formData.LastSaved  = DateTime.Now;
                            await sarahDb.SaveChangesAsync();

                            var rootFormVars = (from f in sarahDb.FormVariable
                                                where f.FormId == null
                                                select f);

                            if (rootFormVars.Any())
                            {
                                foreach (var rootFormVar in rootFormVars)
                                {
                                    var newFormVar = new FormVariable();
                                    sarahDb.FormVariable.Add(newFormVar);
                                    newFormVar.FormId      = formData.TempId;
                                    newFormVar.Description = rootFormVar.Description;
                                    newFormVar.Name        = rootFormVar.Name;
                                    newFormVar.Value       = rootFormVar.Value;
                                }
                            }

                            tfm        = new TempFormModel();
                            tfm.TempId = formData.TempId;
                        }


                        formData.LastUserId = dbUserIdInt;
                        await sarahDb.SaveChangesAsync();

                        if (formData.FormUser.FirstOrDefault(u => u.UserId == dbUserIdInt) == null && HttpContext.Session.GetString("Role") != Constants.RoleAdminStr)
                        {
                            var fu = new FormUser();
                            fu.TempEvalFormId = formData.TempId;
                            fu.UserId         = dbUserIdInt;
                            sarahDb.FormUser.Add(fu);
                            await sarahDb.SaveChangesAsync();
                        }
                    }

                    return(tfm.TempId);
                }
                catch (Exception ex)
                {
                    var cat = 7;
                }
            }

            return(-1);
        }