public void UpdateFormMode(FormInfoBO formInfoBO, FormSettingBO formSettingBO = null)
        {
            try
            {
                Guid id = new Guid(formInfoBO.FormId);

                //Update Form Mode
                using (var context = DataObjectFactory.CreateContext())
                {
                    var query = from response in context.SurveyMetaDatas
                                where response.SurveyId == id
                                select response;

                    var dataRow = query.Single();
                    dataRow.IsDraftMode      = formInfoBO.IsDraftMode;
                    dataRow.IsShareable      = formInfoBO.IsShareable;
                    dataRow.DataAccessRuleId = formInfoBO.DataAccesRuleId;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        public void UpdateColumnNames(FormSettingBO FormSettingBO, string FormId)
        {
            Guid Id = new Guid(FormId);

            try
            {
                using (var context = DataObjectFactory.CreateContext())
                {
                    IQueryable <ResponseDisplaySetting> ColumnList = context.ResponseDisplaySettings.Where(x => x.FormId == Id);

                    //Delete old columns
                    foreach (var item in ColumnList)
                    {
                        context.ResponseDisplaySettings.DeleteObject(item);
                    }
                    context.SaveChanges();

                    //insert new columns

                    ResponseDisplaySetting ResponseDisplaySettingEntity = new ResponseDisplaySetting();
                    foreach (var item in FormSettingBO.ColumnNameList)
                    {
                        ResponseDisplaySettingEntity = Mapper.ToColumnName(item, Id);
                        context.AddToResponseDisplaySettings(ResponseDisplaySettingEntity);
                    }
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        public FormSettingBO GetFormSettings()
        {
            FormSettingBO formSettingBO = new FormSettingBO();

            Dictionary <int, string>    dataAccessRuleIds         = new Dictionary <int, string>();
            Dictionary <string, string> dataAccessRuleDescription = new Dictionary <string, string>();
            int selectedDataAccessRuleId = -1;;

            try
            {
                using (var context = DataObjectFactory.CreateContext())
                {
                    ////  Available DataAccess Rule Ids  list
                    IQueryable <DataAccessRule> RuleIDs = context.DataAccessRules.ToList().AsQueryable();
                    foreach (var Rule in RuleIDs)
                    {
                        dataAccessRuleIds.Add(Rule.RuleId, Rule.RuleName);
                        dataAccessRuleDescription.Add(Rule.RuleName, Rule.RuleDescription);
                    }

                    formSettingBO.SelectedDataAccessRule    = selectedDataAccessRuleId;
                    formSettingBO.DataAccessRuleDescription = dataAccessRuleDescription;
                    formSettingBO.DataAccessRuleIds         = dataAccessRuleIds;
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(formSettingBO);
        }
        public void UpdateSettingsList(FormSettingBO formSettingBO, string formId, int CurrentOrg = -1)
        {
            Guid id = new Guid(formId);

            try
            {
                using (var context = DataObjectFactory.CreateContext())
                {
                    SurveyMetaData response = context.SurveyMetaDatas.First(x => x.SurveyId == id);

                    //Remove old Users
                    var userHashSet = new HashSet <string>(response.Users.Select(x => x.UserName));
                    var users       = context.Users.Where(t => userHashSet.Contains(t.UserName)).ToList();

                    foreach (User user in users)
                    {
                        if (user.UserOrganizations.Where(x => x.OrganizationID == CurrentOrg).Count() > 0)
                        {
                            response.Users.Remove(user);
                        }
                    }
                    context.SaveChanges();

                    //insert new users
                    foreach (var item in formSettingBO.AssignedUserList)
                    {
                        User User = context.Users.FirstOrDefault(x => x.UserName == item.Value);
                        response.Users.Add(User);
                    }
                    context.SaveChanges();

                    //Remove old Orgs
                    var orgHashSet = new HashSet <int>(response.Organizations.Select(x => x.OrganizationId));
                    var orgs       = context.Organizations.Where(t => orgHashSet.Contains(t.OrganizationId)).ToList();

                    foreach (Organization org in orgs)
                    {
                        response.Organizations.Remove(org);
                    }
                    context.SaveChanges();

                    //insert new Orgs
                    List <User> orgAdmins = new List <User>();

                    foreach (var item in formSettingBO.SelectedOrgList)
                    {
                        int          orgId = int.Parse(item.Value);
                        Organization org   = context.Organizations.FirstOrDefault(x => x.OrganizationId == orgId);
                        response.Organizations.Add(org);
                    }

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
示例#5
0
        public static FormSettingBO GetDataAccessRules(FormSettingBO formSettingBO)
        {
            Dictionary <int, string>    dataAccessRuleIds          = new Dictionary <int, string>();
            Dictionary <string, string> dataAccessRuleDescriptions = new Dictionary <string, string>();

            GetDataAccessRules(out dataAccessRuleIds, out dataAccessRuleDescriptions);
            formSettingBO.DataAccessRuleDescription = dataAccessRuleDescriptions;
            formSettingBO.DataAccessRuleIds         = dataAccessRuleIds;
            return(formSettingBO);
        }
示例#6
0
        public void UpdateResponseGridColumnNames(FormSettingBO formSettingBO, string formId)
        {
            var responseGridColumnSettingsList = formSettingBO.ResponseGridColumnNameList
                                                 .Select(n => new ResponseGridColumnSettings {
                ColumnName = n.Value, SortOrder = n.Key, FormId = formId
            })
                                                 .ToList();

            UpdateResponseDisplaySettings(formId, responseGridColumnSettingsList);
        }
 public static FormSettingBO ToFormSettingBO(this FormSettings formSettings, FormSettingBO formSettingBO = null)
 {
     if (formSettingBO == null)
     {
         formSettingBO = new FormSettingBO();
     }
     formSettingBO.FormId = formSettings.FormId;
     formSettingBO.SelectedDataAccessRule     = formSettings.DataAccessRuleId;
     formSettingBO.IsDisabled                 = formSettings.IsDisabled;
     formSettingBO.IsShareable                = formSettings.IsShareable;
     formSettingBO.ResponseGridColumnNameList = formSettings.ResponseDisplaySettings.ToDictionary(k => k.SortOrder, v => v.ColumnName);
     return(formSettingBO);
 }
示例#8
0
        // public string SaveSettings(bool IsDraftMode, Dictionary<int, string> ColumnNameList, Dictionary<int, string> AssignedUserList, string FormId, Dictionary<int, string> SelectedOrgList, bool IsShareable)
        public string SaveSettings(bool IsDraftMode, FormSettingDTO FormSettingDTO, int CurrentOrg = -1)
        {
            string        Message       = "";
            FormSettingBO FormSettingBO = new FormSettingBO {
                FormId = FormSettingDTO.FormId
            };

            // FormSettingBO.ColumnNameList = FormSettingDTO.ColumnNameList;
            FormSettingBO.AssignedUserList = FormSettingDTO.AssignedUserList;
            FormSettingBO.SelectedOrgList  = FormSettingDTO.SelectedOrgList;
            FormSettingBO.DeleteDraftData  = FormSettingDTO.DeleteDraftData;
            //FormInfoBO FormInfoBO = new FormInfoBO();
            //FormInfoBO.FormId = FormSettingDTO.FormId;
            //FormInfoBO.IsDraftMode =IsDraftMode;
            //FormInfoBO.IsShareable = FormSettingDTO.IsShareable;
            try
            {
                List <UserBO> FormCurrentUsersList = _userDao.GetUserByFormId(FormSettingDTO.FormId);
                //FormSettingDao.UpDateColumnNames(FormSettingBO, FormSettingDTO.FormId);
                // FormSettingDao.UpDateFormMode(FormInfoBO);
                Dictionary <int, string> AssignedOrgAdminList = _formSettingDao.GetOrgAdmins(FormSettingDTO.SelectedOrgList); // about to share with
                List <UserBO>            CurrentOrgAdminList  = _formSettingDao.GetOrgAdminsByFormId(FormSettingDTO.FormId);  // shared with
                _formSettingDao.UpDateSettingsList(FormSettingBO, FormSettingDTO.FormId, CurrentOrg);

                // Clear all Draft records
                if (FormSettingDTO.DeleteDraftData)
                {
                    _formSettingDao.DeleteDraftRecords(FormSettingDTO.FormId);
                }

                List <UserBO> AdminList = _userDao.GetAdminsBySelectedOrgs(FormSettingBO, FormSettingDTO.FormId);

                if (ConfigurationManager.AppSettings["SEND_EMAIL_TO_ASSIGNED_USERS"].ToUpper() == "TRUE" && FormSettingDTO.AssignedUserList.Count() > 0)
                {
                    SendEmail(FormSettingDTO.AssignedUserList, FormSettingDTO.FormId, FormCurrentUsersList);
                }

                // Send Email to organization admin when a form is shared with that organization
                SendEmail(AssignedOrgAdminList, FormSettingDTO.FormId, CurrentOrgAdminList, true);


                Message = "Success";
            }
            catch (Exception Ex)
            {
                Message = "Error";
                throw Ex;
            }
            return(Message);
        }
示例#9
0
        public void UpdateFormMode(FormInfoBO formInfoBO, FormSettingBO formSettingBO = null)
        {
            var formId = formInfoBO.FormId;

            if (string.IsNullOrEmpty(formInfoBO.FormName))
            {
                formInfoBO.FormName = _metadataAccessor.GetFormDigest(formId).FormName;
            }
            var formSettings = formInfoBO.ToFormSettings();

            if (formSettingBO != null)
            {
                formSettings.ResponseDisplaySettings = formSettingBO.ResponseGridColumnNameList.OrderBy(k => k.Key)
                                                       .Select(kvp => new ResponseGridColumnSettings {
                    FormId = formId, ColumnName = kvp.Value, SortOrder = kvp.Key
                })
                                                       .ToList();
            }

            _formResponseCRUD.UpdateFormSettings(formSettings);

            // Temporarily update WebEnter tables too
            _formSettingDao_EF.UpdateFormMode(formInfoBO);

#if false
            try
            {
                Guid id = new Guid(formInfoBO.FormId);

                //Update Form Mode
                using (var context = DataObjectFactory.CreateContext())
                {
                    var query = from response in context.SurveyMetaDatas
                                where response.SurveyId == id
                                select response;

                    var dataRow = query.Single();
                    dataRow.IsDraftMode      = formInfoBO.IsDraftMode;
                    dataRow.IsShareable      = formInfoBO.IsShareable;
                    dataRow.DataAccessRuleId = formInfoBO.DataAccesRuleId;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
#endif
        }
示例#10
0
        public FormSettingBO GetFormSettings()
        {
            FormSettingBO formSettingBO = new FormSettingBO();

            try
            {
                formSettingBO = DataAccessessRulesHelper.GetDataAccessRules(formSettingBO);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(formSettingBO);
        }
        public string SaveSettings(bool isDraftMode, FormSettingDTO formSettingDTO, int CurrentOrg = -1)
        {
            var formId           = formSettingDTO.FormId;
            var isShareable      = formSettingDTO.IsShareable;
            var dataAccessRuleId = formSettingDTO.SelectedDataAccessRule;

            string        message       = "";
            FormSettingBO formSettingBO = new FormSettingBO {
                FormId = formId
            };

            formSettingBO.AssignedUserList = formSettingDTO.AssignedUserList;
            formSettingBO.SelectedOrgList  = formSettingDTO.SelectedOrgList;
            formSettingBO.DeleteDraftData  = formSettingDTO.DeleteDraftData;
            try
            {
                List <UserBO>            formCurrentUsersList = _userDao.GetUserByFormId(formSettingDTO.FormId);
                Dictionary <int, string> assignedOrgAdminList = _formSettingFacade.GetOrgAdmins(formSettingDTO.SelectedOrgList); // about to share with
                List <UserBO>            CurrentOrgAdminList  = _formSettingFacade.GetOrgAdminsByFormId(formSettingDTO.FormId);  // shared with
                _formSettingFacade.UpdateSettingsList(formSettingBO, formSettingDTO.FormId, CurrentOrg);

                // Clear all Draft records
                if (formSettingDTO.DeleteDraftData)
                {
                    _formSettingFacade.DeleteDraftRecords(formSettingDTO.FormId);
                }

                List <UserBO> AdminList = _userDao.GetAdminsBySelectedOrgs(formSettingBO, formSettingDTO.FormId);

                if (formSettingDTO.AssignedUserList.Count() > 0 && AppSettings.Key.SendEmailToAssignedUsers.GetBoolValue())
                {
                    SendEmail(formSettingDTO.AssignedUserList, formSettingDTO.FormId, formCurrentUsersList);
                }

                // Send Email to organization admin when a form is shared with that organization
                SendEmail(assignedOrgAdminList, formSettingDTO.FormId, CurrentOrgAdminList, true);

                message = "Success";

                UpdateMetadataIfNecessary(formId, isDraftMode, isShareable, dataAccessRuleId);
            }
            catch (Exception Ex)
            {
                message = "Error";
                throw Ex;
            }
            return(message);
        }
示例#12
0
 public static FormSettingDTO ToDataTransferObject(FormSettingBO pBO)
 {
     return(new FormSettingDTO
     {
         ColumnNameList = pBO.ColumnNameList,
         FormControlNameList = pBO.FormControlNameList,
         AssignedUserList = pBO.AssignedUserList,
         UserList = pBO.UserList,
         IsShareable = pBO.IsShareable,
         AvailableOrgList = pBO.AvailableOrgList,
         SelectedOrgList = pBO.SelectedOrgList,
         IsDisabled = pBO.IsDisabled,
         DataAccessRuleIds = pBO.DataAccessRuleIds,
         SelectedDataAccessRule = pBO.SelectedDataAccessRule,
         DataAccessRuleDescription = pBO.DataAccessRuleDescription,
         DeleteDraftData = pBO.DeleteDraftData
     });
 }
        public void UpDateColumnNames(bool IsDraftMode, FormSettingDTO FormSettingDTO)
        {
            FormSettingBO FormSettingBO = new FormSettingBO();

            FormSettingBO.ColumnNameList = FormSettingDTO.ColumnNameList;
            FormInfoBO FormInfoBO = new FormInfoBO();

            FormInfoBO.FormId          = FormSettingDTO.FormId;
            FormInfoBO.IsDraftMode     = IsDraftMode;
            FormInfoBO.IsShareable     = FormSettingDTO.IsShareable;
            FormInfoBO.DataAccesRuleId = FormSettingDTO.SelectedDataAccessRule;
            this.FormSettingDao.UpDateColumnNames(FormSettingBO, FormSettingDTO.FormId);
            this.FormSettingDao.UpDateFormMode(FormInfoBO);
            if (FormSettingDTO.IsDisabled)
            {
                this.FormSettingDao.SoftDeleteForm(FormSettingDTO.FormId);
            }
        }
示例#14
0
        public FormSettingBO GetFormSettings(string formId, int currentOrgId, bool userAndOrgInfoOnly)
        {
            FormSettingBO formSettingBO = new FormSettingBO {
                FormId = formId
            };
            Dictionary <int, string> columnNameList = new Dictionary <int, string>();

            try
            {
                formSettingBO = _formSettingDao_EF.GetFormSettings(formId, currentOrgId, userAndOrgInfoOnly);
                int i = 1;
                formSettingBO.FormControlNameList = _metadataAccessor.GetAllColumnNames(formId).ToDictionary(k => i++, v => v);
                formSettingBO = GetDataAccessRules(formSettingBO);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(formSettingBO);
        }
        public FormSettingBO GetFormSettings(string FormId, string Xml, int CurrentOrgId = -1, bool FormInfoOnly = false)
        {
            FormSettingBO result = this.FormSettingDao.GetFormSettings(FormId, CurrentOrgId, FormInfoOnly);

            if (!string.IsNullOrEmpty(Xml))
            {
                result.FormControlNameList = GetFormColumnNames(Xml, result.ColumnNameList);
            }
            else
            {
                result.FormControlNameList = new Dictionary <int, string>();
                var Columns = GetAllColumns(FormId);

                for (int i = 0; i < Columns.Count; i++)
                {
                    result.FormControlNameList.Add(i, Columns[i]);
                }
            }
            return(result);
        }
        public List <UserBO> GetAdminsBySelectedOrgs(FormSettingBO FormSettingBO, string formId)
        {
            List <UserBO> AdminList = new List <UserBO>();

            using (var Context = DataObjectFactory.CreateContext())
            {
                foreach (var item in FormSettingBO.SelectedOrgList)
                {
                    int OrgId = int.Parse(item.Value);

                    var users = Context.UserOrganizations.Where(x => x.RoleId == 2 && x.OrganizationID == OrgId && x.Active == true);

                    foreach (var user in users)
                    {
                        AdminList.Add(Mapper.MapToUserBO(user.User, user.RoleId));
                    }
                }
            }
            return(AdminList);
        }
        public static FormSettingDTO ToFormSettingDTO(this FormSettingBO formSettingBO)
        {
            return(new FormSettingDTO
            {
                UserList = formSettingBO.UserList,
                AssignedUserList = formSettingBO.AssignedUserList,
                AvailableOrgList = formSettingBO.AvailableOrgList,
                SelectedOrgList = formSettingBO.SelectedOrgList,

                ColumnNameList = formSettingBO.ResponseGridColumnNameList,
                FormControlNameList = formSettingBO.FormControlNameList,

                SelectedDataAccessRule = formSettingBO.SelectedDataAccessRule,
                DataAccessRuleIds = formSettingBO.DataAccessRuleIds,
                DataAccessRuleDescription = formSettingBO.DataAccessRuleDescription,
                IsShareable = formSettingBO.IsShareable,
                IsDisabled = formSettingBO.IsDisabled,

                DeleteDraftData = formSettingBO.DeleteDraftData
            });
        }
        public void UpdateFormSettings(bool isDraftMode, FormSettingDTO formSettingDTO)
        {
            var formId           = formSettingDTO.FormId;
            var isShareable      = formSettingDTO.IsShareable;
            var dataAccessRuleId = formSettingDTO.SelectedDataAccessRule;

            FormSettingBO formSettingBO = new FormSettingBO {
                FormId = formSettingDTO.FormId
            };

            formSettingBO.ResponseGridColumnNameList = formSettingDTO.ColumnNameList;
            FormInfoBO formInfoBO = new FormInfoBO();

            formInfoBO.FormId          = formId;
            formInfoBO.IsDraftMode     = isDraftMode;
            formInfoBO.IsShareable     = isShareable;
            formInfoBO.DataAccesRuleId = dataAccessRuleId;
            _formSettingFacade.UpdateResponseGridColumnNames(formSettingBO, formSettingDTO.FormId);
            _formSettingFacade.UpdateFormMode(formInfoBO, formSettingBO);
            if (formSettingDTO.IsDisabled)
            {
                _formSettingFacade.SoftDeleteForm(formSettingDTO.FormId);
            }
        }
        public FormSettingBO GetFormSettings(string formId, int currentOrgId, bool userAndOrgInfoOnly)
        {
            FormSettingBO formSettingBO = new FormSettingBO {
                FormId = formId
            };
            Dictionary <int, string> availableUsers = new Dictionary <int, string>();
            Dictionary <int, string> selectedUsers  = new Dictionary <int, string>();
            Dictionary <int, string> availableOrgs  = new Dictionary <int, string>();
            Dictionary <int, string> selectedOrgs   = new Dictionary <int, string>();

            try
            {
                Guid id = new Guid(formId);
                using (var Context = DataObjectFactory.CreateContext())
                {
                    SurveyMetaData selectedUserQuery = Context.SurveyMetaDatas.First(x => x.SurveyId == id);

                    var selectedOrgId = currentOrgId;
                    var query         = (from user in selectedUserQuery.Users
                                         join userorg in Context.UserOrganizations
                                         on user.UserID equals userorg.UserID
                                         where userorg.Active == true && userorg.OrganizationID == selectedOrgId
                                         select user).Distinct().OrderBy(user => user.UserName);

                    foreach (var user in query)
                    {
                        selectedUsers.Add(user.UserID, user.UserName);
                    }

                    formSettingBO.AssignedUserList = selectedUsers;

                    // --------------------------------------------------------------------------------------------- \\

                    var userQuery = (from user in Context.Users
                                     join userorg in Context.UserOrganizations
                                     on user.UserID equals userorg.UserID
                                     where userorg.Active == true && userorg.OrganizationID == selectedOrgId
                                     //orderby user.UserName
                                     select user).Distinct().OrderBy(user => user.UserName);

                    foreach (var user in userQuery)
                    {
                        if (!selectedUsers.ContainsValue(user.UserName) && user.UserID != selectedUserQuery.OwnerId)
                        {
                            availableUsers.Add(user.UserID, user.UserName);
                        }
                    }

                    formSettingBO.UserList = availableUsers;

                    // --------------------------------------------------------------------------------------------- \\

                    //// Select Orgnization list
                    var OrganizationQuery = Context.Organizations.Where(c => c.SurveyMetaDatas.Any(a => a.SurveyId == id)).ToList();

                    foreach (var org in OrganizationQuery)
                    {
                        selectedOrgs.Add(org.OrganizationId, org.Organization1);
                    }
                    formSettingBO.SelectedOrgList = selectedOrgs;

                    // --------------------------------------------------------------------------------------------- \\

                    ////  Available Organization list
                    IQueryable <Organization> OrganizationList = Context.Organizations.ToList().AsQueryable();
                    foreach (var Org in OrganizationList)
                    {
                        if (!selectedOrgs.ContainsValue(Org.Organization1) && Org.IsEnabled == true)
                        {
                            availableOrgs.Add(Org.OrganizationId, Org.Organization1);
                        }
                    }
                    formSettingBO.AvailableOrgList = availableOrgs;

                    // --------------------------------------------------------------------------------------------- \\

                    if (!userAndOrgInfoOnly)
                    {
                        //// Response Grid Column Name List
                        Dictionary <int, string> ColumnNameList = new Dictionary <int, string>();

                        var Query = from response in Context.ResponseDisplaySettings
                                    where response.FormId == id
                                    select response;

                        var DataRow = Query;

                        // If there are no grid display columns currently defined
                        // then initialize the list to the first 5 fields in the form.
                        if (DataRow.Count() == 0)
                        {
                            var sortOrder = 1;
                            var responseGridColumnNames = GetFieldDigests(formId)
                                                          .Where(f => !FieldDigest.NonDataFieldTypes.Any(t => t == f.FieldType))
                                                          .Take(5)
                                                          .Select(f => ResponseDisplaySetting.CreateResponseDisplaySetting(id, f.TrueCaseFieldName, sortOrder++));
                            foreach (var responseDisplaySetting in responseGridColumnNames)
                            {
                                Context.AddToResponseDisplaySettings(responseDisplaySetting);
                                ColumnNameList.Add(responseDisplaySetting.SortOrder, responseDisplaySetting.ColumnName);
                            }
                            Context.SaveChanges();
                        }
                        else
                        {
                            foreach (var Row in DataRow)
                            {
                                ColumnNameList.Add(Row.SortOrder, Row.ColumnName);
                            }
                        }
                        formSettingBO.ResponseGridColumnNameList = ColumnNameList;

                        // --------------------------------------------------------------------------------------------- \\

                        //// Selected Data Access Rule Id
                        var MetaData = from r in Context.SurveyMetaDatas
                                       where r.SurveyId == id
                                       select new
                        {
                            Id = r.DataAccessRuleId
                        };

                        var selectedDataAccessRuleId = int.Parse(MetaData.First().Id.ToString());
                        formSettingBO.SelectedDataAccessRule = selectedDataAccessRuleId;

                        // --------------------------------------------------------------------------------------------- \\

                        //// Data Access Rules
                        Dictionary <int, string>    DataAccessRuleIds         = new Dictionary <int, string>();
                        Dictionary <string, string> DataAccessRuleDescription = new Dictionary <string, string>();

                        DataAccessessRulesHelper.GetDataAccessRules(out DataAccessRuleIds, out DataAccessRuleDescription);
                        formSettingBO.DataAccessRuleIds         = DataAccessRuleIds;
                        formSettingBO.DataAccessRuleDescription = DataAccessRuleDescription;

                        //IQueryable<DataAccessRule> RuleIDs = Context.DataAccessRules.ToList().AsQueryable();
                        //foreach (var Rule in RuleIDs)
                        //{
                        //    DataAccessRuleIds.Add(Rule.RuleId, Rule.RuleName);
                        //    DataAccessRuleDescription.Add(Rule.RuleName, Rule.RuleDescription);
                        //}

                        // --------------------------------------------------------------------------------------------- \\

                        //// All Column Names From MetadataAccessor
                        int k = 1;
                        formSettingBO.FormControlNameList = GetAllColumnNames(formId).ToDictionary(key => k++, value => value);
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(formSettingBO);
        }
        public FormSettingBO GetFormSettings()
        {
            FormSettingBO result = this.FormSettingDao.GetFormSettings();

            return(result);
        }
 public void UpdateResponseGridColumnNames(FormSettingBO formSettingBO, string formId)
 {
     _formSettingDao.UpdateResponseGridColumnNames(formSettingBO, formId);
 }
        public FormSettingBO GetFormSettings(string FormId, int CurrentOrgId)
        {
            FormSettingBO               FormSettingBO             = new FormSettingBO();
            Dictionary <int, string>    ColumnNameList            = new Dictionary <int, string>();
            Dictionary <int, string>    AvailableUsers            = new Dictionary <int, string>();
            Dictionary <int, string>    SelectedUsers             = new Dictionary <int, string>();
            Dictionary <int, string>    AvailableOrgs             = new Dictionary <int, string>();
            Dictionary <int, string>    SelectedOrgs              = new Dictionary <int, string>();
            Dictionary <int, string>    DataAccessRuleIds         = new Dictionary <int, string>();
            Dictionary <string, string> DataAccessRuleDescription = new Dictionary <string, string>();
            int selectedDataAccessRuleId;

            try
            {
                Guid id = new Guid(FormId);
                using (var Context = DataObjectFactory.CreateContext())
                {
                    var Query = from response in Context.ResponseDisplaySettings
                                where response.FormId == id
                                select response;

                    var DataRow = Query;

                    foreach (var Row in DataRow)
                    {
                        ColumnNameList.Add(Row.SortOrder, Row.ColumnName);
                    }



                    //var SelectedUserQuery = from FormInfo in Context.SurveyMetaDatas
                    //            join UserInfo in Context.Users
                    //            on FormInfo.OwnerId equals UserInfo.UserID
                    //            into temp
                    //            from UserInfo in temp.DefaultIfEmpty()
                    //            where FormInfo.SurveyId == id
                    //            select new { FormInfo, UserInfo };

                    SurveyMetaData SelectedUserQuery = Context.SurveyMetaDatas.First(x => x.SurveyId == id);

                    // var SelectedOrgId = SelectedUserQuery.OrganizationId;
                    var SelectedOrgId = CurrentOrgId;
                    var query         = (from user in SelectedUserQuery.Users
                                         join userorg in Context.UserOrganizations
                                         on user.UserID equals userorg.UserID
                                         where userorg.Active == true &&
                                         userorg.OrganizationID == SelectedOrgId
                                         // orderby user.UserName
                                         select user).Distinct().OrderBy(user => user.UserName);

                    // IEnumerable<User> Users = SelectedUserQuery.Users;
                    foreach (var user in query)
                    {
                        SelectedUsers.Add(user.UserID, user.UserName);
                    }

                    //foreach (var Selecteduser in SelectedUserQuery)
                    //    {
                    //    SelectedUsers.Add(Selecteduser.UserInfo.UserID, Selecteduser.UserInfo.UserName);
                    //    }


                    var UserQuery = (from user in Context.Users
                                     join userorg in Context.UserOrganizations
                                     on user.UserID equals userorg.UserID
                                     where userorg.Active == true &&
                                     userorg.OrganizationID == SelectedOrgId
                                     //orderby user.UserName
                                     select user).Distinct().OrderBy(user => user.UserName);



                    foreach (var user in UserQuery)
                    {
                        if (!SelectedUsers.ContainsValue(user.UserName) && user.UserID != SelectedUserQuery.OwnerId)
                        {
                            AvailableUsers.Add(user.UserID, user.UserName);
                        }
                    }

                    //// Select Orgnization list
                    var OrganizationQuery = Context.Organizations.Where(c => c.SurveyMetaDatas.Any(a => a.SurveyId == id)).ToList();


                    foreach (var org in OrganizationQuery)
                    {
                        SelectedOrgs.Add(org.OrganizationId, org.Organization1);
                    }
                    ////  Available Orgnization list

                    IQueryable <Organization> OrganizationList = Context.Organizations.ToList().AsQueryable();
                    foreach (var Org in OrganizationList)
                    {
                        if (!SelectedOrgs.ContainsValue(Org.Organization1) && Org.IsEnabled == true)
                        {
                            AvailableOrgs.Add(Org.OrganizationId, Org.Organization1);
                        }
                    }
                    //// Select DataAccess Rule Ids  list
                    var MetaData = Context.SurveyMetaDatas.Where(a => a.SurveyId == id).Single();


                    selectedDataAccessRuleId = int.Parse(MetaData.DataAccessRuleId.ToString());
                    ////  Available DataAccess Rule Ids  list

                    IQueryable <DataAccessRule> RuleIDs = Context.DataAccessRules.ToList().AsQueryable();
                    foreach (var Rule in RuleIDs)
                    {
                        DataAccessRuleIds.Add(Rule.RuleId, Rule.RuleName);
                        DataAccessRuleDescription.Add(Rule.RuleName, Rule.RuleDescription);
                    }
                    FormSettingBO.ColumnNameList = ColumnNameList;

                    FormSettingBO.UserList                  = AvailableUsers;
                    FormSettingBO.AssignedUserList          = SelectedUsers;
                    FormSettingBO.AvailableOrgList          = AvailableOrgs;
                    FormSettingBO.SelectedOrgList           = SelectedOrgs;
                    FormSettingBO.DataAccessRuleIds         = DataAccessRuleIds;
                    FormSettingBO.SelectedDataAccessRule    = selectedDataAccessRuleId;
                    FormSettingBO.DataAccessRuleDescription = DataAccessRuleDescription;
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(FormSettingBO);
        }
        public FormSettingBO GetFormSettings(string FormId, int CurrentOrgId)
        {
            FormSettingBO               formSettingBO             = new FormSettingBO();
            Dictionary <int, string>    columnNameList            = new Dictionary <int, string>();
            Dictionary <int, string>    availableUsers            = new Dictionary <int, string>();
            Dictionary <int, string>    selectedUsers             = new Dictionary <int, string>();
            Dictionary <int, string>    availableOrgs             = new Dictionary <int, string>();
            Dictionary <int, string>    selectedOrgs              = new Dictionary <int, string>();
            Dictionary <int, string>    dataAccessRuleIds         = new Dictionary <int, string>();
            Dictionary <string, string> dataAccessRuleDescription = new Dictionary <string, string>();
            int selectedDataAccessRuleId;

            try
            {
                Guid id = new Guid(FormId);
                using (var Context = DataObjectFactory.CreateContext())
                {
                    var Query = from response in Context.ResponseDisplaySettings
                                where response.FormId == id
                                select response;

                    var DataRow = Query;

                    foreach (var Row in DataRow)
                    {
                        columnNameList.Add(Row.SortOrder, Row.ColumnName);
                    }

                    SurveyMetaData SelectedUserQuery = Context.SurveyMetaDatas.First(x => x.SurveyId == id);

                    var SelectedOrgId = CurrentOrgId;
                    var query         = (from user in SelectedUserQuery.Users
                                         join userorg in Context.UserOrganizations
                                         on user.UserID equals userorg.UserID
                                         where userorg.Active == true &&
                                         userorg.OrganizationID == SelectedOrgId
                                         select user).Distinct().OrderBy(user => user.UserName);

                    foreach (var user in query)
                    {
                        selectedUsers.Add(user.UserID, user.UserName);
                    }

                    var UserQuery = (from user in Context.Users
                                     join userorg in Context.UserOrganizations
                                     on user.UserID equals userorg.UserID
                                     where userorg.Active == true &&
                                     userorg.OrganizationID == SelectedOrgId
                                     select user).Distinct().OrderBy(user => user.UserName);



                    foreach (var user in UserQuery)
                    {
                        if (!selectedUsers.ContainsValue(user.UserName) && user.UserID != SelectedUserQuery.OwnerId)
                        {
                            availableUsers.Add(user.UserID, user.UserName);
                        }
                    }

                    //// Select Orgnization list
                    var OrganizationQuery = Context.Organizations.Where(c => c.SurveyMetaDatas.Any(a => a.SurveyId == id)).ToList();


                    foreach (var org in OrganizationQuery)
                    {
                        selectedOrgs.Add(org.OrganizationId, org.Organization1);
                    }
                    ////  Available Orgnization list

                    IQueryable <Organization> OrganizationList = Context.Organizations.ToList().AsQueryable();
                    foreach (var Org in OrganizationList)
                    {
                        if (!selectedOrgs.ContainsValue(Org.Organization1) && Org.IsEnabled == true)
                        {
                            availableOrgs.Add(Org.OrganizationId, Org.Organization1);
                        }
                    }
                    //// Select DataAccess Rule Ids  list
                    var MetaData = Context.SurveyMetaDatas.Where(a => a.SurveyId == id).Single();


                    selectedDataAccessRuleId = int.Parse(MetaData.DataAccessRuleId.ToString());
                    ////  Available DataAccess Rule Ids  list

                    IQueryable <DataAccessRule> RuleIDs = Context.DataAccessRules.ToList().AsQueryable();
                    foreach (var Rule in RuleIDs)
                    {
                        dataAccessRuleIds.Add(Rule.RuleId, Rule.RuleName);
                        dataAccessRuleDescription.Add(Rule.RuleName, Rule.RuleDescription);
                    }
                    formSettingBO.ColumnNameList            = columnNameList;
                    formSettingBO.UserList                  = availableUsers;
                    formSettingBO.AssignedUserList          = selectedUsers;
                    formSettingBO.AvailableOrgList          = availableOrgs;
                    formSettingBO.SelectedOrgList           = selectedOrgs;
                    formSettingBO.DataAccessRuleIds         = dataAccessRuleIds;
                    formSettingBO.SelectedDataAccessRule    = selectedDataAccessRuleId;
                    formSettingBO.DataAccessRuleDescription = dataAccessRuleDescription;
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(formSettingBO);
        }
        public void UpDateSettingsList(FormSettingBO FormSettingBO, string FormId, int CurrentOrg = -1)
        {
            Guid Id = new Guid(FormId);

            try
            {
                using (var Context = DataObjectFactory.CreateContext())
                {
                    SurveyMetaData Response = Context.SurveyMetaDatas.First(x => x.SurveyId == Id);
                    //Remove old Users

                    var _User = new HashSet <string>(Response.Users.Select(x => x.UserName));
                    var Users = Context.Users.Where(t => _User.Contains(t.UserName)).ToList();

                    foreach (User user in Users)
                    {
                        if (user.UserOrganizations.Where(x => x.OrganizationID == CurrentOrg).Count() > 0)
                        {
                            Response.Users.Remove(user);
                        }
                    }
                    Context.SaveChanges();



                    //insert new users
                    foreach (var item in FormSettingBO.AssignedUserList)
                    {
                        User User = Context.Users.FirstOrDefault(x => x.UserName == item.Value);
                        Response.Users.Add(User);
                    }
                    Context.SaveChanges();



                    //Remove old Orgs

                    var _Org = new HashSet <int>(Response.Organizations.Select(x => x.OrganizationId));
                    var Orgs = Context.Organizations.Where(t => _Org.Contains(t.OrganizationId)).ToList();

                    foreach (Organization org in Orgs)
                    {
                        Response.Organizations.Remove(org);
                    }
                    Context.SaveChanges();



                    //insert new Orgs
                    List <User> OrgAdmis = new List <User>();

                    foreach (var item in FormSettingBO.SelectedOrgList)
                    {
                        int          OrgId = int.Parse(item.Value);
                        Organization Org   = Context.Organizations.FirstOrDefault(x => x.OrganizationId == OrgId);
                        Response.Organizations.Add(Org);
                    }
                    Context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
示例#25
0
 public void UpdateSettingsList(FormSettingBO formSettingBO, string formId, int CurrentOrg = -1)
 {
     _formSettingDao_EF.UpdateSettingsList(formSettingBO, formId, CurrentOrg);
 }
示例#26
0
 public void UpdateFormMode(FormInfoBO formInfoBO, FormSettingBO formSettingBO = null)
 {
     _formSettingDao_CosmosDB.UpdateFormMode(formInfoBO, formSettingBO);
 }
示例#27
0
        private FormSettingResponse CreateFormSettingResponse(string formId, int userId, FormSettingBO formSettingBO)
        {
            FormSettingResponse response = new FormSettingResponse();

            var formInfoImplementation = new FormInfo(_formInfoDao);
            var formInfoBO             = formInfoImplementation.GetFormInfoByFormId(formId, userId);

            response.FormInfo    = formInfoBO.ToFormInfoDTO();
            response.FormSetting = formSettingBO.ToFormSettingDTO();

            return(response);
        }
        public FormSettingBO GetFormSettings(string formId, int currentOrgId = -1)
        {
            FormSettingBO result = _formSettingFacade.GetFormSettings(formId, currentOrgId);

            return(result);
        }