예제 #1
0
        /// <summary>
        /// Al primo caricamento della pagina!
        /// </summary>
        public void InitView()
        {
            if (!CheckSessionAccess())
            {
                return;
            }

            if (!(Module.ManageCategory || Module.Administration))
            {
                View.SendUserActions(service.ModuleID,
                                     ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None);

                View.ShowNoPermission();
                return;
            }

            Domain.Category Category = new Domain.Category();

            //View.CommunityCategories = service.CategoriesGetCommunity(true);

            if (View.CurrentCategoryId > 0)
            {
                //Categoria
                Domain.Category Cat = service.CategoryGetDetached(View.CurrentCategoryId, Domain.Enums.RolesLoad.all, false);
                if (Cat == null || Cat.Id <= 0 || Cat.IdCommunity != CurrentCommunityId)
                {
                    View.ShowWrongCategory();
                    return;
                }

                Domain.DTO.DTO_CategoryTypeComPermission Permission = service.CategoryTypeGetPermission(this.CurrentCommunityId);


                View.InitCategories(Permission, Cat.Type, Cat.IsDefault);
                View.Category = Cat;

                //Traduzioni
                List <lm.Comol.Core.DomainModel.Languages.LanguageItem> langs = new List <lm.Comol.Core.DomainModel.Languages.LanguageItem>();
                //List<Domain.DTO.DTO_CategoryTranslation> translations = new List<Domain.DTO.DTO_CategoryTranslation>();
                langs = (from t in Cat.Translations
                         where t.Deleted == BaseStatusDeleted.None
                         select new lm.Comol.Core.DomainModel.Languages.LanguageItem
                {
                    IsMultiLanguage = (t.LanguageId == TicketService.LangMultiID) ? true : false,
                    Id = t.LanguageId,
                    Code = (t.LanguageId == TicketService.LangMultiID) ? t.LanguageCode.ToUpper() : t.LanguageCode,
                    Name = (t.LanguageId == TicketService.LangMultiID) ? t.LanguageName.ToUpper() : t.LanguageName,
                    Status = DomainModel.Languages.ItemStatus.valid
                }).Distinct().ToList();
                //.OrderBy(li => li.IsMultiLanguage).ThenBy(li => li.Code).ToList();

                //.OrderBy(li => li.Code).ToList();
                //langs = langs.OrderBy(li => li.IsMultiLanguage).ToList();
                //.OrderBy(li => li.IsMultiLanguage).ThenBy(li => li.Code).Distinct().ToList();


                ////TEST!!!
                //String TEST = "";
                //foreach (lm.Comol.Core.DomainModel.Languages.LanguageItem _lng in langs)
                //{
                //    TEST += _lng.Code + " - " + _lng.Name + " - " + _lng.IsMultiLanguage + "/r/n";
                //}

                //langs = langs.OrderBy(li => li.IsMultiLanguage).ThenBy(li => li.Code).ToList();

                //TEST += "/r/n -------  /r/n";

                //foreach(lm.Comol.Core.DomainModel.Languages.LanguageItem _lng in langs)
                //{
                //    TEST += _lng.Code + " - " + _lng.Name + " - " + _lng.IsMultiLanguage + "/r/n";
                //}


                ////END TEST!!!



                lm.Comol.Core.DomainModel.Languages.LanguageItem current =
                    (from lm.Comol.Core.DomainModel.Languages.LanguageItem lng in langs
                     where lng.Id == TicketService.LangMultiID
                     select lng).FirstOrDefault();

                View.BindLanguages(service.LanguagesGetAvailableSys().Distinct().ToList(), langs, current);
                View.PreviousLanguage = current;


                //UTENTI
                IList <Domain.DTO.DTO_UserRole> roles = (from Domain.LK_UserCategory lkcat in Cat.UserRoles select new Domain.DTO.DTO_UserRole()
                {
                    User = lkcat.User, IsManager = lkcat.IsManager
                }).ToList();

                int Managercount = (from Domain.DTO.DTO_UserRole rl in roles where rl.IsManager == true select rl.IsManager).Count();

                if (Managercount <= 1)
                {
                    View.ShowDeleteManagers = false;
                }
                else
                {
                    View.ShowDeleteManagers = true;
                }

                //Begin Action
                List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();
                Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID));
                Objects.Add(ModuleTicket.KVPgetCategory(Cat.Id));

                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.CategoryLoadManage, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                //End Action


                View.AssociatedUsers = roles;

                View.ShowForcedReassigned(null);
            }
            else
            {
                View.RedirectToList();
                //Vai alla creazione!
                //View.Category = new Domain.Category();
            }


            //Category;
        }