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); }
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 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; } } }
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); }
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); }
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); }
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); }
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); }
public dtoValueField(liteModuleLink link) { Link = link; IdLink = (link == null) ? 0 : link.Id; }
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); }
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); } }
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; } } } }