Esempio n. 1
0
        /// <summary>
        /// Maps SurveyMetaData entity to FormInfoBO business object.
        /// </summary>
        /// <param name="entity">A SurveyMetaData entity to be transformed.</param>
        /// <returns>A FormInfoBO business object.</returns>
        public static FormInfoBO MapToFormInfoBO(SurveyMetaData entity, User UserEntity)
        {
            FormInfoBO result = new FormInfoBO();

            result.IsSQLProject     = (entity.IsSQLProject == null) ? false : (bool)entity.IsSQLProject;
            result.FormId           = entity.SurveyId.ToString();
            result.FormName         = entity.SurveyName;
            result.FormNumber       = entity.SurveyNumber;
            result.OrganizationName = entity.OrganizationName;
            result.OrganizationId   = entity.OrganizationId;
            result.IsDraftMode      = entity.IsDraftMode;
            result.UserId           = entity.OwnerId;

            if (entity.IsShareable != null)
            {
                result.IsShareable = (bool)entity.IsShareable;
            }
            if (entity.DataAccessRuleId != null)
            {
                // result. =  entity.DataAccessRuleId;
            }
            result.OwnerFName   = UserEntity.FirstName;
            result.OwnerLName   = UserEntity.LastName;
            result.ParentFormId = entity.ParentId.ToString();
            return(result);
        }
        public void UpdateFormMode(FormInfoBO formInfoBO)
        {
            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 FormSettingResponse GetSettings(FormSettingRequest pRequest)
        {
            FormSettingResponse Response = new FormSettingResponse();

            try
            {
                Epi.Web.Enter.Interfaces.DataInterfaces.IDaoFactory    entityDaoFactory = new EFwcf.EntityDaoFactory();
                Epi.Web.Enter.Interfaces.DataInterface.IFormSettingDao IFormSettingDao  = entityDaoFactory.FormSettingDao;

                if (!string.IsNullOrEmpty(pRequest.FormInfo.FormId))
                {
                    Epi.Web.Enter.Interfaces.DataInterface.IFormInfoDao FormInfoDao = entityDaoFactory.FormInfoDao;

                    Epi.Web.Enter.Interfaces.DataInterface.IUserDao IUserDao = entityDaoFactory.UserDao;
                    Epi.Web.BLL.FormInfo    FormInfoImplementation           = new Epi.Web.BLL.FormInfo(FormInfoDao);
                    Epi.Web.BLL.FormSetting SettingsImplementation           = new Epi.Web.BLL.FormSetting(IFormSettingDao, IUserDao, FormInfoDao);
                    FormInfoBO FormInfoBO = FormInfoImplementation.GetFormInfoByFormId(pRequest.FormInfo.FormId, pRequest.GetXml, pRequest.FormInfo.UserId);
                    Response.FormInfo    = Mapper.ToFormInfoDTO(FormInfoBO);
                    Response.FormSetting = Mapper.ToDataTransferObject(SettingsImplementation.GetFormSettings(pRequest.FormInfo.FormId.ToString(), FormInfoBO.Xml));
                }
                else
                {
                    Epi.Web.BLL.FormSetting SettingsImplementation = new Epi.Web.BLL.FormSetting(IFormSettingDao);
                    Response.FormSetting = Mapper.ToDataTransferObject(SettingsImplementation.GetFormSettings());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(Response);
        }
Esempio n. 4
0
 internal static SurveyMetaData ToEF(FormInfoBO FormInfoBO)
 {
     return(new SurveyMetaData
     {
         IsDraftMode = FormInfoBO.IsDraftMode
     });
 }
 public static FormSettings ToFormSettings(this FormInfoBO formInfoBO)
 {
     return(new FormSettings
     {
         FormId = formInfoBO.FormId,
         FormName = formInfoBO.FormName,
         DataAccessRuleId = formInfoBO.DataAccesRuleId,
         IsDraftMode = formInfoBO.IsDraftMode,
         IsShareable = formInfoBO.IsShareable
     });
 }
Esempio n. 6
0
        public FormInfoBO GetFormByFormId(string formId, int userId)
        {
            // TODO: Refactor to remove dependency on SurveyMetadatas

            FormInfoBO formInfoBO = new FormInfoBO();

            try
            {
                var formOwnerUserId = GetFormDigest(formId).OwnerUserId;

                Guid Id = new Guid(formId);

                using (var context = DataObjectFactory.CreateContext())
                {
                    var items = 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 Response   = context.SurveyMetaDatas.First(x => x.SurveyId == Id);
                    var            orgHashSet = new HashSet <int>(Response.Organizations.Select(x => x.OrganizationId));
                    var            orgList    = context.Organizations.Where(t => orgHashSet.Contains(t.OrganizationId)).ToList();

                    bool isShared = false;

                    foreach (var org in orgList)
                    {
                        isShared = context.UserOrganizations.Any(x => x.OrganizationID == org.OrganizationId && x.UserID == userId && x.RoleId == Roles.Administrator);
                        if (isShared)
                        {
                            break;
                        }
                    }

                    foreach (var item in items)
                    {
                        formInfoBO          = Mapper.MapToFormInfoBO(item.FormInfo, item.UserInfo);
                        formInfoBO.IsShared = isShared;
                        formInfoBO.IsOwner  = item.UserInfo.UserID == userId;
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return(formInfoBO);
        }
Esempio n. 7
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
        }
Esempio n. 8
0
        public FormInfoBO GetFormInfoByFormId(string formId, int userId)
        {
            //Owner Forms
            FormInfoBO result = new FormInfoBO();

            if (userId > 0)
            {
                result = _formInfoDao.GetFormByFormId(formId, userId);
            }

            result.HasDraftModeData = _formInfoDao.HasDraftRecords(formId);

            return(result);
        }
Esempio n. 9
0
        public FormInfoBO GetFormInfoByFormId(string FormId, bool GetXml, int UserId)
        {
            //Owner Forms
            FormInfoBO result = this.FormInfoDao.GetFormByFormId(FormId, GetXml, UserId);

            if (ConfigurationManager.AppSettings["IsEWAVLiteIntegrationEnabled"].ToUpper() == "TRUE" && result.IsSQLProject)
            {
                bool toggleSwitchValue = this.FormInfoDao.GetEwavLiteToggleSwitch(FormId, UserId);

                result.EwavLiteToggleSwitch = toggleSwitchValue;
            }
            result.HasDraftModeData = this.FormInfoDao.HasDraftRecords(FormId);

            return(result);
        }
        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);
            }
        }
 public static FormInfoDTO ToFormInfoDTO(this FormInfoBO BO)
 {
     return(new FormInfoDTO
     {
         IsSQLProject = BO.IsSQLProject,
         FormId = BO.FormId,
         FormNumber = BO.FormNumber,
         FormName = BO.FormName,
         OrganizationName = BO.OrganizationName,
         OrganizationId = BO.OrganizationId,
         IsDraftMode = BO.IsDraftMode,
         UserId = BO.UserId,
         IsOwner = BO.IsOwner,
         OwnerFName = BO.OwnerFName,
         OwnerLName = BO.OwnerLName,
         IsShareable = BO.IsShareable,
         IsShared = BO.IsShared,
         HasDraftModeData = BO.HasDraftModeData
     });
 }
Esempio n. 12
0
        public FormInfoBO GetFormByFormId(string formId)
        {
            FormInfoBO formInfoBO = new FormInfoBO();

            try
            {
                Guid Id = new Guid(formId);

                using (var Context = DataObjectFactory.CreateContext())
                {
                    SurveyMetaData SurveyMetaData = Context.SurveyMetaDatas.Single(x => x.SurveyId == Id);
                    formInfoBO = Mapper.ToFormInfoBO(SurveyMetaData);
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return(formInfoBO);
        }
        public void TestFormInfoBODTO()
        {
            //var BO = new FormInfoBO();
            ////{ //FormId = "2e1d01d4-f50d-4f23-888b-cd4b7fc9884b", FormName = "Zika", UserId = 1014 }
            //var Forminfo = BO.ToFormInfoDTO();


            //int numberOfPublicProperties = typeof(FormInfoBO).GetProperties(System.Reflection.BindingFlags.Public).Count();
            //int numberOfPublicPropertiesforDTO = typeof(FormInfoDTO).GetProperties(System.Reflection.BindingFlags.Public).Count();
            ////Assert.AreEqual(BO.UserId, Forminfo.UserId);
            ////Assert.AreEqual(BO.FormId, Forminfo.FormId);


            //Assert.AreEqual(numberOfPublicProperties, numberOfPublicPropertiesforDTO);

            var BO       = new FormInfoBO();
            var Forminfo = BO.ToFormInfoDTO();


            FormInfoBO objFormInfoBO = new FormInfoBO();

            //Class Instance
            FormInfoDTO objFormInfoDTO = new FormInfoDTO();

            // From Extension Method
            // var objFormInfoBOExtensions = FormInfoBOExtensions.ToFormInfoDTO(BO);


            int numberOfPublicPropertiesofDTO  = objFormInfoDTO.GetType().GetProperties().Count();
            int numberOfPublicPropertiesofBO = objFormInfoBO.GetType().GetProperties().Count();

            Assert.AreEqual(numberOfPublicPropertiesofDTO, FormInfoDTOPropertyCount, "FormInfoDTO  properties has been changed");
            Assert.AreEqual(numberOfPublicPropertiesofBO, FormInfoBOPropertyCount, "FormInfoBO  properties has been changed");

            //Assert.AreEqual(numberOfPublicPropertiesofDTO, numberOfPublicPropertiesofBO);
        }
        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);
            }
        }
Esempio n. 15
0
        public FormInfoBO GetFormByFormId(string FormId, bool GetXml, int UserId)
        {
            FormInfoBO FormInfoBO = new FormInfoBO();

            try
            {
                Guid Id = new Guid(FormId);

                using (var Context = DataObjectFactory.CreateContext())
                {
                    //SurveyMetaData Response = Context.SurveyMetaDatas.First(x => x.SurveyId == Id);
                    //var _Org = new HashSet<int>(Response.Organizations.Select(x => x.OrganizationId));
                    //  var Response = Context.SurveyMetaDatas.Where(x => x.SurveyId == Id);

                    if (GetXml)
                    {
                        var Response = from r in Context.SurveyMetaDatas
                                       where r.SurveyId == Id
                                       select r;
                        var  item     = Response.First();
                        var  _Org     = new HashSet <int>(Response.Select(x => x.OrganizationId));
                        var  Orgs     = Context.Organizations.Where(t => _Org.Contains(t.OrganizationId)).ToList();
                        bool IsShared = false;

                        foreach (var org in Orgs)
                        {
                            var UserInfo = Context.UserOrganizations.Where(x => x.OrganizationID == org.OrganizationId && x.UserID == UserId && x.RoleId == 2);
                            if (UserInfo.Count() > 0)
                            {
                                IsShared = true;
                                break;
                            }
                        }
                        FormInfoBO          = Mapper.MapToFormInfoBO(item, null, GetXml);
                        FormInfoBO.IsShared = IsShared;

                        if (item.OwnerId == UserId)
                        {
                            FormInfoBO.IsOwner = true;
                        }
                        else
                        {
                            FormInfoBO.IsOwner = false;
                        }
                    }


                    else

                    {
                        var Response = from r in Context.SurveyMetaDatas
                                       where r.SurveyId == Id
                                       select new
                        {
                            r.IsSQLProject,
                            r.SurveyId,
                            r.SurveyName,
                            r.SurveyNumber,
                            r.OrganizationName,
                            r.OrganizationId,
                            r.IsDraftMode,
                            r.IsShareable,
                            r.OwnerId,
                            r.ParentId
                        };
                        var  item     = Response.First();
                        var  _Org     = new HashSet <int>(Response.Select(x => x.OrganizationId));
                        var  Orgs     = Context.Organizations.Where(t => _Org.Contains(t.OrganizationId)).ToList();
                        bool IsShared = false;

                        foreach (var org in Orgs)
                        {
                            var UserInfo = Context.UserOrganizations.Where(x => x.OrganizationID == org.OrganizationId && x.UserID == UserId && x.RoleId == 2);
                            if (UserInfo.Count() > 0)
                            {
                                IsShared = true;
                                break;
                            }
                        }
                        FormInfoBO.IsSQLProject     = (item.IsSQLProject == null) ? false : (bool)item.IsSQLProject;
                        FormInfoBO.FormId           = item.SurveyId.ToString();
                        FormInfoBO.FormName         = item.SurveyName;
                        FormInfoBO.FormNumber       = item.SurveyNumber;
                        FormInfoBO.OrganizationName = item.OrganizationName;
                        FormInfoBO.OrganizationId   = item.OrganizationId;
                        FormInfoBO.IsDraftMode      = item.IsDraftMode;
                        FormInfoBO.UserId           = item.OwnerId;

                        if (FormInfoBO.IsShareable != null)
                        {
                            FormInfoBO.IsShareable = (bool)item.IsShareable;
                        }


                        FormInfoBO.ParentId = item.ParentId.ToString();
                        FormInfoBO.IsShared = IsShared;

                        if (item.OwnerId == UserId)
                        {
                            FormInfoBO.IsOwner = true;
                        }
                        else
                        {
                            FormInfoBO.IsOwner = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }



            return(FormInfoBO);
        }
Esempio n. 16
0
 public void UpdateFormMode(FormInfoBO formInfoBO, FormSettingBO formSettingBO = null)
 {
     _formSettingDao_CosmosDB.UpdateFormMode(formInfoBO, formSettingBO);
 }
        private void SendEmail(Dictionary <int, String> AssignedUserList, string FormId, List <UserBO> FormCurrentUsersList, bool ShareForm = false)
        {
            try
            {
                FormInfoBO FormInfoBO = this.FormInfoDao.GetFormByFormId(FormId);
                if (!string.IsNullOrEmpty(FormInfoBO.ParentId))
                {
                    return;
                }
                UserBO        UserBO            = this.UserDao.GetCurrentUser(FormInfoBO.UserId);
                List <string> UsersEmail        = new List <string>();
                List <string> CurrentUsersEmail = new List <string>();

                foreach (UserBO User in FormCurrentUsersList)
                {
                    CurrentUsersEmail.Add(User.EmailAddress);
                }


                if (CurrentUsersEmail.Count() > 0)
                {
                    foreach (var User in AssignedUserList)
                    {
                        if (!CurrentUsersEmail.Contains(User.Value))
                        {
                            UsersEmail.Add(User.Value);
                        }
                    }
                }
                else
                {
                    foreach (var User in AssignedUserList)
                    {
                        UsersEmail.Add(User.Value);
                    }
                }

                if (UsersEmail.Count() > 0)
                {
                    Epi.Web.Enter.Common.Email.Email Email = new Web.Enter.Common.Email.Email();
                    if (!ShareForm)
                    {
                        Email.Body    = UserBO.FirstName + " " + UserBO.LastName + " has assigned the following form to you in Epi Info™ Cloud Data Capture.\n\nTitle: " + FormInfoBO.FormName + " \n \n \nPlease click the link below to launch Epi Info™ Cloud Data Capture.";
                        Email.Body    = Email.Body.ToString() + " \n \n" + ConfigurationManager.AppSettings["BaseURL"];
                        Email.From    = UserBO.EmailAddress;
                        Email.To      = UsersEmail;
                        Email.Subject = "An Epi Info Cloud Data Capture Form - " + FormInfoBO.FormName + " has been assigned to you";
                    }
                    else
                    {
                        Email.Body    = UserBO.FirstName + " " + UserBO.LastName + " has shared the following form  with your organization in Epi Info™ Cloud Data Capture.\n\nTitle: " + FormInfoBO.FormName + " \n \n \nPlease click the link below to launch Epi Info™ Cloud Data Capture.";
                        Email.Body    = Email.Body.ToString() + " \n \n" + ConfigurationManager.AppSettings["BaseURL"];
                        Email.From    = UserBO.EmailAddress;
                        Email.To      = UsersEmail;
                        Email.Subject = "An Epi Info Cloud Data Capture Form - " + FormInfoBO.FormName + " has been shared with your organization.";
                    }
                    Epi.Web.Enter.Common.Email.EmailHandler.SendMessage(Email);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public FormInfoBO GetFormByFormId(string FormId, bool GetXml, int UserId)
        {
            FormInfoBO FormInfoBO = new FormInfoBO();

            try
            {
                Guid Id = new Guid(FormId);

                using (var Context = DataObjectFactory.CreateContext())
                {
                    var items = 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 Response = Context.SurveyMetaDatas.First(x => x.SurveyId == Id);
                    var            _Org     = new HashSet <int>(Response.Organizations.Select(x => x.OrganizationId));
                    var            Orgs     = Context.Organizations.Where(t => _Org.Contains(t.OrganizationId)).ToList();



                    bool IsShared = false;

                    foreach (var org in Orgs)
                    {
                        var UserInfo = Context.UserOrganizations.Where(x => x.OrganizationID == org.OrganizationId && x.UserID == UserId && x.RoleId == 2);
                        if (UserInfo.Count() > 0)
                        {
                            IsShared = true;
                            break;
                        }
                    }



                    foreach (var item in items)
                    {
                        FormInfoBO          = Mapper.MapToFormInfoBO(item.FormInfo, item.UserInfo, GetXml);
                        FormInfoBO.IsShared = IsShared;

                        if (item.UserInfo.UserID == UserId)
                        {
                            FormInfoBO.IsOwner = true;
                        }
                        else
                        {
                            FormInfoBO.IsOwner = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }



            return(FormInfoBO);
        }