public static dtoScormOrganizationFolder CreateFrom(ScormItemSettings source, IEnumerable <ScormItemSettings> items, dtoScormOrganizationSettings organization, dtoScormPackageSettings package)
        {
            dtoScormOrganizationFolder folder = new dtoScormOrganizationFolder();

            folder.Id   = source.Id;
            folder.Name = source.Title;
            foreach (ScormItemSettings item in items.Where(i => i.IdParentItem == source.Id))
            {
                if (items.Any(i => i.IdParentItem == item.Id))
                {
                    folder.Children.Add(dtoScormOrganizationFolder.CreateFrom(item, items.Where(i => i.IdParentItem != 0), organization, package));
                }
                else
                {
                    folder.Activities.Add(dtoScormActivitySettings.CreateFrom(item, organization, package));
                }
            }
            folder.DataChildren = "";
            if (folder.Children.Any() || folder.Activities.Any())
            {
                folder.DataChildren = String.Join(",", folder.Children.Select(i => i.DataId).ToList().Union(folder.Children.Select(i => i.DataChildren).ToList().Union(folder.Activities.Select(a => a.DataId).ToList())));
            }

            return(folder);
        }
        public static dtoScormActivitySettings CreateFrom(ScormItemSettings source, dtoScormOrganizationSettings organization, dtoScormPackageSettings package)
        {
            dtoScormActivitySettings activity = new dtoScormActivitySettings();

            activity.Id                   = source.Id;
            activity.Name                 = source.Title;
            activity.ActivityId           = source.ActivityId;
            activity.CheckScore           = source.CheckScore;
            activity.CheckScormCompletion = source.CheckScormCompletion;
            activity.CheckTime            = source.CheckTime;

            activity.MinScore         = source.MinScore;
            activity.MinTime          = source.MinTime;
            activity.UseScoreScaled   = source.UseScoreScaled;
            activity.OrganizationName = organization.Name;
            package.Activities.Add(activity);
            return(activity);
        }
        public virtual ScormItemSettings Copy(long idPackage, long idOrganization, long idParentItem)
        {
            ScormItemSettings item = new ScormItemSettings()
            {
                IdScormPackageSettings = idPackage, IdScormOrganizationSettings = idOrganization, IdParentItem = idParentItem
            };

            item.IsVisible            = IsVisible;
            item.CheckScormCompletion = CheckScormCompletion;
            item.CheckTime            = CheckTime;
            item.MinTime        = MinTime;
            item.CheckScore     = CheckScore;
            item.MinScore       = MinScore;
            item.UseScoreScaled = UseScoreScaled;
            item.Title          = Title;
            item.ScormType      = ScormType;
            item.ActivityId     = ActivityId;
            item.IsLeaf         = IsLeaf;
            return(item);
        }
        public virtual ScormItemSettings CreateForUpdateSettings(long idPackage, long idOrganization, long idParentItem, EvaluationType evaluation, dtoScormItemEvaluationSettings dto)
        {
            ScormItemSettings item = new ScormItemSettings()
            {
                IdScormPackageSettings = idPackage, IdScormOrganizationSettings = idOrganization, IdParentItem = idParentItem
            };

            item.IsVisible            = IsVisible;
            item.Title                = Title;
            item.ScormType            = ScormType;
            item.CheckScore           = false;
            item.CheckScormCompletion = false;
            item.CheckTime            = false;
            item.MinScore             = 0;
            item.MinTime              = 0;
            item.UseScoreScaled       = false;
            item.ActivityId           = ActivityId;
            item.IsLeaf               = IsLeaf;

            if (evaluation == EvaluationType.CustomForActivities && dto != null)
            {
                item.CheckScore           = dto.CheckScore;
                item.CheckScormCompletion = dto.CheckScormCompletion;
                item.CheckTime            = dto.CheckTime;
                if (dto.CheckTime)
                {
                    item.MinTime = dto.MinTime;
                }
                if (dto.CheckScore)
                {
                    item.MinScore       = dto.MinScore;
                    item.UseScoreScaled = dto.UseScoreScaled;
                }
            }

            return(item);
        }