示例#1
0
        /// <summary>
        /// Demoteds the user.
        /// </summary>
        private void DemotedUser()
        {
            if (!ModulesHelper.IsPremiumModuleValid())
            {
                return;
            }

            _userDialogs.ShowLoading("Usuário perdendo acesso Premium", MaskType.Gradient);

            Menus = new ObservableCollection <Menu>
            {
                new Menu(Constants.MenuCheckingAccount, Constants.MenuIconCheckinAccout, true),
                new Menu(Constants.MenuCreditCard, Constants.MenuIconCreditCard, true),
                new Menu(Constants.MenuLoan, Constants.MenuIconLoan, true),
                new Menu(Constants.MenuInvestiments, Constants.MenuIconReward, false),
                new Menu(Constants.MenuReward, Constants.MenuIconReward, true),
                new Menu(Constants.MenuExit, Constants.MenuIconExit, true),
            };

            // Removendo assinatura para o evento
            _ea.GetEvent <UserProfileDemotedEvent>().Unsubscribe(() => { });

            // Garantindo para a lógica total da aplicação o
            // descarregar do módulo Premium
            ModulesHelper.UnloadPremiumModule();

            Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
            {
                Xamarin.Forms.Device.StartTimer(TimeSpan.FromSeconds(10), () =>
                {
                    _userDialogs.HideLoading();
                    return(false);
                });
            });
        }
        public override object ProcessValue()
        {
            var modules = Context.Content.GetPropertyValue <IEnumerable <IPublishedContent> >("modules");

            var modulesHelper   = new ModulesHelper();
            var resolvedModules = modulesHelper.ResolveModules(modules);

            return(resolvedModules);
        }
示例#3
0
        /// <summary>
        /// Remove list of modules from user requirments. Order of modules is not important
        /// (it will be sort automaticaly with considering of dependencies)
        /// </summary>
        public void RemoveModules(string userId, IEnumerable <ModuleIdentity> modules)
        {
            var ordered = ModulesHelper.OrderModules(modules.Select(x => _modules.GetModule(x).ModuleInfo)).Reverse();

            foreach (var moduleInfo in ordered)
            {
                RemoveModule(userId, moduleInfo.ModuleIdentity);
            }
        }
示例#4
0
        /// <summary>
        /// Register list of modules.
        /// This method will try to register modules in right order.
        /// </summary>
        public virtual void RegisterModules(IEnumerable <IModule> modules)
        {
            var enumerable       = modules as IModule[] ?? modules.ToArray();
            var identityToModule = enumerable.ToDictionary(x => x.ModuleInfo.ModuleIdentity, x => x); // Just for get IModule by ModuleIdentity
            var orderedModules   = ModulesHelper.OrderModules(enumerable.Select(x => x.ModuleInfo));

            foreach (var m in orderedModules)
            {
                RegisterModule(identityToModule[m.ModuleIdentity]);
            }
        }
示例#5
0
        /// <summary>
        /// Unregister list of modules.
        /// This method will try to unregister modules in right order.
        /// </summary>
        public virtual void UnregisterModules(IEnumerable <ModuleIdentity> moduleIdentities)
        {
            var identities     = moduleIdentities as ModuleIdentity[] ?? moduleIdentities.ToArray();
            var infos          = identities.Select(x => GetModule(x).ModuleInfo);
            var orderedModules = ModulesHelper.OrderModules(infos).Reverse();

            foreach (var m in orderedModules)
            {
                UnregisterModule(m.ModuleIdentity);
            }
        }
        public void ResolveModules_should_return_empty_result_if_null_value_is_passed()
        {
            // Arrange
            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, false, null);

            // Act
            var response = _modulesHelper.ResolveModules(null);

            // Assert
            Assert.NotNull(response);
            Assert.AreEqual(0, response.Count());
        }
示例#7
0
        /// <summary>
        /// Remove module from required for specifed user
        /// </summary>
        public void RemoveModule(string userId, ModuleIdentity module)
        {
            var dependent = ModulesHelper.GetDependent(module,
                                                       _userModules.GetModules(userId).Select(x => _modules.GetModule(x).ModuleInfo))
                            .ToArray();

            if (dependent.Any())
            {
                throw new ModuleIsRequiredException(module, dependent);
            }
            _userModules.RemoveModule(userId, module);
        }
        public void ResolveModules_should_return_empty_result_if_empty_modules_list_is_passed()
        {
            // Arrange
            IEnumerable <IPublishedContent> modules = new List <IPublishedContent>();

            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, false, null);

            // Act
            var response = _modulesHelper.ResolveModules(modules);

            // Assert
            Assert.NotNull(response);
            Assert.AreEqual(0, response.Count());
        }
示例#9
0
        public void Initialize()
        {
            NotificationHelper.WriteNotification("Initialisation du Module PortDuplicator.");

            ModulesHelper.AddLoadedModuleToList("PortDuplicator");

            var regionManager = ServiceLocator.Current.GetInstance <IRegionManager>();
            var container     = ServiceLocator.Current.GetInstance <IUnityContainer>();

            // Enregistrement du MenuItem
            regionManager.RegisterViewWithRegion(RegionNames.MenuModulesRegion, typeof(PortDuplicatorMenuView));

            // enregistrement de la vue
            container.RegisterType <PortDuplicatorView>(typeof(PortDuplicatorView).ToString());
        }
        public void ResolveModules_should_not_resolve_Component_modules_if_option_parameter_is_false()
        {
            // Arrange
            var modules = _modulesTestData.SimpleListOfModules();

            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, false, null);

            // Act
            var response       = _modulesHelper.ResolveModules(modules);
            var responseAsList = response.ToList();

            // Assert
            Assert.NotNull(response);
            Assert.IsInstanceOf <IEnumerable <BaseModule> >(response);
            Assert.IsInstanceOf <ComponentModule>(responseAsList[2]);
        }
        public void ResolveModules_should_return_modules_that_should_not_be_unpublished_yet()
        {
            // Arrange
            // We set all modules to have unpublishDate set 2 days into the future, so we expect all modules returned.
            _mockedGetPropertyValueWrapper
            .Setup(c => c.GetPropertyValue <DateTime>(It.IsAny <IPublishedContent>(), "unpublishDate"))
            .Returns(DateTime.Now.AddDays(2));
            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, false, null);
            var modules = _modulesTestData.SimpleListOfModules();

            // Act
            var response = _modulesHelper.ResolveModules(modules);

            // Assert
            Assert.NotNull(response);
            Assert.AreEqual(3, response.Count());
        }
        public void ResolveModules_should_return_correct_types_of_modules()
        {
            // Arrange
            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, false, null);
            var modules = _modulesTestData.SimpleListOfModules();

            // Act
            var response       = _modulesHelper.ResolveModules(modules);
            var responseAsList = response.ToList();

            // Assert
            Assert.NotNull(response);
            Assert.IsInstanceOf <IEnumerable <BaseModule> >(response);
            Assert.AreEqual(3, responseAsList.Count);
            Assert.IsInstanceOf <TextboxModule>(responseAsList[0]);
            Assert.IsInstanceOf <ImageboxModule>(responseAsList[1]);
            Assert.IsInstanceOf <ComponentModule>(responseAsList[2]);
        }
        public void ResolveModules_should_return_modules_that_should_be_published_with_preview_true_but_invalid_preview_date_set()
        {
            // Arrange
            // We set preview mode to true, and set an invalid preview date (date that cannot be parsed),
            // and set all modules to have publishDate 2 days back, so we expect all modules returned.
            _mockedGetPropertyValueWrapper
            .Setup(c => c.GetPropertyValue <DateTime>(It.IsAny <IPublishedContent>(), "publishDate"))
            .Returns(DateTime.Now.AddDays(-2));
            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, true, "2017-13-10");
            var modules = _modulesTestData.SimpleListOfModules();

            // Act
            var response = _modulesHelper.ResolveModules(modules);

            // Assert
            Assert.NotNull(response);
            Assert.AreEqual(3, response.Count());
        }
        public void ResolveModules_should_return_modules_that_should_be_published_with_a_preview_date_set()
        {
            // Arrange
            // We set preview mode and a preview date 2 days into the future and set all modules to have publishDate 1 day into the future,
            // so we expect all modules returned.
            _mockedGetPropertyValueWrapper
            .Setup(c => c.GetPropertyValue <DateTime>(It.IsAny <IPublishedContent>(), "publishDate"))
            .Returns(DateTime.Now.AddDays(1));
            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, true, DateTime.Now.AddDays(2).ToString("yyyy-MM-dd"));
            var modules = _modulesTestData.SimpleListOfModules();

            // Act
            var response = _modulesHelper.ResolveModules(modules);

            // Assert
            Assert.NotNull(response);
            Assert.AreEqual(3, response.Count());
        }
        public void ResolveModules_should_return_modules_that_should_not_be_published_yet_with_preview_true_but_no_preview_date_set()
        {
            // Arrange
            // We set preview mode to true, but set no preview date, and set all modules to have publishDate 2 days into the future,
            // since it's preview mode we expect all modules returned.
            _mockedGetPropertyValueWrapper
            .Setup(c => c.GetPropertyValue <DateTime>(It.IsAny <IPublishedContent>(), "publishDate"))
            .Returns(DateTime.Now.AddDays(2));
            _modulesHelper = new ModulesHelper(false, _mockedGetPropertyValueWrapper.Object, true, null);
            var modules = _modulesTestData.SimpleListOfModules();

            // Act
            var response = _modulesHelper.ResolveModules(modules);

            // Assert
            Assert.NotNull(response);
            Assert.AreEqual(3, response.Count());
        }
示例#16
0
        public string GetModuleHtml(int moduleId)
        {
            string ret = "";

            try
            {
                Domain.Modules module;
                using (var session = new Data.DataSession())
                {
                    var repo = new Data.ModulesRepository(session.UnitOfWork);
                    module = repo.GetSingle(moduleId);
                }

                var control = ModulesManager.GetControlFromModuleData(module);

                var single = (Module.SingleModule) new DefaultModuleFactory("~/Module/SingleModule.ascx").GetControl(module);

                single.Control = control;

                single.Initialize(true);
                var children = ModulesHelper.FlattenChildren(single);

                var enumerator = children.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    var child = enumerator.Current;

                    if (child is ModuleUserControl)
                    {
                        var moduleChild = (ModuleUserControl)child;
                        moduleChild.Initialize(true);
                    }
                }

                ret = RenderControlToHtml(single);
            }
            catch (Exception ex)
            {
                ret = ex.ToString();
            }

            return(ret);
        }
示例#17
0
        /// <summary>
        /// Add module as required for specifed user
        /// </summary>
        public void AddModule(string userId, ModuleIdentity module)
        {
            var t = _modules.GetModule(module)?.ModuleInfo;

            if (t == null)
            {
                throw new ModuleMissedException(module);
            }
            var depRes = ModulesHelper.CheckDependencies(t, GetModules(userId) ?? new ModuleIdentity[0]);

            if (depRes.IsCheckSuccess)
            {
                _userModules.AddModule(userId, module);
            }
            else
            {
                throw depRes.ToOneException();
            }
        }
        public void ResolveModules_should_resolve_Component_modules_if_option_parameter_is_true()
        {
            // Arrange
            var modules = _modulesTestData.SimpleListOfModules();

            _mockedGetPropertyValueWrapper.Setup(g => g.GetPropertyValue <IEnumerable <IPublishedContent> >(It.IsAny <IPublishedContent>(), "component"))
            .Returns(_modulesTestData.InnerComponentModule);
            _modulesHelper = new ModulesHelper(true, _mockedGetPropertyValueWrapper.Object, false, null);

            // Act
            var response       = _modulesHelper.ResolveModules(modules);
            var responseAsList = response.ToList();

            // Assert
            Assert.NotNull(response);
            Assert.IsInstanceOf <IEnumerable <BaseModule> >(response);
            Assert.AreEqual(3, responseAsList.Count);
            Assert.IsInstanceOf <TextboxModule>(responseAsList[0]);
            Assert.IsInstanceOf <ImageboxModule>(responseAsList[1]);
            Assert.IsInstanceOf <TextboxModule>(responseAsList[2]);
        }
示例#19
0
        /// <summary>
        /// Loads the menus.
        /// </summary>
        private void LoadMenus()
        {
            isBusy = true;

            if (ModulesHelper.IsPremiumModuleValid())
            {
                Menus = new ObservableCollection <Menu>
                {
                    new Menu(Constants.MenuCheckingAccount, Constants.MenuIconCheckinAccout, true),
                    new Menu(Constants.MenuCreditCard, Constants.MenuIconCreditCard, true),
                    new Menu(Constants.MenuLoan, Constants.MenuIconLoan, true),
                    new Menu(Constants.MenuInvestiments, Constants.MenuIconReward, true),
                    new Menu(Constants.MenuReward, Constants.MenuIconReward, true),
                    new Menu(Constants.MenuExit, Constants.MenuIconExit, true),
                };
            }
            else
            {
                Menus = new ObservableCollection <Menu>
                {
                    new Menu(Constants.MenuCheckingAccount, Constants.MenuIconCheckinAccout, true),
                    new Menu(Constants.MenuCreditCard, Constants.MenuIconCreditCard, true),
                    new Menu(Constants.MenuLoan, Constants.MenuIconLoan, true),
                    new Menu(Constants.MenuInvestiments, Constants.MenuIconReward, false),
                    new Menu(Constants.MenuReward, Constants.MenuIconReward, true),
                    new Menu(Constants.MenuExit, Constants.MenuIconExit, true),
                };
            }

            Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
            {
                Xamarin.Forms.Device.StartTimer(TimeSpan.FromSeconds(5), () =>
                {
                    IsBusy = false;
                    return(false);
                });
            });
        }
示例#20
0
        private void buttonLoadTables_Click(object sender, EventArgs e)

        {
            IKBService kbserv  = UIServices.KB;
            KBModel    kbmodel = kbserv.CurrentModel;
            //Create a New DataTable to store the Data
            DataTable Tables = new DataTable("Tables");
            //Create the Columns in the DataTable
            DataColumn c0 = new DataColumn("Name");
            DataColumn c1 = new DataColumn("Module");

            System.Type typeInt32 = System.Type.GetType("System.Int32");
            DataColumn  c2        = new DataColumn("#Updates", typeInt32);

            DataColumn c3 = new DataColumn("#Readers", typeInt32);
            DataColumn c4 = new DataColumn("#Inserts", typeInt32);
            DataColumn c5 = new DataColumn("#Total", typeInt32);

            //Add the Created Columns to the Datatable

            Tables.Columns.Add(c0);
            Tables.Columns.Add(c1);
            Tables.Columns.Add(c2);
            Tables.Columns.Add(c3);
            Tables.Columns.Add(c4);
            Tables.Columns.Add(c5);
            //Create 3 rows
            DataRow row;

            foreach (KBObject obj in kbserv.CurrentModel.Objects.GetAll())
            {
                if (obj is Table)
                {
                    row           = Tables.NewRow();
                    row["Name"]   = obj.Name;
                    row["Module"] = ModulesHelper.ObjectModule(obj);

                    IList <KBObject> updaters = (from r in kbmodel.GetReferencesTo(obj.Key, LinkType.UsedObject)
                                                 where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                                 where ReferenceTypeInfo.HasUpdateAccess(r.LinkTypeInfo)
                                                 select kbmodel.Objects.Get(r.From)).ToList();


                    row["#Updates"] = updaters.Count;

                    IList <KBObject> readers = (from r in kbmodel.GetReferencesTo(obj.Key, LinkType.UsedObject)
                                                where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                                where ReferenceTypeInfo.HasReadAccess(r.LinkTypeInfo)
                                                select kbmodel.Objects.Get(r.From)).ToList();

                    row["#Readers"] = readers.Count;

                    IList <KBObject> inserts = (from r in kbmodel.GetReferencesTo(obj.Key, LinkType.UsedObject)
                                                where r.ReferenceType == ReferenceType.WeakExternal // las referencias a tablas que agrega el especificador son de este tipo
                                                where ReferenceTypeInfo.HasInsertAccess(r.LinkTypeInfo)
                                                select kbmodel.Objects.Get(r.From)).ToList();
                    row["#Inserts"] = inserts.Count;
                    row["#Total"]   = updaters.Count + readers.Count + inserts.Count;
                    Tables.Rows.Add(row);
                }
            }

            DataGridViewColumn c6 = dataGridTables.Columns.GetLastColumn(DataGridViewElementStates.Frozen, DataGridViewElementStates.None);

            dataGridTables.DataSource = Tables;
            dataGridTables.Sort(c6, ListSortDirection.Descending);
        }
 /// <summary>
 /// Saves the properties async.
 /// </summary>
 /// <returns>The properties async.</returns>
 public override async Task SavePropertiesAsync()
 {
     ModulesHelper.LoadPremiumModule();
 }