Esempio n. 1
0
 public dtoDisplayVersionItem(liteRepositoryItemVersion version)
 {
     Permissions     = new VersionPermission();
     Repository      = new RepositoryIdentifier();
     Id              = version.Id;
     CreatedOn       = version.CreatedOn;
     Availability    = version.Availability;
     IsDeleted       = version.Deleted != DomainModel.BaseStatusDeleted.None;
     DisplayMode     = version.DisplayMode;
     Downloaded      = version.Downloaded;
     Extension       = version.Extension;
     IdCommunity     = version.IdCommunity;
     IdItem          = version.IdItem;
     IdCreatedBy     = version.IdCreatedBy;
     IdModifiedBy    = version.IdModifiedBy;
     IsActive        = version.IsActive;
     ModifiedOn      = version.ModifiedOn;
     Name            = version.Name;
     Number          = version.Number;
     Size            = version.Size;
     Status          = version.Status;
     Thumbnail       = version.Thumbnail;
     AutoThumbnail   = version.AutoThumbnail;
     Repository      = version.Repository;
     Type            = version.Type;
     UniqueIdItem    = version.UniqueIdItem;
     UniqueIdVersion = version.UniqueIdVersion;
     Url             = version.Url;
 }
        public void Save(long idItem, long idVersion, long idSettings, EvaluationType evaluation, List <dtoScormItemEvaluationSettings> items)
        {
            if (!SessionTimeout())
            {
                ModuleRepository.ActionType uAction = ModuleRepository.ActionType.ScormSettingsUnableToSave;
                Int32 idCommunity = View.RepositoryIdCommunity;
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version == null)
                {
                    uAction = ModuleRepository.ActionType.ScormSettingsLoaded;
                    View.DisplayUnknownItem();
                    View.AllowSave = false;
                }
                else
                {
                    ScormPackageSettings settings = Service.ScormPackageSettingsSave(idItem, idVersion, idSettings, evaluation, items);
                    if (settings == null)
                    {
                        uAction = ModuleRepository.ActionType.ScormSettingsUnableToSave;
                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsUnableToSave, version.Availability);
                    }
                    else
                    {
                        View.IdSettings = settings.Id;
                        View.LoadSettings(version.UniqueIdVersion.ToString(), version.DisplayName, dtoScormPackageSettings.CreateFrom(settings, version), false, false);

                        uAction = ModuleRepository.ActionType.ScormSettingsSaved;
                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.scormSettingsSaved, version.Availability);
                    }
                }
                View.SendUserAction(idCommunity, Service.GetIdModule(), uAction);
            }
        }
 public String GetVersionThumbnailFullPath(String baseThumbnailPath, liteRepositoryItemVersion version)
 {
     if (version.HasThumbnail)
     {
         return(System.IO.Path.Combine(GetItemDiskPath(baseThumbnailPath, version.Repository), version.Thumbnail));
     }
     else
     {
         return("");
     }
 }
        public void ExecuteAction(long idItem, long idVersion, ItemAction action, String unknownUser, String repositoryPath, String thumnailPath)
        {
            if (!SessionTimeout())
            {
                Boolean reloadItems = false;
                Int32   idCommunity = UserContext.CurrentCommunityID;
                ModuleRepository.ActionType uAction = ModuleRepository.ActionType.GenericError;
                liteRepositoryItemVersion   version = Service.VersionGet(idVersion);
                if (version == null)
                {
                    View.DisplayUserMessage(UserMessageType.versionItemNotFound);
                    uAction = ModuleRepository.ActionType.UnknownItemFound;
                }
                else
                {
                    liteRepositoryItem item = Service.ItemGet(version.IdItem);
                    if (item != null)
                    {
                        String path = repositoryPath;
                        switch (item.Repository.Type)
                        {
                        case RepositoryType.Portal:
                            path += "\\0";
                            break;

                        case RepositoryType.Community:
                            path += "\\" + item.Repository.IdCommunity.ToString();
                            break;
                        }
                        Boolean executed = false;
                        switch (action)
                        {
                        case ItemAction.addVersion:
                            RepositoryItemVersion vr = Service.VersionSetActive(idVersion);
                            reloadItems = (vr != null && vr.IsActive);
                            if (reloadItems)
                            {
                                View.CurrentVersionUpdated();
                            }
                            View.DisplayUserMessage((reloadItems ? UserMessageType.versionPromoted : UserMessageType.versionNotPromoted));
                            uAction = (reloadItems) ? ModuleRepository.ActionType.VersionSetAsActive : ModuleRepository.ActionType.VersionUnableToSetAsActive;
                            break;
                        }
                        if (reloadItems)
                        {
                            LoadVersions(item, unknownUser, repositoryPath);
                        }
                    }
                }
                View.SendUserAction(idCommunity, Service.GetIdModule(), uAction, idVersion, ModuleRepository.ObjectType.VersionItem);
            }
        }
        public dtoScormPackageSettings ScormPackageGetDtoCompletionSettings(long idItem, long idVersion, long idSettings = 0)
        {
            liteRepositoryItemVersion version = ItemGetVersion(idItem, idVersion);

            if (version == null)
            {
                return(null);
            }
            else
            {
                return(ScormPackageGetDtoCompletionSettings(version, idSettings));
            }
        }
        public String GetVersionDiskFullPath(String baseFilePath, liteRepositoryItemVersion version)
        {
            switch (version.Type)
            {
            case ItemType.Link:
            case ItemType.Folder:
            case ItemType.None:
            case ItemType.RootFolder:
                return("");

            default:
                return(System.IO.Path.Combine(GetItemDiskPath(baseFilePath, version.Repository), version.UniqueIdVersion.ToString() + version.Extension));
            }
        }
        public Boolean StatisticsAddDownload(Int32 idPerson, RepositoryIdentifier rIdentifier, long idItem, Guid uniqueIdItem, long idVersion, Guid uniqueIdVersion, ItemType type, Int32 idCommunity)
        {
            Boolean result = false;

            try{
                DownloadStatistics stat = new DownloadStatistics();
                stat.CreatedIPaddress      = UC.IpAddress;
                stat.CreatedOn             = DateTime.Now;
                stat.CreatedProxyIPaddress = UC.ProxyIpAddress;
                stat.IdCommunity           = idCommunity;
                stat.IdItem                = idItem;
                stat.IdPerson              = idPerson;
                stat.IdVersion             = idVersion;
                stat.ItemType              = type;
                stat.UniqueIdItem          = uniqueIdItem;
                stat.UniqueIdVersion       = uniqueIdVersion;
                stat.RepositoryIdCommunity = rIdentifier.IdCommunity;
                stat.RepositoryIdPerson    = rIdentifier.IdPerson;
                stat.RepositoryType        = rIdentifier.Type;
                Manager.SaveOrUpdate(stat);
                result = true;
                Boolean isIntransaction = Manager.IsInTransaction();
                if (!isIntransaction)
                {
                    Manager.BeginTransaction();
                }
                liteRepositoryItem item = Manager.Get <liteRepositoryItem>(idItem);
                if (item != null)
                {
                    item.Downloaded++;
                    Manager.SaveOrUpdate(item);
                    liteRepositoryItemVersion version = Manager.Get <liteRepositoryItemVersion>(idVersion);
                    if (version != null)
                    {
                        version.Downloaded++;
                        Manager.SaveOrUpdate(version);
                    }
                }
                if (!isIntransaction)
                {
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
            }
            return(result);
        }
Esempio n. 8
0
        private List <dtoModuleActionControl> AnalyzeActions(Boolean getOnlyActions, dtoObjectRenderInitializer dto, DisplayActionMode dAction, StandardActionType actionsToDisplay)
        {
            List <dtoModuleActionControl> actions = new List <dtoModuleActionControl>();

            if (dto.Link == null || dto.Link.DestinationItem == null)
            {
                if (getOnlyActions)
                {
                    return(new List <dtoModuleActionControl>());
                }
                else
                {
                    View.DisplayEmptyAction();
                }
            }
            else
            {
                if (!getOnlyActions)
                {
                    View.IdRequiredAction = dto.Link.Action;
                    View.Display          = dAction;
                }
                liteRepositoryItem item = (dto.Link.DestinationItem.ObjectLongID == 0 ? null : Service.ItemGet(dto.Link.DestinationItem.ObjectLongID));
                View.ItemType = (item == null ? ItemType.File : item.Type);
                liteRepositoryItemVersion version = null;
                if (dto.Link.DestinationItem.ObjectIdVersion > 0)
                {
                    version = Service.VersionGet(dto.Link.DestinationItem.ObjectIdVersion);
                }
                if (!getOnlyActions && item == null)
                {
                    View.DisplayRemovedObject();
                }
                else if (item != null)
                {
                    liteRepositorySettings         settings = Service.SettingsGetByRepositoryIdentifier(item.Repository);
                    dtoDisplayObjectRepositoryItem obj      = Create(dto.Link, item, version);
                    View.ItemType = obj.Type;
                    if (dto.PlaceHolders.Where(p => !String.IsNullOrEmpty(p.Text)).Any() && (ValidateActionMode(dAction, DisplayActionMode.defaultAction) || ValidateActionMode(dAction, DisplayActionMode.text)))
                    {
                        View.DisplayPlaceHolders(dto.PlaceHolders.Where(p => !String.IsNullOrEmpty(p.Text)).ToList());
                    }
                    actions = AnalyzeModuleLinkItem(settings, obj, getOnlyActions, dto, dAction, actionsToDisplay);
                }
            }
            return(actions);
        }
        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);
        }
Esempio n. 10
0
        public void InitViewForRedirect(long idItem, Guid uniqueId, long idVersion, Guid uniqueIdVersion, ItemType type, long idLink, String language, Boolean saveCompleteness, Boolean isOnModal, Boolean refreshContainer, Boolean saveStatistics)
        {
            liteRepositoryItem        item    = Service.ItemGet(idItem);
            liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);

            if (item == null)
            {
                View.DisplayUnknownItem();
            }
            else if (version == null)
            {
                View.DisplayPlayUnavailable(item.DisplayName, item.Extension, type, (idVersion > 0), ItemAvailability.notavailable, item.Status);
            }
            else
            {
                View.RedirectTo(RootObject.FullPlay(idItem, version.UniqueIdItem, version.Id, version.UniqueIdVersion, version.Type, idLink, language, !saveStatistics, refreshContainer, isOnModal, saveCompleteness, View.PreloadSetBackUrl, View.PreloadBackUrl));
            }
        }
 public void InitView(long idItem, long idVersion, long idLink)
 {
     if (SessionTimeout())
     {
         View.StopTimer();
     }
     else
     {
         liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
         if (version != null)
         {
             View.InitializeContext(version.IdItem, version.Id, idLink, version.UniqueIdItem, version.UniqueIdVersion);
         }
         else
         {
             View.StopTimer();
         }
     }
 }
Esempio n. 12
0
        private String GetDescriptionByLink(long idAction, long idItem, long idVersion)
        {
            liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);

            if (version == null)
            {
                return("");
            }
            else
            {
                if (version.Type != ItemType.Folder)
                {
                    return(View.GetDisplayItemDescription(version.DisplayName, version.Extension, version.DownloadFullName, version.Type, version.Size, FolderSizeItem.FormatBytes(version.Size)));
                }
                else
                {
                    return("");
                }
            }
        }
        public void SetDefaultDocument(long idItem, long idVersion, long idDocument)
        {
            if (!SessionTimeout())
            {
                ModuleRepository.ActionType uAction = ModuleRepository.ActionType.MultimedaSettingsUnableToSetDefaultDocument;
                Int32 idCommunity = View.RepositoryIdCommunity;
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version == null)
                {
                    View.DisplayUnknownItem();
                    View.AllowSave = false;
                }
                else
                {
                    dtoMultimediaFileObject obj = Service.MultimediaGetItem(idDocument);
                    if (obj == null)
                    {
                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsDocumentNotFound);
                    }
                    else
                    {
                        MultimediaFileObject file = Service.MultimediaSetDefaultItem(idItem, idVersion, idDocument);
                        if (file == null || !file.IsDefaultDocument)
                        {
                            uAction = ModuleRepository.ActionType.MultimedaSettingsUnableToSetDefaultDocument;
                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsUnableToSave, version.Availability, obj.Fullname);
                        }
                        else
                        {
                            List <dtoMultimediaFileObject> items = Service.MultimediaGetItems(idItem, idVersion);
                            View.AllowSave = (items != null);
                            View.LoadItems(version.UniqueIdVersion.ToString(), version.DisplayName, items, (items == null ? null : items.Where(i => i.IsDefaultDocument).FirstOrDefault()));

                            uAction = ModuleRepository.ActionType.MultimedaSettingsSetDefaultDocument;
                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsSaved, version.Availability, obj.Fullname);
                        }
                    }
                }
                View.SendUserAction(idCommunity, Service.GetIdModule(), uAction);
            }
        }
Esempio n. 14
0
        private void LoadPlayer(Int32 idUser, String playSessionId, Guid workingSessionId, liteRepositoryItem item, liteRepositoryItemVersion version, liteFileTransfer fileTransfer, liteModuleLink link, String language, Boolean saveCompleteness, Boolean isOnModal, Boolean refreshContainer, Boolean saveStatistics)
        {
            List <litePlayerSettings> players = Service.PlayerGetSettings();

            if (players == null || (version != null && !players.Any(p => p.Id == version.IdPlayer && !String.IsNullOrEmpty(p.PlayUrl) && !String.IsNullOrEmpty(p.PlayerRenderUrl) && !String.IsNullOrEmpty(p.ModalPlayerRenderUrl))))
            {
                View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerErrors.PlayerUnavailable);
            }
            else
            {
                String             playUrl       = "";
                String             ajaxActionUrl = "";
                litePlayerSettings player        = players.FirstOrDefault(p => p.Id == version.IdPlayer);
                Int32 idCommunity = View.ItemIdCommunity;
                Int32 idAction    = (link == null) ? (int)ModuleRepository.ActionType.PlayFile : link.Action;
                if (saveStatistics)
                {
                    Service.StatisticsAddPlay(idUser, item.Repository, version, idCommunity, (long)ModuleRepository.ActionType.PlayFile, playSessionId);
                }

                ajaxActionUrl = RootObject.AjaxAction(idCommunity, item.Id, version.UniqueIdItem, version.Id, version.UniqueIdVersion, version.Type, (link == null ? 0 : link.Id), idAction, workingSessionId, playSessionId, isOnModal);
                switch (version.Type)
                {
                case ItemType.Multimedia:
                    if (saveCompleteness && link != null)
                    {
                        View.SaveLinkEvaluation(idUser, link.Id);
                    }



                    playUrl  = player.PlayUrl.Replace("#" + PlayerPlaceHolders.defaultDocumentPath + "#", System.Web.HttpUtility.HtmlEncode(fileTransfer.DefaultDocumentPath.Replace("\\", "/")));
                    playUrl += (!playUrl.Contains("?")) ? "?" : "&";

                    playUrl += QueryKeyNames.wSessionId.ToString() + "=" + playSessionId;
                    playUrl += "&" + QueryKeyNames.idUser.ToString() + "=" + idUser.ToString();
                    if (link != null)
                    {
                        playUrl += "&" + QueryKeyNames.idLink.ToString() + "=" + link.Id.ToString();
                    }
                    playUrl += "&" + QueryKeyNames.uniqueIdVersion.ToString() + "=" + version.UniqueIdVersion.ToString();
                    if (isOnModal)
                    {
                        View.DisplayClosingToolBar();
                    }
                    break;
                    //case ItemType.ScormPackage:
                    //    Service.ScormAddPendingEvaluation(item, version,UserContext.CurrentUserID, (link==null ? 0 : link.Id));
                    //    if (saveStatistics)
                    //    {
                    //        using (NHibernate.ISession session = View.GetScormSession(player.MappingPath))
                    //        {
                    //            lm.Comol.Modules.ScormStat.Business.ScormService service = new Modules.ScormStat.Business.ScormService(AppContext, session);
                    //            DateTime referenceTime = DateTime.Now;

                    //            lm.Comol.Core.FileRepository.Domain.dtoPackageEvaluation dto = service.EvaluatePackage_NEW(idUser, playSessionId, item.Id, item.UniqueId, version.Id, version.UniqueIdVersion, out referenceTime);

                    //            if (dto != null)
                    //            {
                    //                dto.IdLink = (link == null) ? 0 : link.Id;
                    //                lm.Comol.Core.FileRepository.Domain.ScormPackageUserEvaluation saved = Service.ScormSaveEvaluation(dto, idUser, referenceTime, false, true);
                    //                if (saveCompleteness && saved != null && link != null)
                    //                {
                    //                    if (saved.ModuleCode == View.EduPathModuleCode && link.Id > 0)
                    //                        View.SaveLinkEvaluation(idUser, link.Id, saved);
                    //                }
                    //            }
                    //        }
                    //    }

                    //    playUrl = player.PlayUrl;
                    //    playUrl = playUrl.Replace("#" + PlayerPlaceHolders.idUser.ToString() + "#", idUser.ToString());
                    //    playUrl = playUrl.Replace("#" + PlayerPlaceHolders.courseId.ToString() + "#", version.UniqueIdVersion.ToString().Replace(" ", "%20").Replace("\\", "%2F").Replace("/", "%2F"));
                    //    playUrl = playUrl.Replace("#" + PlayerPlaceHolders.workingSessionId.ToString() + "#", playSessionId);
                    //    playUrl = playUrl.Replace("#" + PlayerPlaceHolders.dbIdentifier.ToString() + "#", player.DBidentifier);

                    //    if (!saveStatistics && !String.IsNullOrEmpty(player.NoSaveStatParameter))
                    //        playUrl += (playUrl.Contains("?") ? "&" : "?") + player.NoSaveStatParameter;
                    //    playUrl +=RootObject.PlayBaseParameters(!saveStatistics, refreshContainer, isOnModal, saveCompleteness);
                    //    playUrl += RootObject.UrlItemParameters(false, version.IdItem, version.Id, (link != null ? link.Id : 0));
                    //    playUrl += RootObject.UrlGuidParameters(version.UniqueIdItem, version.UniqueIdVersion);

                    //    break;
                }
                View.InitializePlayer((isOnModal ? player.ModalPlayerRenderUrl : player.PlayerRenderUrl), playUrl, ajaxActionUrl, item.DisplayName, item.Type);
            }
        }
Esempio n. 15
0
        private dtoDisplayObjectRepositoryItem Create(liteModuleLink link, liteRepositoryItem item, liteRepositoryItemVersion version)
        {
            dtoDisplayObjectRepositoryItem dto = new dtoDisplayObjectRepositoryItem(link, item, version);
            String description = View.ExtraInfoDescription;

            if (View.DisplayExtraInfo && !String.IsNullOrWhiteSpace(description))
            {
                dto.SetDescription(description);
            }
            if (View.DisplayLinkedBy || View.DisplayUploader)
            {
                Service.UpdateUserInfo(link, dto, View.GetUnknownUserName());
            }
            return(dto);
        }
        public ScormPackageSettings ScormPackageSettingsSave(long idItem, long idVersion, long idSettings, EvaluationType evaluation, List <dtoScormItemEvaluationSettings> items)
        {
            ScormPackageSettings aSettings = null;

            try
            {
                litePerson           person   = GetValidPerson(UC.CurrentUserID);
                ScormPackageSettings settings = Manager.Get <ScormPackageSettings>(idSettings);
                if (person != null && settings != null)
                {
                    liteRepositoryItemVersion version = Manager.Get <liteRepositoryItemVersion>(idVersion);
                    if (version != null && version.IdItem == idItem)
                    {
                        Manager.BeginTransaction();

                        aSettings = settings.CreateForUpdateSettings(
                            person.Id,
                            UC.IpAddress,
                            UC.ProxyIpAddress,
                            version,
                            evaluation,
                            items.Where(i => i.ForPackage).FirstOrDefault());



                        Manager.SaveOrUpdate(aSettings);
                        if (settings.Organizations.Any())
                        {
                            foreach (ScormOrganizationSettings o in settings.Organizations)
                            {
                                ScormOrganizationSettings organization = o.Copy(aSettings.Id);
                                Manager.SaveOrUpdate(organization);
                                foreach (ScormItemSettings source in o.Items.Where(i => i.IdParentItem == 0))
                                {
                                    ScormItemSettings nItem = source.CreateForUpdateSettings(aSettings.Id, organization.Id, 0, evaluation, items.Where(i => i.Id == source.Id).FirstOrDefault());
                                    Manager.SaveOrUpdate(nItem);
                                    organization.Items.Add(nItem);
                                    ItemSettingsClone(organization, nItem, source.Id, o.Items.Where(i => i.IdParentItem > 0), evaluation, items);
                                }
                                aSettings.Organizations.Add(organization);
                            }
                        }
                        List <ScormPackageSettings> pSettings = (from s in Manager.GetIQ <ScormPackageSettings>() where s.IdVersion == idVersion && s.IdItem == idItem && s.IsCurrent && s.Id != aSettings.Id select s).ToList();
                        if (pSettings.Any())
                        {
                            DateTime date = DateTime.Now;
                            foreach (ScormPackageSettings s in pSettings)
                            {
                                s.IsCurrent  = false;
                                s.ValidUntil = DateTime.Now;
                                s.UpdateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                            }
                            Manager.SaveOrUpdateList(pSettings);
                        }
                    }
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
            }
            return(aSettings);
        }
Esempio n. 17
0
        public static dtoScormPackageSettings CreateFrom(ScormPackageSettings settings, liteRepositoryItemVersion version)
        {
            dtoScormPackageSettings item = new dtoScormPackageSettings();

            item.Id                   = settings.Id;
            item.CheckScore           = settings.CheckScore;
            item.CheckScormCompletion = settings.CheckScormCompletion;
            item.CheckTime            = settings.CheckTime;
            item.EvaluationType       = settings.EvaluationType;
            item.IsCurrent            = settings.IsCurrent;
            item.MinScore             = settings.MinScore;
            item.MinTime              = settings.MinTime;
            item.Name                 = version.DisplayName;
            item.UseScoreScaled       = settings.UseScoreScaled;
            item.ValidUntil           = settings.ValidUntil;

            item.Children.AddRange(settings.Organizations.Select(o => dtoScormOrganizationSettings.CreateFrom(o, item)).ToList());
            if (item.Children.Any())
            {
                item.DataChildren = String.Join(",", item.Children.Select(i => i.DataId).ToList().Union(item.Children.Select(i => i.DataChildren).ToList()));
            }
            return(item);
        }
        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.MultimedaSettingsTryToLoad;
                View.DisplayUnknownItem();
            }
            else
            {
                Int32 idCurrentUser               = UserContext.CurrentUserID;
                liteRepositoryItem        item    = Service.ItemGet(idItem);
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version == null)
                {
                    uAction = ModuleRepository.ActionType.MultimedaSettingsTryToLoad;
                    View.DisplayUnknownItem();
                }
                else if (version.Type != ItemType.Multimedia)
                {
                    idCommunity = version.IdCommunity;
                    View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsInvalidType);
                    uAction = ModuleRepository.ActionType.MultimedaSettingsInvalidType;
                }
                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.multimediaSettingsNoPermission);
                            }
                            else
                            {
                                permissions = View.GetLinkPermissions(link, idCurrentUser);
                                idCommunity = link.SourceItem.CommunityID;
                            }
                        }
                        if (permissions != null)
                        {
                            if (permissions.EditSettings)
                            {
                                if (version.Availability == ItemAvailability.waitingsettings)
                                {
                                    View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsNoDefaultDocument);
                                }
                                List <dtoMultimediaFileObject> items = Service.MultimediaGetItems(idItem, idVersion);
                                View.AllowSave = (items != null && items.Any());
                                View.LoadItems(item.UniqueIdVersion.ToString(), item.DisplayName, items, (items == null ? null : items.Where(i => i.IsDefaultDocument).FirstOrDefault()));
                            }
                            else
                            {
                                uAction = ModuleRepository.ActionType.MultimedaSettingsNoPermissions;
                                View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsNoPermission);
                            }
                        }
                        else
                        {
                            uAction = ModuleRepository.ActionType.MultimedaSettingsStatusError;
                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsInvalidStatus, version.Availability);
                        }
                    }
                    else
                    {
                        uAction = ModuleRepository.ActionType.MultimedaSettingsStatusError;
                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.UserMessageType.multimediaSettingsInvalidStatus, 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);
        }
Esempio n. 19
0
        public virtual ScormPackageSettings CreateForUpdateSettings(Int32 idPerson, String ipAddress, String proxyIpAddress, liteRepositoryItemVersion version, EvaluationType evaluation, dtoScormItemEvaluationSettings dto)
        {
            ScormPackageSettings item = new ScormPackageSettings()
            {
                IdItem = version.IdItem, IdVersion = version.Id, UniqueIdItem = version.UniqueIdItem, UniqueIdVersion = version.UniqueIdVersion, Repository = version.Repository
            };

            item.CreateMetaInfo(idPerson, ipAddress, proxyIpAddress);
            item.ActivityCount        = ActivityCount;
            item.EvaluationType       = evaluation;
            item.CheckScore           = false;
            item.CheckScormCompletion = false;
            item.CheckTime            = false;
            item.MinScore             = 0;
            item.MinTime        = 0;
            item.UseScoreScaled = false;

            switch (evaluation)
            {
            case ScormSettings.EvaluationType.CustomForPackage:
                if (dto != null)
                {
                    item.CheckScore           = dto.CheckScore;
                    item.CheckScormCompletion = dto.CheckScormCompletion;
                    item.CheckTime            = dto.CheckTime;
                    if (dto.CheckTime)
                    {
                        item.MinTime = dto.MinTime;
                    }
                    if (dto.CheckScore)
                    {
                        item.MinScore       = dto.MinScore;
                        item.UseScoreScaled = dto.UseScoreScaled;
                    }
                }
                break;

            case ScormSettings.EvaluationType.FromScormEvaluation:
                item.CheckScormCompletion = true;
                break;
            }
            item.IsValid     = IsValid;
            item.PackageGuid = version.UniqueIdVersion.ToString();
            item.PackagePath = PackagePath;
            item.ValidUntil  = null;
            item.IsCurrent   = true;
            return(item);
        }
        public ScormPackageWithVersionToEvaluate ScormAddPendingEvaluation(liteRepositoryItem item, liteRepositoryItemVersion version, Int32 idPerson, long idLink = 0)
        {
            ScormPackageWithVersionToEvaluate pItem = null;

            try
            {
                pItem = (from ScormPackageWithVersionToEvaluate i in Manager.GetIQ <ScormPackageWithVersionToEvaluate>()
                         where i.IdPerson == idPerson && i.IdItem == item.Id && i.IdVersion == version.Id && i.IdLink == idLink
                         select i).Skip(0).Take(1).ToList().FirstOrDefault();
                Manager.BeginTransaction();
                if (pItem == null)
                {
                    pItem                 = new ScormPackageWithVersionToEvaluate();
                    pItem.IdItem          = item.Id;
                    pItem.IdLink          = idLink;
                    pItem.IdPerson        = idPerson;
                    pItem.IdVersion       = version.Id;
                    pItem.UniqueIdItem    = item.UniqueId;
                    pItem.UniqueIdVersion = version.UniqueIdVersion;
                }
                pItem.IsPlaying  = true;
                pItem.Deleted    = BaseStatusDeleted.None;
                pItem.ToUpdate   = true;
                pItem.ModifiedOn = DateTime.Now;
                Manager.SaveOrUpdate(pItem);
                Manager.Commit();
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                pItem = null;
            }
            return(pItem);
        }
        public List <dtoRepositoryItemToSelect> ItemsToSelectGet(List <dtoRepositoryItemToSelect> selectedItems, Boolean updatePath, Int32 idCurrentUser, String rootFolder, ModuleRepository module, RepositoryIdentifier identifier, Boolean adminMode, List <ItemType> typesToLoad, List <StatisticType> displayStatistics)
        {
            List <dtoRepositoryItemToSelect> results     = new List <dtoRepositoryItemToSelect>();
            Dictionary <long, String>        foldersPath = (updatePath ? FoldersFullPathGet(identifier, rootFolder) : null);
            var query = GetQuery(identifier);
            List <liteRepositoryItem> fItems = null;
            List <long> idSelectedItems      = selectedItems.Select(i => i.Id).ToList();

            if (idSelectedItems.Count <= maxItemsForQuery)
            {
                fItems = query.Where(i => idSelectedItems.Contains(i.Id)).ToList().Where(i => typesToLoad.Contains(i.Type)).ToList();
            }
            else
            {
                fItems = query.ToList().Where(i => idSelectedItems.Contains(i.Id) && typesToLoad.Contains(i.Type)).ToList();
            }

            List <liteRepositoryItemVersion> versions = (selectedItems.Any(s => !s.IgnoreVersion) ? VersionsGet(identifier, selectedItems.Where(i => !i.IgnoreVersion && i.IdVersion > 0).Select(i => i.IdVersion).ToList()) : null);

            foreach (liteRepositoryItem item in fItems)
            {
                dtoRepositoryItemToSelect s = selectedItems.Where(i => i.Id == item.Id).FirstOrDefault();
                if (s != null)
                {
                    if (updatePath)
                    {
                        s.Path        = (foldersPath.ContainsKey(s.IdFolder) ? foldersPath[s.IdFolder] : "");
                        s.Name        = item.Name;
                        s.DisplayName = item.DisplayName;
                        s.Extension   = item.Extension;
                        s.Url         = item.Url;
                    }
                    if (s.IgnoreVersion)
                    {
                        s.Size            = item.Size;
                        s.IdVersion       = item.IdVersion;
                        s.UniqueIdVersion = item.UniqueIdVersion;
                    }
                    else
                    {
                        liteRepositoryItemVersion version = (versions == null ? null : versions.Where(v => v.Id == item.IdVersion).FirstOrDefault());
                        if (version != null)
                        {
                            s.Size            = version.Size;
                            s.IdVersion       = version.Id;
                            s.UniqueIdVersion = version.UniqueIdVersion;
                        }
                    }
                    results.Add(s);
                }
            }
            if (displayStatistics.Any())
            {
                List <StatisticType> statistics = new List <StatisticType>();
                if (displayStatistics.Contains(StatisticType.downloads) && (adminMode || module.Administration || module.EditOthersFiles))
                {
                    statistics.Add(StatisticType.mydownloads);
                }
                if (displayStatistics.Contains(StatisticType.plays) && (adminMode || module.Administration || module.EditOthersFiles))
                {
                    statistics.Add(StatisticType.plays);
                }
                if (statistics.Any())
                {
                    if (statistics.Contains(StatisticType.plays))
                    {
                        Dictionary <long, long> plays = PlayStatisticsGetFull(results.Where(i => i.Type == ItemType.Multimedia || i.Type == ItemType.ScormPackage || i.Type == ItemType.VideoStreaming).Select(i => i.Id).ToList());
                        if (plays != null)
                        {
                            List <long> idItems = plays.Keys.ToList();
                            foreach (dtoRepositoryItemToSelect item in results.Where(r => idItems.Contains(r.Id)))
                            {
                                item.Plays = (plays != null && plays.ContainsKey(item.Id) ? plays[item.Id] : 0);
                            }
                        }
                    }
                }
            }
            return(selectedItems);
        }
        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);
        }
Esempio n. 23
0
        public void InitView(String playerSessionId, long idItem, long idVersion, ItemType type, long idLink, Boolean saveCompleteness, Boolean isOnModal, Boolean refreshContainer, Boolean saveStatistics)
        {
            Guid  playUniqueSessionId = Guid.NewGuid();
            Guid  workingSessionId    = UserContext.WorkSessionID;
            Int32 idUser = UserContext.CurrentUserID;

            View.IdItem    = idItem;
            View.IdLink    = idLink;
            View.IdVersion = idVersion;
            if (SessionTimeout())
            {
                idUser = Service.ScormGetPlayIdUser(playerSessionId, idItem, idVersion);
            }

            liteRepositoryItem item = Service.ItemGet(idItem);

            if (SessionTimeout() && idUser == 0)
            {
                if (item == null)
                {
                    View.DisplaySessionExpired();
                }
                else
                {
                    View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerClosedMessage.SessionExpired);
                }
            }
            else
            {
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version != null && version.Id != idVersion)
                {
                    View.IdVersion = version.Id;
                }
                if (item == null || version == null)
                {
                    View.DisplayUnknownItem(type);
                }
                else
                {
                    type          = item.Type;
                    View.ItemType = type;
                    switch (type)
                    {
                    case ItemType.File:
                    case ItemType.Folder:
                    case ItemType.Link:
                    case ItemType.SharedDocument:
                    case ItemType.VideoStreaming:
                        View.DisplayMessage(item.DisplayName, item.Extension, type, Domain.PlayerErrors.InvalidType);
                        break;

                    case ItemType.ScormPackage:
                    case ItemType.Multimedia:
                        List <litePlayerSettings> players = Service.PlayerGetSettings();
                        if (players == null || (version != null && !players.Any(p => p.Id == version.IdPlayer && !String.IsNullOrEmpty(p.PlayUrl) && !String.IsNullOrEmpty(p.PlayerRenderUrl) && !String.IsNullOrEmpty(p.ModalPlayerRenderUrl))))
                        {
                            View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerErrors.PlayerUnavailable);
                        }
                        else
                        {
                            litePlayerSettings player = players.FirstOrDefault(p => p.Id == version.IdPlayer);
                            using (NHibernate.ISession session = View.GetScormSession(player.MappingPath)){
                                lm.Comol.Modules.ScormStat.Business.ScormService service = new Modules.ScormStat.Business.ScormService(AppContext, session);
                                DateTime referenceTime = DateTime.Now;
                                lm.Comol.Core.FileRepository.Domain.dtoPackageEvaluation dto = service.EvaluatePackage_NEW(idUser, playerSessionId, item.Id, item.UniqueId, version.Id, version.UniqueIdVersion, out referenceTime);
                                if (dto != null && dto.IdItem > 0)
                                {
                                    dto.IdLink = idLink;
                                    lm.Comol.Core.FileRepository.Domain.ScormPackageUserEvaluation saved = Service.ScormSaveEvaluation(dto, idUser, referenceTime, true, true);
                                    if (saved != null)
                                    {
                                        if (saveCompleteness && saved != null && idLink > 0 && saved.ModuleCode == View.EduPathModuleCode)
                                        {
                                            View.SaveLinkEvaluation(saved);
                                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.PlayerClosedMessage.EvaluationSaved);
                                        }
                                        else
                                        {
                                            View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.PlayerClosedMessage.Successful);
                                        }
                                    }
                                    else
                                    {
                                        View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.PlayerClosedMessage.EvaluationNotSaved);
                                    }
                                }
                                else
                                {
                                    View.DisplayMessage(version.DisplayName, version.Extension, version.Type, Domain.PlayerClosedMessage.EvaluationNotSaved);
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
Esempio n. 24
0
        public void InitView(String plattformId, long idItem, Guid uniqueId, long idVersion, Guid uniqueIdVersion, ItemType type, long idLink, String language, Boolean saveCompleteness, Boolean isOnModal, Boolean refreshContainer, Boolean saveStatistics)
        {
            Guid   playUniqueSessionId = Guid.NewGuid();
            Guid   workingSessionId    = UserContext.WorkSessionID;
            String playSessionId       = plattformId + "_" + playUniqueSessionId.ToString();
            Int32  idUser = UserContext.CurrentUserID;

            View.IdItem              = idItem;
            View.IdLink              = idLink;
            View.IdVersion           = idVersion;
            View.ItemType            = type;
            View.SaveStatistics      = saveStatistics;
            View.PlayUniqueSessionId = playUniqueSessionId;
            View.WorkingSessionId    = workingSessionId;
            View.PlaySessionId       = playSessionId;
            if (SessionTimeout())
            {
                if (isOnModal)
                {
                    View.DisplaySessionExpired();
                }
                else
                {
                    View.DisplaySessionTimeout();
                }
            }
            else if (uniqueId == Guid.Empty || uniqueIdVersion == Guid.Empty)
            {
                InitViewForRedirect(idItem, uniqueId, idVersion, uniqueIdVersion, type, idLink, language, saveCompleteness, isOnModal, refreshContainer, saveStatistics);
            }
            else
            {
                if (String.IsNullOrWhiteSpace(language))
                {
                    language = "";
                }
                liteRepositoryItem        item    = Service.ItemGet(idItem);
                liteRepositoryItemVersion version = Service.ItemGetVersion(idItem, idVersion);
                if (version != null && version.Id != idVersion)
                {
                    View.IdVersion = version.Id;
                }
                if (item == null)
                {
                    View.DisplayUnknownItem();
                }
                else
                {
                    liteFileTransfer fileTransfer = null;
                    type          = item.Type;
                    View.ItemType = type;
                    switch (type)
                    {
                    case ItemType.File:
                    case ItemType.Folder:
                    case ItemType.Link:
                    case ItemType.SharedDocument:
                    case ItemType.VideoStreaming:
                        View.DisplayMessage(item.DisplayName, item.Extension, type, Domain.PlayerErrors.InvalidType);
                        break;

                    case ItemType.ScormPackage:
                    case ItemType.Multimedia:
                        liteModuleLink link           = null;
                        Boolean        hasPermissions = false;
                        View.ItemIdCommunity = item.IdCommunity;
                        fileTransfer         = Service.FileTransferGet(idItem, version.Id);
                        if (idLink == 0)
                        {
                            hasPermissions = Service.HasPermissionToSeeItem(idUser, item, version, ModuleRepository.ActionType.PlayFile);
                        }
                        else
                        {
                            link = CurrentManager.Get <liteModuleLink>(idLink);
                            if (link == null)
                            {
                                View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerErrors.NoPermissionToPlay);
                                return;
                            }
                            else
                            {
                                if (link.DestinationItem.ObjectIdVersion > 0 && version != null && version.Id != link.DestinationItem.ObjectIdVersion)
                                {
                                    version = Service.ItemGetVersion(idItem, link.DestinationItem.ObjectIdVersion);
                                }
                                ModuleObject obj = ModuleObject.CloneObject(link.DestinationItem);
                                obj.ObjectIdVersion  = (version != null ? version.Id : obj.ObjectIdVersion);
                                saveCompleteness     = link.AutoEvaluable && saveCompleteness;
                                hasPermissions       = View.HasPermissionForLink(UserContext.CurrentUserID, idLink, obj, item.Type, link.SourceItem.ServiceID, link.SourceItem.ServiceCode);
                                View.ItemIdCommunity = link.SourceItem.CommunityID;
                            }
                        }
                        Boolean playerLoaded = false;
                        if (version == null)
                        {
                            View.DisplayPlayUnavailable(item.DisplayName, item.Extension, type, (idVersion > 0), ItemAvailability.notavailable, item.Status);
                        }
                        else if (type == ItemType.Multimedia && fileTransfer != null && String.IsNullOrEmpty(fileTransfer.DefaultDocumentPath))
                        {
                            View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerErrors.InvalidSettings);
                        }
                        else if ((type == ItemType.Multimedia || type == ItemType.ScormPackage) && fileTransfer == null)
                        {
                            View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerErrors.InvalidTransfer);
                        }
                        else if (version.Availability == ItemAvailability.available)
                        {
                            playerLoaded = hasPermissions;
                            if (hasPermissions)
                            {
                                LoadPlayer(idUser, playSessionId, workingSessionId, item, version, fileTransfer, link, language, saveCompleteness, isOnModal, refreshContainer, saveStatistics);
                            }
                            else
                            {
                                View.DisplayMessage(item.DisplayName, item.Extension, item.Type, Domain.PlayerErrors.NoPermissionToPlay);
                            }
                        }
                        else
                        {
                            View.DisplayPlayUnavailable(item.DisplayName, item.Extension, type, (idVersion > 0 && item.HasVersions), item.Availability, item.Status);
                        }

                        if (!playerLoaded && !View.PreloadIsOnModal)
                        {
                            Boolean setBackUrl = View.PreloadSetBackUrl;
                            String  backUrl    = View.PreloadBackUrl;
                            View.BackUrl = (setBackUrl ? backUrl : "");
                            View.SetPageBackUrl(backUrl);
                        }
                        break;
                    }
                }
            }
        }
 public Boolean StatisticsAddPlay(Int32 idPerson, RepositoryIdentifier rIdentifier, liteRepositoryItemVersion version, Int32 idCommunity, long idAction, String playSessionId)
 {
     return(StatisticsAddPlay(idPerson, rIdentifier, version.IdItem, version.UniqueIdItem, version.Id, version.UniqueIdVersion, version.Type, idCommunity, idAction, playSessionId));
 }