Esempio n. 1
0
        public async Task <ActionResult> Index(int?id)
        {
            ViewBag.FormId = id ?? -1;

            if (HttpContext.Session.GetInt32("UserId") == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (HttpContext.Session.GetString("Role") != "Admin" && id != -1)  // Check if user has valid access to the form
            {
                var db       = new SarahIncContext();
                var dbUserId = Convert.ToInt32(HttpContext.Session.GetInt32("UserId"));
                var form     = db.Form.FirstOrDefault(x => x.TempId == id);
                var user     = form.FormUser.FirstOrDefault(x => x.UserId == dbUserId);
                if (user == null)
                {
                    RedirectToAction("Index", "Admin");
                }
            }

            if (id == -1)
            {
                return(RedirectToAction("Index", "Form", new { id = await UpsertForm() }));
            }

            return(View());
        }
Esempio n. 2
0
        public JsonResult GetFormVars(int formId)
        {
            var sarahDb    = new SarahIncContext();
            var frmVarList = new List <FormVariableModel>();

            var formVarList = sarahDb.FormVariable.Select(formVars => new FormVariableModel(_mapper)
            {
                Id          = formVars.FormDataId,
                FormId      = formVars.FormId,
                Description = formVars.Description,
                Name        = formVars.Name,
                Value       = formVars.Value
            }).Where(f => f.FormId == formId).OrderBy(o => o.Name);

            if (formVarList.Any())
            {
                foreach (var formVar in formVarList)
                {
                    frmVarList.Add(formVar);
                }
            }

            var result = frmVarList;

            return(Json(result));
        }
Esempio n. 3
0
        public ActionResult UpdateFormVars(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.FormDataId == frmVar.Id
                               select f).FirstOrDefault();

                if (formVar == null)
                {
                    return(Json(ModelState));
                }
                formVar.FormId      = frmVar.FormId;
                formVar.Description = frmVar.Description;
                formVar.Name        = frmVar.Name;
                formVar.Value       = frmVar.Value;
                dbContext.SaveChanges();
            }
            // Return the updated frmVar. Also return any validation errors.
            return(Json(ModelState));
        }
Esempio n. 4
0
        public ActionResult CreateEvalType(string evalTypeVar)
        {
            if (string.IsNullOrEmpty(evalTypeVar))
            {
                ModelState.AddModelError("Evaluation Type Variable", "Evaluation Type Variable should have a name");
            }

            if (!ModelState.IsValid)
            {
                return(Json(ModelState));
            }
            using (var dbContext = new SarahIncContext())
            {
                var evalType   = new EvalTypeVarModel();
                var evalTypVar = (from e in dbContext.Evaluation
                                  where e.Type == evalTypeVar
                                  select e).FirstOrDefault();

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

                evalTypVar = new Evaluation();
                dbContext.Evaluation.Add(evalTypVar);
                evalTypVar.Type = evalTypeVar;
                dbContext.SaveChanges();
                evalType.Id   = evalTypVar.Id;
                evalType.Name = evalTypeVar;
            }
            // Return the updated evalTypeVar. Also return any validation errors.
            return(Json(ModelState));
        }
Esempio n. 5
0
        public ActionResult UpdateTmplVars(TemplateVariableModel tmplVar)
        {
            if (tmplVar.Description.Length < 1 || tmplVar.Name.Length < 1 || tmplVar.Value.Length < 1)
            {
                ModelState.AddModelError("Template Variable", "Template Variable should have a name, a description and a value");
            }

            if (!ModelState.IsValid)
            {
                return(Json(ModelState));
            }
            using (var dbContext = new SarahIncContext())
            {
                var tplVar = (from t in dbContext.TemplateVariable
                              where t.TmplId == tmplVar.TmplId
                              select t).FirstOrDefault();

                if (tplVar == null)
                {
                    return(Json(ModelState));
                }
                tplVar.UserId      = tmplVar.UserId;
                tplVar.Description = tmplVar.Description;
                tplVar.Name        = tmplVar.Name;
                tplVar.Value       = tmplVar.Value;
                dbContext.SaveChanges();
            }
            // Return the updated tmplVar. Also return any validation errors.
            return(Json(ModelState));
        }
Esempio n. 6
0
        public JsonResult UpsertUser([FromBody] UserModel um)
        {
            using (var dbContext = new SarahIncContext())
            {
                var curUser = (from u in dbContext.User
                               where u.UserId == um.UserId
                               select u).FirstOrDefault();
                um.MapUser();
                if (curUser == null)
                {
                    curUser = new User();
                    dbContext.User.Add(curUser);
                    _mapper.Map(um, curUser);
                    curUser.Password = UserData.CreateHash(um.NewPass);
                }
                else
                {
                    um.Password = curUser.Password;
                    _mapper.Map(um, curUser);
                }

                dbContext.SaveChanges();

                return(Json(curUser.UserId));
            }
        }
Esempio n. 7
0
        public async Task <TU> ReadRecordById <TU, TV>(int id, int secondId = 0) where TV : class where TU : new()
        {
            var record = new TU();

            try
            {
                using (var db = new SarahIncContext())
                {
                    TV result;

                    if (secondId == 0)
                    {
                        result = await db.Set <TV>().FindAsync(id);
                    }
                    else
                    {
                        result = await db.Set <TV>().FindAsync(id, secondId);
                    }

                    _mapper.Map(result, record);
                }
            }
            catch (Exception ex)
            {
                Logging.LogError(ex.Message, MethodBase.GetCurrentMethod().ToString(), typeof(TU) + " " + id);
            }

            return(record);
        }
Esempio n. 8
0
        public JsonResult GetTplVars(string sec, string subSec, string desc)
        {
            var sarahDb    = new SarahIncContext();
            var dbUserId   = Convert.ToInt32(HttpContext.Session.GetInt32("UserId"));
            var tplVarList = new List <TemplateVariableModel>();

            var tmplVarList = sarahDb.TemplateVariable.Select(tmplVars => new TemplateVariableModel(_mapper)
            {
                TmplId      = tmplVars.TmplId,
                UserId      = tmplVars.UserId,
                Section     = tmplVars.Section,
                SubSection  = tmplVars.SubSection,
                Description = tmplVars.Description,
                Name        = tmplVars.Name,
                Value       = tmplVars.Value
            }).Where(f => (f.UserId == dbUserId || f.UserId == null) && f.Section == sec && f.SubSection == subSec && f.Description == desc).OrderBy(o => o.Name);

            if (tmplVarList.Any())
            {
                foreach (var tmplVar in tmplVarList)
                {
                    tplVarList.Add(tmplVar);
                }
            }

            var result = tplVarList;

            return(Json(result));
        }
Esempio n. 9
0
        public async Task <bool> DeleteRecord <TU>(int id, int secondId = 0) where TU : class
        {
            try
            {
                using (var db = new SarahIncContext())
                {
                    TU record;

                    if (secondId == 0)
                    {
                        record = await db.Set <TU>().FindAsync(id);
                    }
                    else
                    {
                        record = await db.Set <TU>().FindAsync(id, secondId);
                    }

                    db.Set <TU>().Remove(record);
                    await db.SaveChangesAsync();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Logging.LogError(ex.Message, MethodBase.GetCurrentMethod().ToString(), typeof(TU) + " " + id);
            }

            return(false);
        }
Esempio n. 10
0
        public static Tuple <int, int?> GetPrimaryKeys <TU>(TU entity)
        {
            using (var db = new SarahIncContext())
            {
                var keyNames     = db.Model.FindEntityType(typeof(TU)).FindPrimaryKey().Properties.Select(x => x.Name).ToList();
                var keyNameCount = keyNames.Count;

                return(new Tuple <int, int?>((int)entity.GetType().GetProperty(keyNames[0]).GetValue(entity, null),
                                             keyNameCount > 1 ? (int?)entity.GetType().GetProperty(keyNames[1]).GetValue(entity, null) : null));;
            }
        }
Esempio n. 11
0
        public static IEnumerable <EvaluationFormModel> GetKendoEvaluationTypes()
        {
            using (var dbContext = new SarahIncContext())
            {
                var eval = (from e in dbContext.Evaluation
                            select e);

                return(eval.Select(evalElem => new EvaluationFormModel {
                    EvalTypeId = evalElem.Id - 1, EvaluationType = evalElem.Type
                }).ToList());
            }
        }
Esempio n. 12
0
        public JsonResult UpsertFinalForm([FromBody] FinalFormModel ffm)
        {
            var sarahDb = new SarahIncContext();

            var frm = (from t in sarahDb.Form
                       where t.TempId == ffm.TempId
                       select t).FirstOrDefault();

            frm.FinalForm = ffm.FinalForm;
            sarahDb.SaveChanges();
            return(Json(new { Success = true, Message = "Final Saved", Id = ffm.TempId }));
        }
Esempio n. 13
0
        public IEnumerable <EvaluationFormModel> GetEvaluationTypes()
        {
            using (_dbContext = new SarahIncContext())
            {
                var eval = (from e in _dbContext.Evaluation
                            where e.FormId == null
                            select e);

                return(eval.Select(evalElem => new EvaluationFormModel {
                    EvalTypeId = evalElem.Id - 1, EvaluationType = evalElem.Type
                }).ToList());
            }
        }
Esempio n. 14
0
        public JsonResult GetPrintOptions(int formId, bool single)
        {
            if (!single)
            {
                formId = 0;
            }

            using (var db = new SarahIncContext())
            {
                var options = db.PrintOption.Where(o => o.FormId == formId || o.FormId == null).AsEnumerable();
                var result  = options;
                return(Json(result));
            }
        }
Esempio n. 15
0
        public JsonResult GetEvaluators()
        {
            using (var db = new SarahIncContext())
            {
                var evalSet = db.User.Select(evaluators => new UserModel(_mapper)
                {
                    UserId    = evaluators.UserId,
                    Firstname = evaluators.Firstname,
                    Lastname  = evaluators.Lastname,
                    Title     = evaluators.Title
                }).OrderBy(o => o.Lastname).ToList();

                return(Json(evalSet));
            }
        }
Esempio n. 16
0
        public bool DoesUserExist(string username)
        {
            using (var dbContext = new SarahIncContext())
            {
                var userList = (from u in dbContext.User
                                where u.Username == username
                                select u).FirstOrDefault();

                if (userList != null)
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 17
0
        public JsonResult GetEvaluationTypes(string text, int id)
        {
            var sarahDb = new SarahIncContext();

            var evalTypes = sarahDb.Evaluation.Where(x => x.FormId == null || x.FormId == id).Select(evalType => new EvaluationFormModel
            {
                EvalTypeId     = evalType.Id - 1,
                EvaluationType = evalType.Type
            });

            if (!string.IsNullOrEmpty(text))
            {
                evalTypes = evalTypes.Where(e => e.EvaluationType.Contains(text));
            }

            return(Json(evalTypes));
        }
Esempio n. 18
0
        public JsonResult DeleteUser([FromBody] int userId)
        {
            using (var dbContext = new SarahIncContext())
            {
                var curUser = (from u in dbContext.User
                               where u.UserId == userId
                               select u).FirstOrDefault();

                if (curUser == null)
                {
                    return(Json(false));
                }
                dbContext.User.Remove(curUser);
                dbContext.SaveChanges();
            }
            return(Json(true));
        }
Esempio n. 19
0
        public JsonResult ChangePassword([FromBody] ChangePasswordModel cpm)
        {
            SendPassword(cpm.email, cpm.newPass);

            using (var dbContext = new SarahIncContext())
            {
                var user = (from u in dbContext.User
                            where u.UserId == cpm.userId
                            select u).First();

                user.Password = UserData.CreateHash(cpm.newPass);

                dbContext.SaveChanges();
            }

            return(Json(true));
        }
Esempio n. 20
0
        public JsonResult DeleteForm([FromBody] int tempId)
        {
            using (var dbContext = new SarahIncContext())
            {
                var curForm = (from f in dbContext.Form
                               where f.TempId == tempId
                               select f).FirstOrDefault();

                if (curForm == null)
                {
                    return(Json(false));
                }
                dbContext.Form.Remove(curForm);
                dbContext.SaveChanges();
            }
            // Delete the current form. Also return any validation errors.
            return(Json(true));
        }
Esempio n. 21
0
        public async Task <List <TU> > ReadLinkedRecordsById <TU, TV>() where TV : class where TU : new()
        {
            var result = new List <TU>();

            try
            {
                using (var db = new SarahIncContext())
                {
                    BaseQuery = (IQueryable <T>)db.Set <TV>().ProjectTo <TU>(_mapper.ConfigurationProvider);
                    SetPredicateExp();
                    result = await(BaseQuery as IQueryable <TU>).Future().ToListAsync();
                }
            }
            catch (Exception ex)
            {
                Logging.LogError(ex.Message, MethodBase.GetCurrentMethod().ToString(), typeof(TU) + " " + PredicateExp);
            }

            return(result);
        }
Esempio n. 22
0
        public void AddEvaluationType(string text, int id)
        {
            var sarahDb = new SarahIncContext();

            if (!string.IsNullOrEmpty(text))
            {
                var existEvalType = (from e in sarahDb.Evaluation
                                     where e.Type == text && (e.FormId == null || e.FormId == id)
                                     select e).FirstOrDefault();

                if (existEvalType == null)
                {
                    var newEvalType = new Evaluation();
                    sarahDb.Evaluation.Add(newEvalType);
                    newEvalType.Type   = text;
                    newEvalType.FormId = id;
                    sarahDb.SaveChanges();
                }
            }
        }
Esempio n. 23
0
 public bool Insert()
 {
     if (DoesUserExist(Username))
     {
         return(false);
     }
     using (var dbContext = new SarahIncContext())
     {
         var user = new User();
         dbContext.User.Add(user);
         user.RoleId    = Constants.RoleUser;
         user.Username  = Username;
         user.Firstname = FirstName;
         user.Lastname  = LastName;
         user.Email     = Email;
         user.Password  = UserData.CreateHash(Password);
         var ab = user.Password.Length;
         dbContext.SaveChanges();
     }
     return(true);
 }
Esempio n. 24
0
        public JsonResult GetUsersBase()
        {
            var dbUserId   = HttpContext.Session.GetInt32("UserId");
            var role       = HttpContext.Session.GetString("Role");
            var modelUsers = new List <UserModel>();

            using (var dbContext = new SarahIncContext())
            {
                var users = (dbContext.User.Select(u => u));

                if (users.Any())
                {
                    foreach (var user in users)
                    {
                        if (user.UserId == dbUserId || role == Constants.RoleAdminStr)
                        {
                            var mu = new UserModel(_mapper)
                            {
                                UserId    = user.UserId,
                                RoleValue = user.RoleId - 1,
                                RoleName  = (from r in dbContext.Role
                                             where r.RoleId == user.RoleId
                                             select r.Rolename).First(),
                                Username     = user.Username,
                                Firstname    = user.Firstname,
                                Lastname     = user.Lastname,
                                Email        = user.Email,
                                Title        = user.Title,
                                Lockedout    = user.Lockedout,
                                LockedoutStr = user.Lockedout ? "Locked Out" : "OK"
                            };

                            modelUsers.Add(mu);
                        }
                    }
                }
            }

            return(Json(modelUsers));
        }
Esempio n. 25
0
        public ActionResult DeleteFormVars(FormVariableModel frm)
        {
            if (!ModelState.IsValid)
            {
                return(Json(ModelState));
            }
            using (var dbContext = new SarahIncContext())
            {
                var frmVar = (from f in dbContext.FormVariable
                              where f.FormDataId == frm.Id
                              select f).FirstOrDefault();

                if (frmVar == null)
                {
                    return(Json(ModelState));
                }
                dbContext.FormVariable.Remove(frmVar);
                dbContext.SaveChanges();
            }
            // Return the updated frm. Also return any validation errors.
            return(Json(ModelState));
        }
Esempio n. 26
0
        public ActionResult DeleteUsers(TemplateVariableModel tpl)
        {
            if (!ModelState.IsValid)
            {
                return(Json(ModelState));
            }
            using (var dbContext = new SarahIncContext())
            {
                var tmplVar = (from t in dbContext.TemplateVariable
                               where t.TmplId == tpl.TmplId
                               select t).FirstOrDefault();

                if (tmplVar == null)
                {
                    return(Json(ModelState));
                }
                dbContext.TemplateVariable.Remove(tmplVar);
                dbContext.SaveChanges();
            }
            // Return the updated tpl. Also return any validation errors.
            return(Json(ModelState));
        }
Esempio n. 27
0
        public JsonResult EmailReport(int tempId, string targets)
        {
            var targetList = targets.Split(';').Length > 0 ? targets.Split(';').ToList() : new List <string> {
                targets
            };
            var tLen = targetList.Count;

            for (var x = 0; x < tLen; ++x)
            {
                using (var sarahDb = new SarahIncContext())
                {
                    var user = sarahDb.User.FirstOrDefault(f => f.Email == targetList[x]);

                    if (user != null)
                    {
                        AdminController.SendEmail(targetList[x], "Here is a copy of an evaluation or assessment report", "Test Report");
                    }
                }
            }

            return(Json(new { Success = true, Message = "Report Sent" }));
        }
Esempio n. 28
0
        public async Task <bool> DeleteRecords <TU>(List <Tuple <int, int?> > records) where TU : class
        {
            try
            {
                using (var db = new SarahIncContext())
                {
                    var idCount = records.Count;

                    for (var x = 0; x < idCount; ++x)
                    {
                        TU record;

                        if (records[x].Item2 == null)
                        {
                            record = await db.Set <TU>().FindAsync(records[x].Item1);
                        }
                        else
                        {
                            record = await db.Set <TU>().FindAsync(records[x].Item1, records[x].Item2);
                        }

                        if (record != null)
                        {
                            db.Set <TU>().Remove(record);
                        }
                    }

                    await db.SaveChangesAsync();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Logging.LogError(ex.Message, MethodBase.GetCurrentMethod().ToString(), typeof(TU) + " " + string.Join(",", records));
            }

            return(false);
        }
Esempio n. 29
0
        public JsonResult UpsertForm([FromBody] TempFormModel tfm)
        {
            using (var dbContext = new SarahIncContext())
            {
                var curForm = (from f in dbContext.Form
                               where f.TempId == tfm.TempId
                               select f).FirstOrDefault();

                if (curForm == null)
                {
                    return(Json(false));
                }

                var fm = new FormModel(_mapper);

                _mapper.Map(tfm, fm);
                _mapper.Map(fm, curForm);
                dbContext.SaveChanges();

                return(Json(true));
            }
        }
Esempio n. 30
0
        public async Task <List <TU> > ReadRecords <TU, TV>() where TV : class
        {
            try
            {
                using (var db = new SarahIncContext())
                {
                    BaseQuery = (IQueryable <T>)db.Set <TV>(); // DEV .ProjectTo<TU>();
                    SetPredicateExp();
                    Count = BaseQuery.DeferredCount().FutureValue();
                    SetSortOrder(typeof(TV).GetProperties().Select(f => f.Name).First());
                    SetPaging();

                    return(await(BaseQuery as IQueryable <TU>).Future().ToListAsync());
                }
            }
            catch (Exception ex)
            {
                Logging.LogError(ex.Message, MethodBase.GetCurrentMethod().ToString(), "");
            }

            return(new List <TU>());
        }