Esempio n. 1
0
        protected BaseIssuesViewModel()
        {
            Issues = IssuesCollection.CreateDerivedCollection(x => x);

            var gotoIssueCommand = ReactiveCommand.Create();

            gotoIssueCommand.OfType <IssueModel>().Subscribe(x =>
            {
                var isPullRequest = x.PullRequest != null && !(string.IsNullOrEmpty(x.PullRequest.HtmlUrl));
                var s1            = x.Url.Substring(x.Url.IndexOf("/repos/", StringComparison.Ordinal) + 7);
                var repoId        = new RepositoryIdentifier(s1.Substring(0, s1.IndexOf("/issues", StringComparison.Ordinal)));

                if (isPullRequest)
                {
                    var vm             = CreateViewModel <PullRequestViewModel>();
                    vm.RepositoryOwner = repoId.Owner;
                    vm.RepositoryName  = repoId.Name;
                    vm.PullRequestId   = x.Number;
                    ShowViewModel(vm);
                }
                else
                {
                    var vm             = CreateViewModel <IssueViewModel>();
                    vm.RepositoryOwner = repoId.Owner;
                    vm.RepositoryName  = repoId.Name;
                    vm.IssueId         = x.Number;
                    ShowViewModel(vm);
                }
            });
            GoToIssueCommand = gotoIssueCommand;
        }
Esempio n. 2
0
        public static cookieRepository CreateFromString(RepositoryIdentifier identifier, String separator, String value)
        {
            long             idFolder  = 0;
            Boolean          ascending = true;
            cookieRepository item      = new cookieRepository();

            item.Repository   = identifier;
            item.Type         = FolderType.standard;
            item.ItemsOrderBy = OrderBy.name;
            if (!String.IsNullOrEmpty(value))
            {
                try{
                    List <String> values = value.Split(separator.ToCharArray()).ToList();
                    long.TryParse(values[0], out idFolder);
                    item.Type = lm.Comol.Core.DomainModel.Helpers.EnumParser <FolderType> .GetByString(values[1], FolderType.standard);

                    item.ItemsOrderBy = lm.Comol.Core.DomainModel.Helpers.EnumParser <OrderBy> .GetByString(values[2], OrderBy.name);

                    Boolean.TryParse(values[3], out ascending);
                    item.IdentifierPath = values[4];
                    item.IdFolder       = idFolder;
                    item.Ascending      = ascending;
                    return(item);
                }
                catch (Exception ex) {
                    return(null);
                }
            }
            return(null);
        }
 public List <dtoDisplayRepositoryItem> GetAvailableRepositoryItems(
     liteRepositorySettings settings,
     Int32 idCurrentPerson,
     RepositoryType type,
     Int32 idCommunity,
     String unknownUser,
     Dictionary <FolderType, String> fTranslations,
     Dictionary <ItemType, String> iTranslations,
     ModuleRepository permissions,
     Boolean forAdmin   = false,
     Boolean alsoHidden = false,
     Boolean onlyFolder = false,
     Boolean useCache   = true)
 {
     return(GetAvailableRepositoryItems(
                settings,
                idCurrentPerson,
                RepositoryIdentifier.Create(type, idCommunity),
                unknownUser,
                fTranslations,
                iTranslations,
                permissions,
                forAdmin,
                alsoHidden,
                onlyFolder,
                useCache));
 }
Esempio n. 4
0
 public dtoDisplayVersionItem(liteRepositoryItemVersion version)
 {
     Permissions     = new VersionPermission();
     Repository      = new RepositoryIdentifier();
     Id              = version.Id;
     CreatedOn       = version.CreatedOn;
     Availability    = version.Availability;
     IsDeleted       = version.Deleted != DomainModel.BaseStatusDeleted.None;
     DisplayMode     = version.DisplayMode;
     Downloaded      = version.Downloaded;
     Extension       = version.Extension;
     IdCommunity     = version.IdCommunity;
     IdItem          = version.IdItem;
     IdCreatedBy     = version.IdCreatedBy;
     IdModifiedBy    = version.IdModifiedBy;
     IsActive        = version.IsActive;
     ModifiedOn      = version.ModifiedOn;
     Name            = version.Name;
     Number          = version.Number;
     Size            = version.Size;
     Status          = version.Status;
     Thumbnail       = version.Thumbnail;
     AutoThumbnail   = version.AutoThumbnail;
     Repository      = version.Repository;
     Type            = version.Type;
     UniqueIdItem    = version.UniqueIdItem;
     UniqueIdVersion = version.UniqueIdVersion;
     Url             = version.Url;
 }
Esempio n. 5
0
        protected RepositoriesViewModel(IApplicationService applicationService)
        {
            applicationService = applicationService ?? Locator.Current.GetService <IApplicationService>();

            Title = "Repositories";

            var showDescription = applicationService.Account.RepositoryDescriptionInList;
            var repositories    = new ReactiveList <Repository>(resetChangeThreshold: 10);

            Items = repositories.CreateDerivedCollection(x =>
            {
                var description = showDescription ? x.Description : string.Empty;
                var viewModel   = new RepositoryItemViewModel(x.Name, description, x.Owner?.Username, new Avatar(x.Owner?.Links?.Avatar?.Href));
                viewModel.GoToCommand.Subscribe(_ =>
                {
                    var id = RepositoryIdentifier.FromFullName(x.FullName);
                    NavigateTo(new RepositoryViewModel(id.Owner, id.Name, x));
                });
                return(viewModel);
            }, x => x.Name.ContainsKeyword(SearchText), signalReset: this.WhenAnyValue(x => x.SearchText));

            LoadCommand = ReactiveCommand.CreateFromTask(async _ =>
            {
                repositories.Clear();
                await Load(applicationService, repositories);
            });

            LoadCommand.IsExecuting.CombineLatest(repositories.IsEmptyChanged, (x, y) => !x && y)
            .ToProperty(this, x => x.IsEmpty, out _isEmpty);
        }
Esempio n. 6
0
        public SourceTreeViewModel(IFeaturesService featuresService)
        {
            _featuresService = featuresService;

            GoToItemCommand = ReactiveUI.ReactiveCommand.Create();
            GoToItemCommand.OfType <ContentModel>().Subscribe(x =>
            {
                if (x.Type.Equals("dir", StringComparison.OrdinalIgnoreCase))
                {
                    ShowViewModel <SourceTreeViewModel>(new NavObject {
                        Username   = Username, Branch = Branch,
                        Repository = Repository, Path = x.Path, TrueBranch = TrueBranch
                    });
                }
                if (x.Type.Equals("file", StringComparison.OrdinalIgnoreCase))
                {
                    if (x.DownloadUrl == null)
                    {
                        var nameAndSlug = x.GitUrl.Substring(x.GitUrl.IndexOf("/repos/", StringComparison.Ordinal) + 7);
                        var repoId      = new RepositoryIdentifier(nameAndSlug.Substring(0, nameAndSlug.IndexOf("/git", StringComparison.Ordinal)));
                        var sha         = x.GitUrl.Substring(x.GitUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
                        ShowViewModel <SourceTreeViewModel>(new NavObject {
                            Username = repoId.Owner, Repository = repoId.Name, Branch = sha
                        });
                    }
                    else
                    {
                        ShowViewModel <SourceViewModel>(new SourceViewModel.NavObject {
                            Name = x.Name, Username = Username, Repository = Repository, Branch = Branch,
                            Path = x.Path, HtmlUrl = x.HtmlUrl, GitUrl = x.GitUrl, TrueBranch = TrueBranch
                        });
                    }
                }
            });
        }
Esempio n. 7
0
        protected BaseEventsViewModel(IApplicationService applicationService)
        {
            ApplicationService = applicationService;
            var events = new ReactiveList <EventModel>();

            Events           = events.CreateDerivedCollection(CreateEventTextBlocks);
            ReportRepository = true;

            GoToRepositoryCommand = ReactiveCommand.Create();
            GoToRepositoryCommand.OfType <EventModel.RepoModel>().Subscribe(x =>
            {
                var repoId         = new RepositoryIdentifier(x.Name);
                var vm             = CreateViewModel <RepositoryViewModel>();
                vm.RepositoryOwner = repoId.Owner;
                vm.RepositoryName  = repoId.Name;
                ShowViewModel(vm);
            });

            GoToGistCommand = ReactiveCommand.Create();
            GoToGistCommand.OfType <EventModel.GistEvent>().Subscribe(x =>
            {
                var vm  = CreateViewModel <GistViewModel>();
                vm.Id   = x.Gist.Id;
                vm.Gist = x.Gist;
                ShowViewModel(vm);
            });

            LoadCommand = ReactiveCommand.CreateAsyncTask(t =>
                                                          this.RequestModel(CreateRequest(0, 100), t as bool?, response =>
            {
                //this.CreateMore(response, m => { }, events.AddRange);
                events.Reset(response.Data);
            }));
        }
        public Boolean StatisticsAddPlay(Int32 idPerson, RepositoryIdentifier rIdentifier, long idItem, Guid uniqueIdItem, long idVersion, Guid uniqueIdVersion, ItemType type, Int32 idCommunity, long idAction, String playSessionId)
        {
            Boolean result = false;

            try
            {
                PlayStatistics stat = new PlayStatistics();
                stat.CreatedIPaddress      = UC.IpAddress;
                stat.CreatedOn             = DateTime.Now;
                stat.CreatedProxyIPaddress = UC.ProxyIpAddress;
                stat.WorkingSessionID      = playSessionId;
                stat.IdAction              = idAction;
                stat.IdCommunity           = idCommunity;
                stat.IdItem                = idItem;
                stat.IdPerson              = idPerson;
                stat.IdVersion             = idVersion;
                stat.ItemType              = type;
                stat.UniqueIdItem          = uniqueIdItem;
                stat.UniqueIdVersion       = uniqueIdVersion;
                stat.RepositoryIdCommunity = rIdentifier.IdCommunity;
                stat.RepositoryIdPerson    = rIdentifier.IdPerson;
                stat.RepositoryType        = rIdentifier.Type;
                Manager.SaveOrUpdate(stat);
            }
            catch (Exception ex)
            {
            }
            return(result);
        }
 public void AddCommunityFilesToItem(long idActivity, RepositoryIdentifier identifier)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplayWorkingSessionExpired(identifier.IdCommunity, CurrentIdModule);
     }
     else
     {
         List <lm.Comol.Core.FileRepository.Domain.dtoModuleUploadedItem> files = null;
         Activity activity = Service.GetActivity(idActivity);
         if (activity != null)
         {
             files = View.UploadFiles(ModuleEduPath.UniqueCode, (Int32)ModuleEduPath.ObjectType.SubActivity, (Int32)ModuleEduPath.ActionType.DoSubActivity, true);
         }
         else
         {
             View.DisplayActivityNotFound();
             return;
         }
         if (files != null && files.Any(f => f.IsAdded))
         {
             AddCommunityFilesToItem(activity, identifier, (files == null) ? null : files.Where(f => f.IsAdded).Select(f => f.Link).ToList());
         }
         else
         {
             View.DisplayNoFilesToAdd();
         }
     }
 }
Esempio n. 10
0
        private void PinRepository()
        {
            var repoInfo = RepositoryIdentifier.FromFullName(Repository.FullName);

            //Is it pinned already or not?
            var pinnedRepo = _applicationService.Account.PinnedRepositories.Find(
                x => string.Equals(x.Owner, repoInfo.Owner, StringComparison.OrdinalIgnoreCase) &&
                string.Equals(x.Slug, repoInfo.Name, StringComparison.OrdinalIgnoreCase));

            if (pinnedRepo == null)
            {
                var avatar = new Avatar(Repository.Links.Avatar.Href).ToUrl();
                _applicationService.Account.PinnedRepositories.Add(new Data.PinnedRepository
                {
                    Owner    = repoInfo.Owner,
                    Slug     = repoInfo.Name,
                    ImageUri = avatar,
                    Name     = repoInfo.Name
                });
            }
            else
            {
                _applicationService.Account.PinnedRepositories.RemoveAll(x => x.Id == pinnedRepo.Id);
            }
        }
        private List <DisplayRepositoryAction> GetAvailableActions(RepositoryIdentifier identifier, ModuleRepository module)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplayWorkingSessionExpired(identifier.IdCommunity, CurrentIdModule);
            }
            List <DisplayRepositoryAction> actions = new List <DisplayRepositoryAction>();

            if ((module.Administration || module.ManageItems || module.UploadFile) && identifier.Type == RepositoryType.Community && identifier.IdCommunity > 0)
            {
                actions.Add(DisplayRepositoryAction.repositoryDownloadOrPlay);
            }
            if (module.Administration || module.ManageItems || module.UploadFile || module.ViewItemsList || module.DownloadOrPlay)
            {
                List <lm.Comol.Core.FileRepository.Domain.ItemType> availableTypes = ServiceRepository.GetAvailableTypes(identifier, module, UserContext.CurrentUserID);
                if (availableTypes.Contains(lm.Comol.Core.FileRepository.Domain.ItemType.File))
                {
                    actions.Add(DisplayRepositoryAction.downloadItem);
                }
                if (availableTypes.Contains(lm.Comol.Core.FileRepository.Domain.ItemType.Multimedia))
                {
                    actions.Add(DisplayRepositoryAction.playMultimedia);
                }
                if (availableTypes.Contains(lm.Comol.Core.FileRepository.Domain.ItemType.ScormPackage))
                {
                    actions.Add(DisplayRepositoryAction.playScormPackage);
                }
            }

            actions.Add(DisplayRepositoryAction.internalDownloadOrPlay);
            return(actions);
        }
Esempio n. 12
0
        private void InitializeSelectors(RepositoryIdentifier identifier, List <Int32> removeRoles, List <Int32> removeUsers)
        {
            Boolean allowAddRole  = identifier.Type == RepositoryType.Community;
            Boolean allowAddUsers = true;

            if (allowAddRole)
            {
                List <lm.Comol.Core.DomainModel.dtoTranslatedRoleType> roles = CurrentManager.GetTranslatedRoles(identifier.IdCommunity, UserContext.Language.Id).Where(r => !removeRoles.Contains(r.Id)).ToList();
                allowAddRole = (roles != null && roles.Any());
                View.InitializeRolesSelector(roles);
            }

            if (allowAddUsers)
            {
                switch (identifier.Type)
                {
                case RepositoryType.Community:
                    View.InitializeUsersSelector(identifier.IdCommunity, removeUsers);
                    break;

                case RepositoryType.Portal:
                    View.InitializePortalUsersSelector(removeUsers);
                    break;

                default:
                    allowAddUsers = false;
                    break;
                }
            }
            View.InitializeCommands(allowAddRole, allowAddUsers);
        }
Esempio n. 13
0
 public ScormPackageSettings(String packagePath, Boolean isValid = true)
 {
     Repository    = new RepositoryIdentifier();
     PackagePath   = packagePath;
     Organizations = new List <ScormOrganizationSettings>();
     IsValid       = isValid;
 }
 public void InitView(Boolean allowPaging, Boolean selectAll, Int32 pageSize, RepositoryIdentifier identifier, Boolean adminMode, Boolean showHiddenItems, Boolean disableNotAvailableItems, List <ItemType> typesToLoad, ItemAvailability availability, List <StatisticType> displayStatistics, List <long> idRemovedItems, List <long> idSelectedItems = null, OrderBy orderBy = OrderBy.name, Boolean ascending = true)
 {
     if (SessionTimeout())
     {
         return;
     }
     View.IdUserLoader                    = UserContext.CurrentUserID;
     View.AvailableTypes                  = typesToLoad;
     View.CurrentAvailability             = availability;
     View.IdRemovedItems                  = idRemovedItems;
     View.LoadForModule                   = false;
     View.ModuleCode                      = ModuleRepository.UniqueCode;
     View.RepositoryIdentifier            = identifier;
     View.CurrentOrderBy                  = orderBy;
     View.CurrentAscending                = ascending;
     View.isInitialized                   = true;
     View.CurrentAdminMode                = adminMode;
     View.CurrentShowHiddenItems          = showHiddenItems;
     View.CurrentDisableNotAvailableItems = disableNotAvailableItems;
     if (!typesToLoad.Any(t => t == ItemType.Multimedia || t == ItemType.ScormPackage || t == ItemType.VideoStreaming))
     {
         displayStatistics.Remove(StatisticType.plays);
         displayStatistics.Remove(StatisticType.myplays);
     }
     if (!typesToLoad.Any(t => t != ItemType.Folder && t != ItemType.Link))
     {
         displayStatistics.Remove(StatisticType.downloads);
         displayStatistics.Remove(StatisticType.mydownloads);
     }
     View.DisplayStatistics = displayStatistics;
     LoadItems(Service.GetPermissions(identifier, UserContext.CurrentUserID), UserContext.CurrentUserID, allowPaging, identifier, adminMode, showHiddenItems, disableNotAvailableItems, typesToLoad, availability, displayStatistics, idRemovedItems, idSelectedItems, selectAll, orderBy, ascending, 0, pageSize);
 }
 public void LoadItems(RepositoryIdentifier identifier, Boolean adminMode, Boolean showHiddenItems, Boolean disableNotAvailableItems, List <ItemType> typesToLoad, ItemAvailability availability, List <StatisticType> displayStatistics, List <long> idRemovedItems, List <long> idSelectedItems, Boolean selectAll, OrderBy orderBy, Boolean ascending, Int32 pageIndex, Int32 pageSize)
 {
     if (!SessionTimeout())
     {
         LoadItems(Service.GetPermissions(identifier, UserContext.CurrentUserID), UserContext.CurrentUserID, true, identifier, adminMode, showHiddenItems, disableNotAvailableItems, typesToLoad, availability, displayStatistics, idRemovedItems, idSelectedItems, selectAll, orderBy, ascending, pageIndex, pageSize);
     }
 }
 public List <dtoRepositoryItemToSelect> GetSelectedItems(RepositoryIdentifier identifier, Boolean adminMode, List <StatisticType> displayStatistics, List <ItemType> typesToLoad, List <long> idSelectedItems, Boolean selectAll)
 {
     if (!SessionTimeout())
     {
         Dictionary <Boolean, List <long> > selections = View.GetCurrentSelection();
         idSelectedItems = idSelectedItems.Except(selections[false]).ToList();
         idSelectedItems.AddRange(selections[true]);
         if (idSelectedItems.Any())
         {
             idSelectedItems = idSelectedItems.Distinct().ToList();
         }
         View.IdSelectedItems = idSelectedItems;
         if (selectAll)
         {
             return(Service.ItemsToSelectGet(View.IdUserLoader, "/", Service.GetPermissions(identifier, UserContext.CurrentUserID), identifier, adminMode, View.CurrentShowHiddenItems, View.CurrentDisableNotAvailableItems, typesToLoad, View.CurrentAvailability, displayStatistics, View.IdRemovedItems, idSelectedItems, selectAll, !typesToLoad.Contains(ItemType.Folder)).Where(i => i.Selectable && i.Selected).ToList());
         }
         else
         {
             return(Service.ItemsToSelectGet(UserContext.CurrentUserID, "/", Service.GetPermissions(identifier, UserContext.CurrentUserID), identifier, adminMode, displayStatistics, idSelectedItems));
         }
     }
     else
     {
         return(new List <dtoRepositoryItemToSelect>());
     }
 }
Esempio n. 17
0
        public liteRepositorySettings SettingsGetByRepositoryIdentifier(RepositoryIdentifier item)
        {
            liteRepositorySettings result = null;

            if (item != null)
            {
                try
                {
                    switch (item.Type)
                    {
                    case RepositoryType.Portal:
                        result = SettingsGetDefault(SettingsGet(s => s.Deleted == DomainModel.BaseStatusDeleted.None && s.Status == ItemStatus.Active && (s.Type == SettingsType.Istance || s.Type == SettingsType.Portal)));
                        break;

                    default:
                        Int32 idOrganization = Manager.GetIdOrganizationFromCommunity(item.IdCommunity);
                        result = SettingsGetDefault(SettingsGet(s => s.Deleted == DomainModel.BaseStatusDeleted.None && s.Status == ItemStatus.Active && (s.Type == SettingsType.Istance || s.Type == SettingsType.Portal || (s.Type == SettingsType.Organization && s.IdOrganization == idOrganization) || (s.Type == SettingsType.Community && s.IdCommunity == item.IdCommunity))));
                        break;
                    }
                }
                catch (Exception ex)
                {
                }
            }
            return(result);
        }
Esempio n. 18
0
        private void GoToCommits(EventModel.RepoModel repoModel, string branch)
        {
            var repoId = new RepositoryIdentifier(repoModel.Name);
            var vm     = this.CreateViewModel <CommitsViewModel>();

            NavigateTo(vm.Init(repoId.Owner, repoId.Name, branch));
        }
 public void InitView(RepositoryIdentifier identifier, long idActivity, List <long> unloadItems = null)
 {
     View.Identifier    = identifier;
     unloadItems        = unloadItems ?? new List <long>();
     View.UnloadItems   = unloadItems;
     View.CurrentAction = DisplayRepositoryAction.none;
     View.IdActivity    = idActivity;
     if (UserContext.isAnonymous)
     {
         View.DisplayWorkingSessionExpired(identifier.IdCommunity, CurrentIdModule);
     }
     else
     {
         ModuleRepository module = ServiceRepository.GetPermissions(identifier, UserContext.CurrentUserID);
         List <DisplayRepositoryAction> actions = GetAvailableActions(identifier, module);
         View.LoadAvailableActions(actions, DisplayRepositoryAction.select);
         if (actions.Any())
         {
             if (actions.Contains(DisplayRepositoryAction.repositoryDownloadOrPlay))
             {
                 View.InitializeCommunityUploader(identifier);
             }
             View.InitializeInternalUploader(identifier);
         }
     }
 }
        public void ChangeAction(long idActivity, RepositoryIdentifier identifier, DisplayRepositoryAction action, List <long> unloadItems)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplayWorkingSessionExpired(identifier.IdCommunity, CurrentIdModule);
            }
            else
            {
                switch (action)
                {
                case DisplayRepositoryAction.playMultimedia:
                case DisplayRepositoryAction.downloadItem:
                case DisplayRepositoryAction.playScormPackage:
                    ModuleRepository module = ServiceRepository.GetPermissions(identifier, UserContext.CurrentUserID);
                    switch (action)
                    {
                    case DisplayRepositoryAction.downloadItem:
                        View.InitializeLinkRepositoryItems(UserContext.CurrentUserID, module, identifier, unloadItems, lm.Comol.Core.FileRepository.Domain.ItemType.File);
                        break;

                    case DisplayRepositoryAction.playMultimedia:
                        View.InitializeLinkRepositoryItems(UserContext.CurrentUserID, module, identifier, unloadItems, lm.Comol.Core.FileRepository.Domain.ItemType.Multimedia);
                        break;

                    case DisplayRepositoryAction.playScormPackage:
                        View.InitializeLinkRepositoryItems(UserContext.CurrentUserID, module, identifier, unloadItems, lm.Comol.Core.FileRepository.Domain.ItemType.ScormPackage);
                        break;
                    }
                    break;
                }
                View.DisplayAction(action);
            }
        }
Esempio n. 21
0
        public void LoadAssignments(Boolean editMode, long idItem, Dictionary <AssignmentType, String> tTranslations, Dictionary <PermissionsTranslation, String> translations, Dictionary <ModuleRepository.Base2Permission, String> pTranslations, List <dtoEditAssignment> assignments = null)
        {
            RepositoryIdentifier identifier = Service.ItemGetRepositoryIdentifier(idItem);

            if (identifier != null)
            {
                List <dtoEditAssignment> items = Service.ItemGetAssignmentsForEditing(idItem, tTranslations, translations, pTranslations);
                if (assignments != null && items != null)
                {
                    foreach (dtoEditAssignment i in items.Where(x => !x.Inherited && assignments.Any(a => a.Id == x.Id && a.Type == x.Type && a.Denyed != x.Denyed)))
                    {
                        i.Denyed = assignments.Any(a => a.Id == i.Id && a.Denyed);
                    }

                    foreach (dtoEditAssignment nItem in items.Where(i => !i.Inherited && !assignments.Any(a => a.Id == i.Id)))
                    {
                        switch (nItem.Type)
                        {
                        case AssignmentType.community:
                            dtoEditAssignment vItem = assignments.Where(a => a.Type == nItem.Type).FirstOrDefault();
                            if (vItem != null && !vItem.Denyed && nItem.Denyed)
                            {
                                nItem.Denyed = false;
                            }
                            assignments = assignments.Where(a => a.Type != AssignmentType.community).ToList();
                            break;

                        case AssignmentType.person:
                            dtoEditAssignment pItem = assignments.Where(a => a.Type == nItem.Type && a.IdPerson == nItem.IdPerson).FirstOrDefault();
                            if (pItem != null && !pItem.Denyed && nItem.Denyed)
                            {
                                nItem.Denyed = false;
                            }
                            assignments = assignments.Where(a => a.Type != nItem.Type && a.IdPerson != nItem.IdPerson).ToList();
                            break;

                        case AssignmentType.role:
                            dtoEditAssignment rItem = assignments.Where(a => a.Type == nItem.Type && a.IdRole == nItem.IdRole).FirstOrDefault();
                            if (rItem != null && !rItem.Denyed && nItem.Denyed)
                            {
                                nItem.Denyed = false;
                            }
                            assignments = assignments.Where(a => a.Type != nItem.Type && a.IdRole != nItem.IdRole).ToList();
                            break;
                        }
                    }

                    assignments.AddRange(items.Where(i => !assignments.Any(a => a.Id == i.Id)).ToList());
                    assignments = assignments.OrderBy(a => a.OrderByInherited()).ThenBy(a => a.OrderByType()).ThenBy(a => a.DisplayName).ToList();
                    InitializeSelectors(identifier, assignments.Select(i => i.IdRole).ToList(), assignments.Where(a => a.IdPerson > 0).Select(i => i.IdPerson).ToList());
                    View.LoadAssignments(assignments);
                }
                else if (items != null)
                {
                    InitializeSelectors(identifier, items.Select(i => i.IdRole).ToList(), items.Where(a => a.IdPerson > 0).Select(i => i.IdPerson).ToList());
                    View.LoadAssignments(items.OrderBy(a => a.OrderByInherited()).ThenBy(a => a.OrderByType()).ThenBy(a => a.DisplayName).ToList());
                }
            }
        }
Esempio n. 22
0
        private void GoToRepository(EventModel.RepoModel repo)
        {
            var repoId = new RepositoryIdentifier(repo.Name);
            var vm     = this.CreateViewModel <RepositoryViewModel>();

            vm.Init(repoId.Owner, repoId.Name);
            NavigateTo(vm);
        }
Esempio n. 23
0
        protected virtual void GoToCommit(CommitModel x)
        {
            var repo = new RepositoryIdentifier(x.Repository.FullName);

            ShowViewModel <CommitViewModel>(new CommitViewModel.NavObject {
                Username = repo.Owner, Repository = repo.Name, Node = x.Hash
            });
        }
Esempio n. 24
0
 private void GoToBranches(RepositoryIdentifier repoId)
 {
     ShowViewModel <BranchesAndTagsViewModel>(new BranchesAndTagsViewModel.NavObject
     {
         Username          = repoId.Owner,
         Repository        = repoId.Name,
         IsShowingBranches = true
     });
 }
Esempio n. 25
0
        private void GoToBranches(RepositoryIdentifier repoId)
        {
            var vm = this.CreateViewModel <BranchesAndTagsViewModel>();

            vm.RepositoryOwner = repoId.Owner;
            vm.RepositoryName  = repoId.Name;
            vm.SelectedFilter  = BranchesAndTagsViewModel.ShowIndex.Branches;
            NavigateTo(vm);
        }
        public List <dtoItemToDelete> RepositoryPhisicalDelete(RepositoryIdentifier identifier, String basePath, String thumbnailPath)
        {
            List <dtoItemToDelete> itemsToDelete = new List <dtoItemToDelete>();

            try
            {
                List <String> filesToDelete = new List <string>();

                List <liteRepositoryItem>        items    = GetQuery(identifier).Where(i => !i.IsInternal).ToList();
                List <liteRepositoryItemVersion> versions = GetQueryVersions(identifier).ToList();
                versions = versions.Where(v => items.Any(i => i.Id == v.IdItem)).ToList();
                List <ItemAssignments>  assignments = GetQueryAssignments(identifier).ToList();
                List <liteFileTransfer> mTransfer   = FileTransferGetById(items.Where(i => i.Type == ItemType.ScormPackage || i.Type == ItemType.Multimedia).Select(i => i.Id).ToList());

                Manager.BeginTransaction();
                Manager.DeletePhysicalList(assignments);
                Manager.DeletePhysicalList(mTransfer);
                foreach (liteRepositoryItem i in items.Where(v => v.Type == ItemType.Multimedia))
                {
                    List <MultimediaFileObject> mObjects = (from m in Manager.GetIQ <MultimediaFileObject>() where m.IdItem == i.Id select m).ToList();
                    if (mObjects != null && mObjects.Any())
                    {
                        Manager.DeletePhysicalList(mObjects);
                    }
                }
                foreach (liteRepositoryItem i in items.Where(v => v.Type == ItemType.ScormPackage))
                {
                    List <lm.Comol.Core.FileRepository.Domain.ScormSettings.ScormPackageSettings> mObjects = (from m in Manager.GetIQ <lm.Comol.Core.FileRepository.Domain.ScormSettings.ScormPackageSettings>() where m.IdItem == i.Id select m).ToList();
                    if (mObjects != null && mObjects.Any())
                    {
                        Manager.DeletePhysicalList(mObjects);
                    }
                }
                String path          = GetItemDiskPath(basePath, identifier);
                String pathThumbnail = GetItemDiskPath(thumbnailPath, identifier);

                filesToDelete.AddRange(versions.Where(v => v.Type != ItemType.Folder && v.Type != ItemType.Link).Select(v => System.IO.Path.Combine(path, v.UniqueIdVersion.ToString() + v.Extension)).ToList());
                filesToDelete.AddRange(versions.Where(v => !String.IsNullOrEmpty(v.Thumbnail)).Select(v => System.IO.Path.Combine(pathThumbnail, v.Thumbnail)).ToList());

                itemsToDelete = items.Select(i => new dtoItemToDelete(i)).ToList();
                Manager.DeletePhysicalList(versions);
                Manager.DeletePhysicalList(items);
                Manager.Commit();
                if (filesToDelete.Any())
                {
                    lm.Comol.Core.File.Delete.Files(filesToDelete);
                }
                lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(CacheKeys.Repository(identifier));
                lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(CacheKeys.UsersViewOfRepository(identifier));
                lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(CacheKeys.UsersSizeViewOfRepository(identifier));
            }
            catch (Exception ex) {
                Manager.RollBack();
                itemsToDelete = null;
            }
            return(itemsToDelete);
        }
Esempio n. 27
0
        private void GoToBranch(RepositoryIdentifier repoId, string branchName)
        {
            if (repoId == null)
            {
                return;
            }

            GoToBranchCommand.OnNext(Tuple.Create(repoId, branchName));
        }
Esempio n. 28
0
        private void GoToRepository(EventModel.RepoModel eventModel)
        {
            var repoId = new RepositoryIdentifier(eventModel.Name);

            ShowViewModel <RepositoryViewModel>(new RepositoryViewModel.NavObject
            {
                Username   = repoId.Owner,
                Repository = repoId.Name
            });
        }
Esempio n. 29
0
        private void GoToTags(EventModel.RepoModel eventModel)
        {
            var repoId = new RepositoryIdentifier(eventModel.Name);
            var vm     = this.CreateViewModel <BranchesAndTagsViewModel>();

            vm.RepositoryOwner = repoId.Owner;
            vm.RepositoryName  = repoId.Name;
            vm.SelectedFilter  = BranchesAndTagsViewModel.ShowIndex.Tags;
            NavigateTo(vm);
        }
Esempio n. 30
0
        private void GoToCommits(EventModel.RepoModel repoModel, string branch)
        {
            var repoId = new RepositoryIdentifier(repoModel.Name);
            var vm     = this.CreateViewModel <CommitsViewModel>();

            vm.RepositoryOwner = repoId.Owner;
            vm.RepositoryName  = repoId.Name;
            vm.Branch          = branch;
            NavigateTo(vm);
        }