Ejemplo n.º 1
0
        public Boolean SaveItem(long idItem, String description, String name, String url, DisplayMode?mode, Boolean isVisible, Boolean allowUpload, List <String> tags)
        {
            Boolean executed = false;

            if (SessionTimeout())
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleRepository.ObjectType oType   = ModuleRepository.ObjectType.File;
                ModuleRepository.ActionType uAction = ModuleRepository.ActionType.GenericError;
                Int32 idCommunity       = UserContext.CurrentCommunityID;
                liteRepositoryItem item = Service.ItemGet(idItem);
                if (item == null)
                {
                    View.DisplayUnknownItem(ItemAction.edit);
                    uAction = ModuleRepository.ActionType.UnknownItemFound;
                }
                else
                {
                    idCommunity = item.Repository.IdCommunity;
                    Int32 idCurrentUser = UserContext.CurrentUserID;
                    oType = ModuleRepository.GetObjectType(item.Type);

                    ItemSaving saving = Service.ItemSetBaseSettings(idItem, description, name, url, mode, isVisible, allowUpload, tags);
                    if (saving == ItemSaving.None)
                    {
                        View.DisplayUnavailableItem(ItemAction.edit);
                        uAction = ModuleRepository.ActionType.UnavailableItem;
                    }
                    else
                    {
                        executed = (saving == ItemSaving.Saved);
                        View.DisplayUpdateMessage(saving);
                        switch (saving)
                        {
                        case ItemSaving.Saved:
                            uAction = ModuleRepository.ActionType.ItemSavedDetails;
                            View.UpdateDefaultTags(ServiceTags.GetAvailableTags(idCurrentUser, idCommunity, Service.GetIdModule(), ModuleRepository.UniqueCode));
                            break;

                        case ItemSaving.None:
                            uAction = ModuleRepository.ActionType.ItemTryToSaveDetails;
                            break;

                        default:
                            uAction = ModuleRepository.ActionType.ItemSavedSomeDetails;
                            break;
                        }
                    }
                }
                View.SendUserAction(idCommunity, Service.GetIdModule(), uAction, idItem, oType);
            }
            return(executed);
        }
Ejemplo n.º 2
0
        public void InitView(Boolean isEditPage, long idItem, long idFolder, String path, Boolean setBackUrl, String backUrl)
        {
            RepositoryIdentifier rIdentifier = Service.ItemGetRepositoryIdentifier(idItem);
            Int32 idCommunity = UserContext.CurrentCommunityID;

            View.IdItem                      = idItem;
            View.IdCurrentFolder             = idFolder;
            View.CurrentFolderIdentifierPath = path;
            if (setBackUrl && String.IsNullOrEmpty(backUrl))
            {
                backUrl = View.GetPreviousRelativeUrl();
                if (!IsValidPreviousUrl(backUrl))
                {
                    backUrl    = "";
                    setBackUrl = false;
                }
                if (backUrl.StartsWith(RootObject.BaseRepositoryUrl(), StringComparison.InvariantCultureIgnoreCase) && rIdentifier != null)
                {
                    cookieRepository cookie = View.GetRepositoryCookie(rIdentifier);
                    if (cookie != null)
                    {
                        backUrl = RootObject.RepositoryItems(rIdentifier.Type, rIdentifier.IdCommunity, 0, cookie.IdFolder, cookie.Type, cookie.ItemsOrderBy, cookie.Ascending, cookie.IdentifierPath);
                    }
                }
                SetLogoutUrl(isEditPage, View.GetCurrentUrl(), setBackUrl, backUrl);
            }
            else
            {
                View.DefaultLogoutUrl = View.GetCurrentUrl();
            }
            View.BackUrl = (setBackUrl ? backUrl : "");
            View.SetPageBackUrl(backUrl);
            View.PageIdentifier = Guid.NewGuid();
            if (SessionTimeout())
            {
                return;
            }

            View.IsInitialized = true;
            ModuleRepository.ActionType uAction = ModuleRepository.ActionType.None;

            if (rIdentifier == null)
            {
                View.InitializeHeader();
                uAction = (isEditPage) ? ModuleRepository.ActionType.EditDetailsTryToLoad : ModuleRepository.ActionType.ViewDetailsTryToLoad;
                View.DisplayUnknownItem();
            }
            else
            {
                Int32 idCurrentUser             = UserContext.CurrentUserID;
                liteRepositorySettings settings = Service.SettingsGetByRepositoryIdentifier(rIdentifier);

                ModuleRepository module = Service.GetPermissions(rIdentifier, idCurrentUser);

                View.RepositoryIdentifier  = CacheKeys.RepositoryIdentifierKey(rIdentifier.Type, rIdentifier.IdCommunity);
                View.RepositoryIdCommunity = rIdentifier.IdCommunity;
                idCommunity         = rIdentifier.IdCommunity;
                View.RepositoryType = rIdentifier.Type;

                View.SetTitle(Service.ItemGetType(idItem));
                View.IsInitialized = true;
                if (settings != null)
                {
                    Boolean admin = module.ManageItems || module.Administration;
                    dtoDisplayRepositoryItem dto = Service.GetItemWithPermissionsAndStatistics(idItem, Service.GetAvailableRepositoryItems(settings, UserContext.CurrentUserID, rIdentifier.Type, rIdentifier.IdCommunity, View.GetUnknownUserName(), View.GetFolderTypeTranslation(), View.GetTypesTranslations(), module, admin, admin), UserContext.CurrentUserID);
                    if (dto != null)
                    {
                        if (!isEditPage && dto.Permissions.Edit)
                        {
                            View.SetUrlForEdit(RootObject.EditItem(idItem, idFolder, path, ItemAction.edit, (!String.IsNullOrWhiteSpace(backUrl)), backUrl));
                        }
                        else if (isEditPage)
                        {
                            View.SetUrlForView(RootObject.Details(idItem, idFolder, path, ItemAction.edit, (!String.IsNullOrWhiteSpace(backUrl)), backUrl));
                        }
                        if (!isEditPage || (isEditPage && dto.Permissions.Edit))
                        {
                            View.AllowSave = dto.Permissions.Edit && isEditPage;

                            View.AllowHideItem = dto.Permissions.Hide && isEditPage;
                            View.AllowShowItem = dto.Permissions.Show && isEditPage;
                            View.DisplayItemDetails(isEditPage, dto, settings.AutoThumbnailWidth, settings.AutoThumbnailHeight, settings.AutoThumbnailForExtension);
                            if (dto.Permissions.ViewPermission || dto.Permissions.EditPermission)
                            {
                                View.DisplayItemPermissions(isEditPage, dto);
                            }
                            if (isEditPage)
                            {
                                View.InitializeDefaultTags(ServiceTags.GetAvailableTags(rIdentifier.IdPerson, idCommunity, CurrentIdModule, ModuleRepository.UniqueCode));
                            }
                            else
                            {
                                View.InitializeHeader();
                            }
                            uAction = (isEditPage) ? ModuleRepository.ActionType.EditDetailsLoaded : ModuleRepository.ActionType.ViewDetailsLoaded;
                        }
                        else if (isEditPage)
                        {
                            View.SendUserAction(idCommunity, Service.GetIdModule(), ModuleRepository.ActionType.EditDetailsTryToLoad);
                            View.GoToUrl(RootObject.Details(idItem, idFolder, path, ItemAction.details, setBackUrl, backUrl));
                        }
                    }
                    else
                    {
                        if (isEditPage)
                        {
                            View.SetUrlForView(RootObject.Details(idItem, idFolder, path, ItemAction.edit, (!String.IsNullOrWhiteSpace(backUrl)), backUrl));
                        }

                        View.InitializeHeader();
                        View.DisplayNoPermission(idCommunity, Service.GetIdModule());
                        uAction = (isEditPage) ? ModuleRepository.ActionType.EditDetailsNoPermissions : ModuleRepository.ActionType.ViewDetailsNoPermissions;
                    }
                }
                else
                {
                    View.InitializeHeader();
                    uAction = (isEditPage) ? ModuleRepository.ActionType.EditDetailsTryToLoad : ModuleRepository.ActionType.ViewDetailsTryToLoad;
                    View.DisplayUnknownItem();
                }
            }
            View.SendUserAction(idCommunity, Service.GetIdModule(), uAction);
        }