Ejemplo n.º 1
0
 public dtoValueField(String value, String userValue = "")
 {
     FreeText = userValue;
     Text     = value;
     IdLink   = 0;
     Link     = null;
 }
        public void UpdateUserInfo(liteModuleLink link, dtoDisplayObjectRepositoryItem dto, String unknownUser)
        {
            List <litePerson> users = Manager.GetLitePersons(new List <Int32>()
            {
                dto.IdCreatedBy, link.IdCreatedBy
            });

            dto.Owner = users.Where(u => u.Id == dto.IdCreatedBy).Select(u => u.SurnameAndName).DefaultIfEmpty(unknownUser).FirstOrDefault();
            dto.SetLinkedInfo(link.IdCreatedBy, link.CreatedOn, users.Where(u => u.Id == link.IdCreatedBy).Select(u => u.SurnameAndName).DefaultIfEmpty(unknownUser).FirstOrDefault());
        }
        public ScormPackageUserEvaluation ScormSaveEvaluation(dtoPackageEvaluation dto, Int32 idPerson, DateTime referenceTime, Boolean isCalculated = false, Boolean isCreatedByPlayer = false)
        {
            liteModuleLink link = null;

            if (dto.IdLink > 0)
            {
                link = Manager.Get <liteModuleLink>(dto.IdLink);
                if (link != null && link.Id == 0)
                {
                    link = null;
                }
            }
            return(ScormSaveEvaluation(link, dto, idPerson, referenceTime, isCalculated, isCreatedByPlayer));
        }
        public void SaveActionExecution(Int32 idUser, Int32 idRole, long idLink, dtoEvaluation evaluation, DateTime?referenceTime)
        {
            liteModuleLink link = Manager.Get <liteModuleLink>(idLink);

            if (link != null)
            {
                switch (link.SourceItem.ObjectTypeID)
                {
                case (int)ModuleEduPath.ObjectType.SubActivity:
                    SaveActionExecution(idUser, idRole, GetPathId_BySubActivityId(link.SourceItem.ObjectLongID), link.SourceItem.ObjectLongID, evaluation, referenceTime);
                    break;
                }
            }
        }
        public long AllowedActionPermission(long idLink)
        {
            long permissions = 0;

            using (ISession session = NHSessionHelper.GetComolSession())
            {
                DataContext    dc   = new DataContext(session);
                liteModuleLink link = dc.GetById <liteModuleLink>(idLink);
                if (link != null)
                {
                    permissions = link.Permission;
                }
            }
            return(permissions);
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
        public static ScormPackageUserEvaluation CreateBy(liteModuleLink link, dtoPackageEvaluation dto, Int32 idPerson, DateTime referenceTime, Boolean isCalculated, Boolean isCreatedByPlayer)
        {
            ScormPackageUserEvaluation item = new ScormPackageUserEvaluation();

            item.IdItem            = dto.IdItem;
            item.UniqueIdItem      = dto.UniqueIdItem;
            item.IdVersion         = dto.IdVersion;
            item.UniqueIdVersion   = dto.UniqueIdVersion;
            item.IdLink            = dto.IdLink;
            item.IdSettings        = dto.IdSettings;
            item.PlaySession       = dto.PlaySession;
            item.AlreadyCompleted  = dto.AlreadyCompleted;
            item.Status            = dto.Status;
            item.Completion        = dto.Completion;
            item.IsPassed          = dto.IsPassed;
            item.IsCompleted       = dto.IsCompleted;
            item.IsCreatedByModule = (link != null);
            item.IdPerson          = idPerson;
            if (link != null)
            {
                item.IdObject     = link.SourceItem.ObjectLongID;
                item.IdObjectType = link.SourceItem.ObjectTypeID;
                item.IdModule     = link.SourceItem.ServiceID;
                item.ModuleCode   = link.SourceItem.ServiceCode;
            }
            item.IsCalculated    = isCalculated;
            item.IsCreatedByPlay = isCreatedByPlayer;
            if (isCalculated)
            {
                item.CreatedOn  = referenceTime;
                item.EndPlayOn  = referenceTime;
                item.LastUpdate = referenceTime;
            }
            else
            {
                item.CreatedOn  = referenceTime;
                item.LastUpdate = referenceTime;
            }

            item.PackageSession.ActivitiesDone   = dto.ActivitiesDone;
            item.PackageSession.CompletionStatus = dto.CompletionStatus;
            item.PackageSession.LessonStatus     = dto.LessonStatus;
            item.PackageSession.SuccessStatus    = dto.SuccessStatus;
            item.PackageSession.UserScore        = dto.UserScore;
            item.PackageSession.UserTime         = dto.UserTime;
            item.PackageSession.PlayNumber       = dto.PlayNumber;
            return(item);
        }
        public long ActionPermission(ModuleObject source, ModuleObject destination, int idUser, Dictionary <String, long> moduleUserLong, Dictionary <String, String> moduleUserString)
        {
            long           permissions = 0;
            liteModuleLink link        = null;

            using (ISession session = NHSessionHelper.GetComolSession())
            {
                link = (from l in session.Linq <liteModuleLink>() where l.DestinationItem.Equals(destination) && l.SourceItem.Equals(source) select l).FirstOrDefault <liteModuleLink>();
            }

            if (link != null && AllowActionExecutionForExternal(link.Id, link.Action, destination, idUser, moduleUserLong, moduleUserString))
            {
                permissions = link.Permission;
            }
            return(permissions);
        }
 public dtoDisplayObjectRepositoryItem(liteModuleLink link, liteRepositoryItem item, liteRepositoryItemVersion version)
 {
     LinkedBy    = "";
     IdLinkedBy  = 0;
     Permissions = new ItemPermission();
     Link        = link;
     Item        = item;
     Version     = version;
     if (version != null)
     {
         Description     = version.Description;
         Name            = version.Name;
         DisplayName     = version.DisplayName;
         IdCreatedBy     = version.IdCreatedBy;
         CreatedOn       = version.CreatedOn;
         IdVersion       = version.Id;
         Type            = version.Type;
         IdItem          = item.Id;
         DisplayMode     = version.DisplayMode;
         Url             = version.Url;
         Extension       = version.Extension;
         AutoThumbnail   = version.AutoThumbnail;
         IdVersion       = version.Id;
         UniqueId        = item.UniqueId;
         UniqueIdVersion = version.UniqueIdVersion;
         IsDownlodable   = item.IsDownloadable;
     }
     else if (item != null)
     {
         Description     = item.Description;
         Name            = item.Name;
         DisplayName     = item.DisplayName;
         IdCreatedBy     = item.IdCreatedBy;
         CreatedOn       = item.CreatedOn;
         IdVersion       = 0;
         UniqueIdVersion = Guid.Empty;
         Type            = item.Type;
         IdItem          = item.Id;
         DisplayMode     = item.DisplayMode;
         Url             = item.Url;
         Extension       = item.Extension;
         AutoThumbnail   = item.AutoThumbnail;
         IsDownlodable   = item.IsDownloadable;
     }
     Availability = (Version != null ? Version.Availability : (Item != null ? Item.Availability : ItemAvailability.notavailable));
     Size         = FolderSizeItem.FormatBytes((Version != null ? Version.Size : (Item != null ? Item.Size :0)));
 }
        public void SaveActionExecution(Int32 idUser, long idLink, dtoEvaluation evaluation, DateTime?referenceTime = null)
        {
            liteModuleLink link = Manager.Get <liteModuleLink>(idLink);

            if (link != null)
            {
                switch (link.SourceItem.ObjectTypeID)
                {
                case (int)ModuleEduPath.ObjectType.SubActivity:
                    long  idPath      = GetPathId_BySubActivityId(link.SourceItem.ObjectLongID);
                    Int32 idCommunity = GetPathIdCommunity(idPath);
                    Int32 idRole      = Manager.GetActiveSubscriptionIdRole(idUser, idCommunity);
                    SaveActionExecution(idUser, idRole, idPath, link.SourceItem.ObjectLongID, evaluation, referenceTime);
                    break;
                }
            }
        }
Ejemplo n.º 11
0
        public long ModuleLinkActionPermission(long idLink, int idAction, ModuleObject destination, int idUser, Dictionary <String, long> moduleUserLong, Dictionary <String, String> moduleUserString)
        {
            long permissions = 0;

            if (AllowActionExecutionForExternal(idLink, idAction, destination, idUser, moduleUserLong, moduleUserString))
            {
                using (ISession session = NHSessionHelper.GetComolSession())
                {
                    DataContext    dc   = new DataContext(session);
                    liteModuleLink link = dc.GetById <liteModuleLink>(idLink);
                    if (link != null)
                    {
                        permissions = link.Permission;
                    }
                }
            }
            return(permissions);
        }
Ejemplo n.º 12
0
        public CoreItemPermission GetItemPermissionFromLink(long idLink)
        {
            CoreItemPermission permission = new CoreItemPermission();
            liteModuleLink     link       = Manager.Get <liteModuleLink>(idLink);

            if (link != null)
            {
                EventItemFile itemFileLink = (from f in Manager.GetIQ <EventItemFile>() where f.Link != null && f.Link.Id == idLink && f.Deleted == BaseStatusDeleted.None select f).Skip(0).Take(1).ToList().FirstOrDefault();
                if (itemFileLink != null)
                {
                    CommunityEventItem item = EventItemGet(itemFileLink.IdItemOwner);
                    if (item != null)
                    {
                        permission = GetItemPermission(item, ServicePermission(UC.CurrentUserID, itemFileLink.IdCommunity), GetCoreModuleRepository(UC.CurrentUserID, itemFileLink.IdCommunity));
                    }
                }
            }
            return(permission);
        }
Ejemplo n.º 13
0
        public long ModuleLinkPermission(long idLink, ModuleObject destination, int idUser, Dictionary <String, long> moduleUserLong, Dictionary <String, String> moduleUserString)
        {
            long           permissions = 0;
            liteModuleLink link        = null;

            using (ISession session = NHSessionHelper.GetComolSession())
            {
                DataContext dc = new DataContext(session);
                link = dc.GetById <liteModuleLink>(idLink);
                if (link != null && !link.DestinationItem.Equals(destination))
                {
                    link = null;
                }
            }

            if (link != null && AllowActionExecutionForExternal(link.Id, link.Action, destination, idUser, moduleUserLong, moduleUserString))
            {
                permissions = link.Permission;
            }
            return(permissions);
        }
        public ScormPackageUserEvaluation ScormSaveEvaluation(liteModuleLink link, dtoPackageEvaluation dto, Int32 idPerson, DateTime referenceTime, Boolean isCalculated = false, Boolean isCreatedByPlayer = false)
        {
            ScormPackageUserEvaluation evaluation = null;

            if (idPerson > 0)
            {
                try
                {
                    if (dto.Id > 0)
                    {
                        evaluation = Manager.Get <ScormPackageUserEvaluation>(dto.Id);
                    }
                    else
                    {
                        evaluation = ScormQuery(dto, idPerson, (link == null) ? 0 : link.Id).Skip(0).Take(1).ToList().FirstOrDefault();
                    }
                    if ((evaluation == null || evaluation.Id == 0) && dto.IdItem > 0 && dto.UniqueIdItem != Guid.Empty)
                    {
                        Manager.BeginTransaction();
                        evaluation = ScormPackageUserEvaluation.CreateBy(link, dto, idPerson, referenceTime, isCalculated, isCreatedByPlayer);
                        Manager.SaveOrUpdate(evaluation);
                        Manager.Commit();
                    }
                    else
                    {
                        Manager.BeginTransaction();
                        evaluation.UpdateStatisticsBy(dto, referenceTime, isCalculated);
                        Manager.Commit();
                    }
                }
                catch (Exception ex)
                {
                    Manager.RollBack();
                    evaluation = null;
                }
            }

            return(evaluation);
        }
Ejemplo n.º 15
0
 public String GetDescriptionByLink(liteModuleLink link)
 {
     return((link == null || link.DestinationItem == null) ? "" : GetDescriptionByLink(link.Action, link.DestinationItem.ObjectLongID, link.DestinationItem.ObjectIdVersion));
 }
        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);
        }
        public List <EventItemFile> AttachmentsAddFiles(CommunityEventItem eventItem, List <dtoModuleUploadedItem> items, Boolean visibleForItem)
        {
            List <EventItemFile> attachments = null;
            Boolean isInTransaction          = Manager.IsInTransaction();

            try
            {
                if (!isInTransaction)
                {
                    Manager.BeginTransaction();
                }
                litePerson person = Manager.GetLitePerson(UC.CurrentUserID);
                if (items.Any() && eventItem != null && person != null && person.TypeID != (int)UserTypeStandard.Guest && person.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    attachments = new List <EventItemFile>();
                    DateTime date = DateTime.Now;
                    foreach (dtoModuleUploadedItem item in items)
                    {
                        EventItemFile attachment = new EventItemFile();
                        attachment.CreateMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress, date);
                        attachment.IdCommunity  = eventItem.IdCommunityOwner;
                        attachment.IdEventOwner = (eventItem.EventOwner != null ? eventItem.EventOwner.Id : 0);
                        attachment.IdItemOwner  = eventItem.Id;
                        attachment.Item         = item.ItemAdded;
                        attachment.isVisible    = visibleForItem;
                        attachment.Owner        = person;
                        Manager.SaveOrUpdate(attachment);
                        liteModuleLink link = new liteModuleLink(item.Link.Description, item.Link.Permission, item.Link.Action);
                        link.CreateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                        link.DestinationItem = (ModuleObject)item.Link.ModuleObject;
                        link.AutoEvaluable   = false;
                        link.SourceItem      = ModuleObject.CreateLongObject(attachment.Id, attachment, (int)ModuleCommunityDiary.ObjectType.DiaryItemLinkedFile, attachment.IdCommunity, ModuleCommunityDiary.UniqueID, ServiceModuleID());
                        Manager.SaveOrUpdate(link);
                        attachment.Link = link;

                        if (item.ItemAdded.IsInternal)
                        {
                            if (item.ItemAdded.Module == null)
                            {
                                item.ItemAdded.Module = new lm.Comol.Core.FileRepository.Domain.ItemModuleSettings();
                            }
                            item.ItemAdded.Module.IdObject     = attachment.Id;
                            item.ItemAdded.Module.IdObjectType = (int)ModuleCommunityDiary.ObjectType.DiaryItemLinkedFile;
                            Manager.SaveOrUpdate(item.ItemAdded);
                        }

                        Manager.SaveOrUpdate(attachment);
                        attachments.Add(attachment);
                    }
                }
                if (!isInTransaction)
                {
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                if (!isInTransaction)
                {
                    Manager.RollBack();
                }
                attachments = null;
            }
            return(attachments);
        }
        public List <EventItemFile> AttachmentsLinkFiles(long idEvent, long idEventItem, List <ModuleActionLink> links, Boolean visibleForItem, Boolean?visibleForRepository)
        {
            List <EventItemFile> attachments = null;
            Boolean isInTransaction          = Manager.IsInTransaction();

            try
            {
                if (!isInTransaction)
                {
                    Manager.BeginTransaction();
                }
                CommunityEventItem item   = EventItemGet(idEventItem);
                litePerson         person = Manager.GetLitePerson(UC.CurrentUserID);
                Boolean            updateRepositoryItems = false;
                if (links.Any() && item != null && person != null && person.TypeID != (int)UserTypeStandard.Guest && person.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    DateTime date = DateTime.Now;
                    attachments = new List <EventItemFile>();
                    foreach (ModuleActionLink link in links)
                    {
                        EventItemFile attachment = QueryAttachments(a => a.Deleted == BaseStatusDeleted.None && a.IdItemOwner == idEventItem).ToList().Where(a => a.Item == (liteRepositoryItem)link.ModuleObject.ObjectOwner).Skip(0).Take(1).ToList().FirstOrDefault();
                        if (attachment == null)
                        {
                            attachment = new EventItemFile();
                            attachment.CreateMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress, date);
                            attachment.Owner        = person;
                            attachment.IdCommunity  = item.IdCommunityOwner;
                            attachment.IdEventOwner = (item.EventOwner != null ? item.EventOwner.Id : 0);
                            attachment.IdItemOwner  = item.Id;
                            attachment.Item         = (liteRepositoryItem)link.ModuleObject.ObjectOwner;
                            attachment.isVisible    = visibleForItem;
                            attachment.Version      = null;
                            Manager.SaveOrUpdate(attachment);
                            if (!attachment.Item.IsInternal && visibleForRepository.HasValue && visibleForRepository.Value != attachment.Item.IsVisible)
                            {
                                attachment.Item.IsVisible = visibleForRepository.Value;
                                Manager.SaveOrUpdate(attachment.Item);
                                updateRepositoryItems = true;
                            }

                            liteModuleLink mLink = new liteModuleLink(link.Description, link.Permission, link.Action);
                            mLink.CreateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                            mLink.DestinationItem = (ModuleObject)link.ModuleObject;
                            mLink.AutoEvaluable   = false;
                            mLink.SourceItem      = ModuleObject.CreateLongObject(attachment.Id, attachment, (int)ModuleCommunityDiary.ObjectType.DiaryItemLinkedFile, attachment.IdCommunity, ModuleCommunityDiary.UniqueID, ServiceModuleID());
                            Manager.SaveOrUpdate(mLink);
                            attachment.Link = mLink;
                            Manager.SaveOrUpdate(attachment);
                        }
                        else if (attachment.Deleted != BaseStatusDeleted.None)
                        {
                            attachment.RecoverMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress, date);
                            if (attachment.Item != null && attachment.Item.IsInternal && attachment.Item.Deleted != BaseStatusDeleted.None)
                            {
                                attachment.Item.Deleted = BaseStatusDeleted.None;
                                attachment.Item.UpdateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                                Manager.SaveOrUpdate(attachment.Item);
                            }
                            Manager.SaveOrUpdate(attachment);
                        }
                        attachments.Add(attachment);
                    }
                }
                if (!isInTransaction)
                {
                    Manager.Commit();
                }
                if (updateRepositoryItems && attachments.Any(a => !a.Item.IsInternal))
                {
                    RepositoryIdentifier identifier = attachments.Where(a => !a.Item.IsInternal).Select(a => a.Item.Repository).FirstOrDefault();
                    foreach (EventItemFile attachment in attachments.Where(a => !a.Item.IsInternal))
                    {
                        Manager.Refresh(Manager.Get <lm.Comol.Core.FileRepository.Domain.RepositoryItem>(attachment.Item.Id));
                    }
                    lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(lm.Comol.Core.FileRepository.Domain.CacheKeys.Repository(identifier));
                    lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(lm.Comol.Core.FileRepository.Domain.CacheKeys.UsersViewOfRepository(identifier));
                    lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(lm.Comol.Core.FileRepository.Domain.CacheKeys.UsersSizeViewOfRepository(identifier));
                }
            }
            catch (Exception ex)
            {
                if (!isInTransaction)
                {
                    Manager.RollBack();
                }
                attachments = null;
            }
            return(attachments);
        }
        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);
        }
Ejemplo n.º 20
0
        public List <TicketFile> AttachmentsAddFiles(Message message, TicketUser user, List <dtoModuleUploadedItem> items)
        {
            List <TicketFile> attachments = null;

            if (message == null || message.Ticket == null || user == null || items == null || !items.Any())
            {
                return(null);
            }
            if (message.Creator == null || message.Creator.Id != user.Id)
            {
                return(null);
            }
            Boolean isInTransaction = Manager.IsInTransaction();

            try
            {
                if (!isInTransaction)
                {
                    Manager.BeginTransaction();
                }
                litePerson person = (user.Person ?? Manager.GetLiteUnknownUser());
                if (items.Any() && person != null && person.TypeID != (int)UserTypeStandard.Guest && person.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    attachments = new List <TicketFile>();
                    DateTime date = DateTime.Now;
                    foreach (dtoModuleUploadedItem item in items)
                    {
                        TicketFile attachment = new TicketFile();
                        attachment.CreateMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress, date);
                        attachment.Item       = item.ItemAdded;
                        attachment.Message    = message;
                        attachment.TicketId   = ((message != null && message.Ticket != null) ? message.Ticket.Id : 0);
                        attachment.Name       = attachment.Item.DisplayName;
                        attachment.Visibility = Domain.Enums.FileVisibility.visible;
                        Manager.SaveOrUpdate(attachment);
                        liteModuleLink link = new liteModuleLink(item.Link.Description, item.Link.Permission, item.Link.Action);
                        link.CreateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                        link.DestinationItem = (ModuleObject)item.Link.ModuleObject;
                        link.AutoEvaluable   = false;
                        link.SourceItem      = ModuleObject.CreateLongObject(message.Id, message, (int)ModuleTicket.ObjectType.Message, 0, ModuleTicket.UniqueCode, ServiceModuleID());
                        Manager.SaveOrUpdate(link);
                        attachment.Link = link;

                        if (item.ItemAdded.IsInternal)
                        {
                            if (item.ItemAdded.Module == null)
                            {
                                item.ItemAdded.Module = new lm.Comol.Core.FileRepository.Domain.ItemModuleSettings();
                            }
                            item.ItemAdded.Module.IdObject     = message.Id;
                            item.ItemAdded.Module.IdObjectType = (int)ModuleTicket.ObjectType.Message;
                            Manager.SaveOrUpdate(item.ItemAdded);
                        }

                        Manager.SaveOrUpdate(attachment);
                        attachments.Add(attachment);
                    }
                }
                if (!isInTransaction)
                {
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                if (!isInTransaction)
                {
                    Manager.RollBack();
                }
                attachments = null;
            }
            return(attachments);
        }
Ejemplo n.º 21
0
 public dtoValueField(liteModuleLink link)
 {
     Link   = link;
     IdLink = (link == null) ? 0 : link.Id;
 }
Ejemplo n.º 22
0
        public List <TicketFile> AttachmentsLinkFiles(Message message, List <ModuleActionLink> links)
        {
            List <TicketFile> attachments = null;

            if (message == null || links == null || !links.Any())
            {
                return(null);
            }

            TicketUser usr = this.UserGetfromPerson(UC.CurrentUserID);

            if (message.Creator == null || message.Creator.Id != usr.Id)
            {
                return(null);
            }

            Boolean isInTransaction = Manager.IsInTransaction();

            try
            {
                if (!isInTransaction)
                {
                    Manager.BeginTransaction();
                }
                litePerson person = CurrentLitePerson;

                if (person != null && person.Id > 0)
                {
                    DateTime date = DateTime.Now;
                    attachments = new List <TicketFile>();
                    foreach (ModuleActionLink link in links)
                    {
                        TicketFile attachment = QueryAttachments(a => a.Deleted == BaseStatusDeleted.None && a.Message != null && a.Message.Id == message.Id).ToList().Where(a => a.Item == (liteRepositoryItem)link.ModuleObject.ObjectOwner).Skip(0).Take(1).ToList().FirstOrDefault();
                        if (attachment == null)
                        {
                            attachment = new TicketFile();
                            attachment.CreateMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress, date);
                            attachment.Item       = (liteRepositoryItem)link.ModuleObject.ObjectOwner;
                            attachment.Message    = message;
                            attachment.TicketId   = ((message != null && message.Ticket != null) ? message.Ticket.Id : 0);
                            attachment.Name       = attachment.Item.DisplayName;
                            attachment.Visibility = Domain.Enums.FileVisibility.visible;

                            Manager.SaveOrUpdate(attachment);


                            liteModuleLink mLink = new liteModuleLink(link.Description, link.Permission, link.Action);
                            mLink.CreateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                            mLink.DestinationItem = (ModuleObject)link.ModuleObject;
                            mLink.AutoEvaluable   = false;
                            mLink.SourceItem      = ModuleObject.CreateLongObject(message.Id, message, (int)ModuleTicket.ObjectType.Message, 0, ModuleTicket.UniqueCode, ServiceModuleID());
                            Manager.SaveOrUpdate(mLink);
                            attachment.Link = mLink;
                            Manager.SaveOrUpdate(attachment);
                        }
                        else if (attachment.Deleted != BaseStatusDeleted.None)
                        {
                            attachment.RecoverMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress, date);
                            if (attachment.Item != null && attachment.Item.IsInternal && attachment.Item.Deleted != BaseStatusDeleted.None)
                            {
                                attachment.Item.Deleted = BaseStatusDeleted.None;
                                attachment.Item.UpdateMetaInfo(person.Id, UC.IpAddress, UC.ProxyIpAddress, date);
                                Manager.SaveOrUpdate(attachment.Item);
                            }
                            Manager.SaveOrUpdate(attachment);
                        }
                        attachments.Add(attachment);
                    }
                }
                if (!isInTransaction)
                {
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                if (!isInTransaction)
                {
                    Manager.RollBack();
                }
                attachments = null;
            }
            return(attachments);
        }
Ejemplo n.º 23
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);
            }
        }
Ejemplo 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;
                    }
                }
            }
        }