public dtoScormPackageSettings ScormPackageGetDtoCompletionSettings(liteRepositoryItemVersion version, long idSettings = 0)
        {
            dtoScormPackageSettings item = null;

            try
            {
                ScormPackageSettings settings = (from s in Manager.GetIQ <ScormPackageSettings>()
                                                 where (idSettings == 0 || idSettings == s.Id) && s.IdItem == version.IdItem && s.IdVersion == version.Id select s).OrderByDescending(s => s.Id).Skip(0).Take(1).ToList().FirstOrDefault();
                if (settings != null)
                {
                    item = dtoScormPackageSettings.CreateFrom(settings, version);
                }
            }
            catch (Exception ex) {
            }
            return(item);
        }
Пример #2
0
        public void InitView(long idLink, long idItem, long idVersion, long idFolder, String path, Boolean setBackUrl, String backUrl)
        {
            RepositoryIdentifier rIdentifier = Service.ItemGetRepositoryIdentifier(idItem);
            Int32 idCommunity = UserContext.CurrentCommunityID;

            View.IdItem                      = idItem;
            View.IdVersion                   = idVersion;
            View.IdLink                      = idLink;
            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(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)
            {
                uAction = ModuleRepository.ActionType.ScormSettingsTryToLoad;
                View.DisplayUnknownItem();
            }
            else
            {
                Int32 idCurrentUser               = UserContext.CurrentUserID;
                liteRepositoryItem        item    = Service.ItemGet(idItem);
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version == null)
                {
                    uAction = ModuleRepository.ActionType.ScormSettingsTryToLoad;
                    View.DisplayUnknownItem();
                }
                else if (version.Type != ItemType.ScormPackage)
                {
                    idCommunity = version.IdCommunity;
                    View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsInvalidType);
                    uAction = ModuleRepository.ActionType.ScormSettingsInvalidType;
                }
                else
                {
                    idVersion      = version.Id;
                    View.IdVersion = idVersion;
                    idCommunity    = version.IdCommunity;
                    if (version.Availability == ItemAvailability.available || version.Availability == ItemAvailability.waitingsettings)
                    {
                        ItemPermission permissions = null;

                        if (idLink == 0)
                        {
                            dtoDisplayRepositoryItem dto = Service.GetItemWithPermissions(idItem, idCurrentUser, item.Repository, View.GetUnknownUserName());
                            if (dto != null)
                            {
                                permissions = dto.Permissions;
                            }
                        }
                        else
                        {
                            liteModuleLink link = CurrentManager.Get <liteModuleLink>(idLink);
                            if (link == null)
                            {
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsNoPermission);
                            }
                            else
                            {
                                permissions = View.GetLinkPermissions(link, idCurrentUser);
                                idCommunity = link.SourceItem.CommunityID;
                            }
                        }
                        if (permissions != null && permissions.EditSettings)
                        {
                            uAction = ModuleRepository.ActionType.ScormSettingsLoaded;
                            if (version.Availability == ItemAvailability.waitingsettings)
                            {
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsWaitingToSet);
                            }
                            dtoScormPackageSettings settings = Service.ScormPackageGetDtoCompletionSettings(idItem, idVersion);
                            View.AllowSave = (settings != null);
                            if (settings == null)
                            {
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsNotFound);
                            }
                            else
                            {
                                View.IdSettings = settings.Id;
                                View.LoadSettings(item.UniqueIdVersion.ToString(), item.DisplayName, settings, false, false);
                            }
                        }
                        else
                        {
                            View.AllowSave = false;
                            uAction        = ModuleRepository.ActionType.ScormSettingsNoPermissions;
                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsNoPermission);
                        }
                    }
                    else
                    {
                        View.AllowSave = false;
                        uAction        = ModuleRepository.ActionType.ScormSettingsStatusError;
                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsInvalidStatus, version.Availability);
                    }
                }

                View.RepositoryIdentifier  = CacheKeys.RepositoryIdentifierKey(rIdentifier.Type, rIdentifier.IdCommunity);
                View.RepositoryIdCommunity = rIdentifier.IdCommunity;
                View.RepositoryType        = rIdentifier.Type;
                View.IsInitialized         = true;
            }
            View.SendUserAction(idCommunity, Service.GetIdModule(), uAction);
        }
        public void InitView(long idSettings, long idLink, long idItem, long idVersion)
        {
            RepositoryIdentifier rIdentifier = Service.ItemGetRepositoryIdentifier(idItem);
            Int32 idCommunity = UserContext.CurrentCommunityID;

            View.IdItem         = idItem;
            View.IdVersion      = idVersion;
            View.IdLink         = idLink;
            View.PageIdentifier = Guid.NewGuid();
            if (SessionTimeout())
            {
                return;
            }

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

            if (rIdentifier == null)
            {
                uAction = ModuleRepository.ActionType.ScormSettingsTryToLoad;
                View.DisplayUnknownItem();
            }
            else
            {
                Int32 idCurrentUser               = UserContext.CurrentUserID;
                liteRepositoryItem        item    = Service.ItemGet(idItem);
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version == null)
                {
                    uAction = ModuleRepository.ActionType.ScormSettingsTryToLoad;
                    View.DisplayUnknownItem();
                }
                else if (version.Type != ItemType.ScormPackage)
                {
                    idCommunity = version.IdCommunity;
                    View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsInvalidType);
                    uAction = ModuleRepository.ActionType.ScormSettingsInvalidType;
                }
                else
                {
                    idVersion      = version.Id;
                    View.IdVersion = idVersion;
                    idCommunity    = version.IdCommunity;
                    if (version.Availability == ItemAvailability.available || version.Availability == ItemAvailability.waitingsettings)
                    {
                        ItemPermission permissions = null;

                        if (idLink == 0)
                        {
                            dtoDisplayRepositoryItem dto = Service.GetItemWithPermissions(idItem, idCurrentUser, item.Repository, View.GetUnknownUserName());
                            if (dto != null)
                            {
                                permissions = dto.Permissions;
                            }
                        }
                        else
                        {
                            liteModuleLink link = CurrentManager.Get <liteModuleLink>(idLink);
                            if (link == null)
                            {
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsNoPermission);
                            }
                            else
                            {
                                permissions = View.GetLinkPermissions(link, idCurrentUser);
                                idCommunity = link.SourceItem.CommunityID;
                            }
                        }
                        if (permissions != null && (permissions.Edit || permissions.EditSettings || permissions.ViewMyStatistics || permissions.ViewOtherStatistics))
                        {
                            uAction = ModuleRepository.ActionType.ScormSettingsView;
                            if (version.Availability == ItemAvailability.waitingsettings)
                            {
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsWaitingToSet);
                            }
                            dtoScormPackageSettings settings = Service.ScormPackageGetDtoCompletionSettings(idItem, idVersion, idSettings);
                            if (settings == null)
                            {
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsNotFound);
                            }
                            else
                            {
                                View.IdSettings = settings.Id;
                                View.LoadSettings(item.UniqueIdVersion.ToString(), item.DisplayName, settings, true, true);
                            }
                        }
                        else
                        {
                            uAction = ModuleRepository.ActionType.ScormSettingsNoPermissions;
                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsNoPermission);
                        }
                    }
                    else
                    {
                        uAction = ModuleRepository.ActionType.ScormSettingsStatusError;
                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsInvalidStatus, version.Availability);
                    }
                }

                View.RepositoryIdentifier  = CacheKeys.RepositoryIdentifierKey(rIdentifier.Type, rIdentifier.IdCommunity);
                View.RepositoryIdCommunity = rIdentifier.IdCommunity;
                View.RepositoryType        = rIdentifier.Type;
                View.IsInitialized         = true;
            }
            View.SendUserAction(idCommunity, Service.GetIdModule(), uAction);
        }