Exemplo n.º 1
0
        public void SaveActionsExecution(List <dtoItemEvaluation <long> > evaluatedLinks, int idUser)
        {
            if (evaluatedLinks != null && evaluatedLinks.Count > 0)
            {
                try
                {
                    IList <long>       IdLinks = (from e in evaluatedLinks select e.Item).ToList();
                    IList <ModuleLink> links   = (from l in Manager.GetIQ <ModuleLink>()
                                                  where IdLinks.Contains(l.Id)
                                                  select l).ToList();

                    foreach (dtoItemEvaluation <long> dto in evaluatedLinks)
                    {
                        ModuleLink link = (from l in links where l.Id == dto.Item select l).FirstOrDefault();
                        if (link != null)
                        {
                            int croleId = Manager.GetActiveSubscriptionIdRole(idUser, link.SourceItem.CommunityID); //Manager.Get<SubActivity>(Link.SourceItem.ObjectLongID).Community.Id);
                            Manager.BeginTransaction();
                            ServiceStat.InitOrUpdateSubActivityNoTransaction(link.SourceItem.ObjectLongID, idUser, croleId, idUser, "", "", dto.Completion, dto.Mark, dto.isStarted, dto.isCompleted, dto.isPassed);
                            Manager.Commit();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Manager.RollBack();
                    Debug.Write(ex);
                }
            }
        }
Exemplo n.º 2
0
 public void SaveActionExecution(
     ModuleLink link,
     bool isStarted,
     bool isPassed,
     short Completion,
     bool isCompleted,
     short mark,
     int idUser,
     bool alreadyCompleted,
     Dictionary <string, long> moduleUserLong     = null,
     Dictionary <string, string> moduleUserString = null)
 {
     try
     {
         if (link.SourceItem.ObjectTypeID == (int)COL_BusinessLogic_v2.UCServices.Services_EduPath.ObjectType.SubActivity)
         {
             int croleId = Manager.GetActiveSubscriptionIdRole(idUser, link.SourceItem.CommunityID); //Manager.Get<SubActivity>(Link.SourceItem.ObjectLongID).Community.Id);
             Manager.BeginTransaction();
             ServiceStat.InitOrUpdateSubActivityNoTransaction(link.SourceItem.ObjectLongID, idUser, croleId, idUser, "", "", Completion, mark, isStarted, isCompleted, isPassed);
             Manager.Commit();
         }
         else if (link.SourceItem.ObjectTypeID == (int)COL_BusinessLogic_v2.UCServices.Services_EduPath.ObjectType.Activity)
         {
         }
     }
     catch (Exception ex)
     {
         if (Manager.IsInTransaction())
         {
             Manager.RollBack();
         }
         Debug.Write(ex);
     }
 }
        public void SaveActionExecution(Int32 idUser, Int32 idRole, long idPath, long idSubActivity, dtoEvaluation evaluation, DateTime?referenceTime)
        {
            try
            {
                Boolean        save     = true;
                Path           path     = GetPath(idPath);
                PolicySettings settings = null;
                if (path != null)
                {
                    settings = path.Policy;
                }

                if (settings != null)
                {
                    switch (settings.Statistics)
                    {
                    case CompletionPolicy.UpdateAlways:
                        break;

                    default:
                        List <SubActivityStatistic> items = GetUserStatistics(idSubActivity, idUser, ((referenceTime != null && referenceTime.HasValue) ? referenceTime.Value : DateTime.Now));
                        SubActivityStatistic        last  = (items == null ? null : items.FirstOrDefault());
                        switch (settings.Statistics)
                        {
                        case CompletionPolicy.NoUpdateIfCompleted:
                            if (evaluation.isPassed && evaluation.isCompleted)
                            {
                                save = !items.Any(i => ServiceStat.CheckStatusStatistic(i.Status, StatusStatistic.CompletedPassed));
                            }
                            else
                            {
                                save = !items.Any(i => ServiceStat.CheckStatusStatistic(i.Status, StatusStatistic.Completed) || ServiceStat.CheckStatusStatistic(i.Status, StatusStatistic.CompletedPassed));
                            }
                            break;
                            //case CompletionPolicy.UpdateOnlyIfBetter:
                            //    if (last != null)
                            //        save = (last.Completion < evaluation.Completion || (
                            //                 ((!ServiceStat.CheckStatusStatistic(last.Status, StatusStatistic.Completed) && !ServiceStat.CheckStatusStatistic(last.Status, StatusStatistic.CompletedPassed))
                            //                 && (evaluation.Status == Core.FileRepository.Domain.PackageStatus.completed
                            //                     || evaluation.Status == Core.FileRepository.Domain.PackageStatus.completedpassed))
                            //                     ));

                            //    break;
                            //case CompletionPolicy.UpdateOnlyIfWorst:
                            //    break;
                        }
                        break;
                    }
                }
                if (save)
                {
                    Manager.BeginTransaction();
                    ServiceStat.InitOrUpdateSubActivityNoTransaction(idSubActivity, idUser, idRole, idUser, UC.IpAddress, UC.ProxyIpAddress, evaluation.Completion, (short)evaluation.Completion, evaluation.isStarted, evaluation.isCompleted, evaluation.isPassed);
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
            }
        }
 public statController()
 {
     ss = new ServiceStat();
     ps = new ProjectService();
 }
Exemplo n.º 5
0
        /// <summary>
        /// Recupera le statistiche dell'utente CORRENTE per i moocs della comunità CORRENTE.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// ToDo: usare oggetto di dominio in OUTPUT
        /// ToDo: Ottimizzare la 50.000 chiamate a roba vecchia...
        /// </remarks>
        public dtoMoocInfoResponse Get()
        {
            //dtoNoticeBoardPlainListResponse response = new dtoNoticeBoardPlainListResponse();
            //response.ErrorInfo = base.LastError;

            //ContextHelper.APIContext.
            IList <dtoEPitemList> paths    = new List <dtoEPitemList>();
            dtoMoocInfoResponse   response = new dtoMoocInfoResponse();

            response.Moocs = new List <dtoCokadeInfo>();

            COL_Persona UtenteCorrente = new COL_Persona(base.AppContext.UserContext.CurrentUserID);


            int usrId = base.AppContext.UserContext.CurrentUserID;
            int comId = base.AppContext.UserContext.CurrentCommunityID;

            try
            {
                paths = ServiceEP.GetMyEduPaths(usrId,
                                                comId,
                                                UtenteCorrente.GetIDRuoloForComunita(comId),
                                                EpViewModeType.View, true);
            }
            catch (Exception ex)
            {
                string exception = ex.ToString();
            }


            //Me.CurrentContext.UserContext.CurrentUserID, CurrentCommunityID, CurrentCommRoleID, Me.ViewModeType, PreloadIsMooc)


            foreach (dtoEPitemList path in paths)
            {
                dtoStatWithWeight statForBar = ServiceEP.ServiceStat.GetPassedCompletedWeight_byActivity(path.Id, usrId,
                                                                                                         DateTime.Now);


                lm.Comol.Modules.EduPath.Domain.DTO.dtoCokadeInfo mooc = new dtoCokadeInfo();
                mooc.CommunityId        = comId;
                mooc.PathId             = path.Id;
                mooc.PathName           = path.Name;
                mooc.Info               = new dtoCokadeMoocInfo();
                mooc.Info.Completion    = statForBar.Completion;
                mooc.Info.MinCompletion = statForBar.MinCompletion;
                mooc.Info.mType         = path.moocType;
                StatusStatistic moocStatus = ServiceStat.GetEpUserStatus(path.Id, usrId);

                mooc.Info.mookCompleted = CheckStatusStatistic(moocStatus, StatusStatistic.Completed) ||
                                          CheckStatusStatistic(moocStatus, StatusStatistic.CompletedPassed) ||
                                          CheckStatusStatistic(moocStatus, StatusStatistic.Passed);

                response.Moocs.Add(mooc);
            }

            response.IsCommunityCokade = ServiceEP.CokadeEnabled(comId);

            if (response.IsCommunityCokade)
            {
                IList <dtoCokadeInfo> MoocsType2 = response.Moocs.Where(c => c.Info.mType == MoocType.Cockade).ToList();
                response.CokadeCompleted     = MoocsType2.All(m => m.Info.mookCompleted);
                response.CokadeCompletedGold = MoocsType2.All(m => m.Info.mookCompleted && m.Info.Completion >= 100);
            }

            return(response);
        }
Exemplo n.º 6
0
        public void SaveActionExecution(lm.Comol.Core.FileRepository.Domain.ScormPackageUserEvaluation evaluation)
        {
            try
            {
                Boolean        save          = true;
                long           idSubActivity = evaluation.IdObject;
                long           idPath        = GetPathId_BySubActivityId(idSubActivity);
                Int32          idCommunity   = GetPathIdCommunity(idPath);
                Int32          idRole        = Manager.GetActiveSubscriptionIdRole(evaluation.IdPerson, idCommunity);
                Path           path          = GetPath(idPath);
                PolicySettings settings      = null;
                if (path != null)
                {
                    settings = path.Policy;
                }

                if (settings != null)
                {
                    switch (settings.Statistics)
                    {
                    case CompletionPolicy.UpdateAlways:
                        break;

                    default:
                        List <SubActivityStatistic> items = GetUserStatistics(idSubActivity, evaluation.IdPerson, (evaluation.EndPlayOn.HasValue ? evaluation.EndPlayOn.Value : DateTime.Now));
                        SubActivityStatistic        last  = (items == null ? null : items.FirstOrDefault());
                        switch (settings.Statistics)
                        {
                        case CompletionPolicy.NoUpdateIfCompleted:
                            if (evaluation.IsPassed && evaluation.IsCompleted)
                            {
                                save = !items.Any(i => ServiceStat.CheckStatusStatistic(i.Status, StatusStatistic.CompletedPassed));
                            }
                            else
                            {
                                save = !items.Any(i => ServiceStat.CheckStatusStatistic(i.Status, StatusStatistic.Completed) || ServiceStat.CheckStatusStatistic(i.Status, StatusStatistic.CompletedPassed));
                            }
                            break;

                        case CompletionPolicy.UpdateOnlyIfBetter:
                            if (last != null)
                            {
                                save = (last.Completion < evaluation.Completion || (
                                            ((!ServiceStat.CheckStatusStatistic(last.Status, StatusStatistic.Completed) && !ServiceStat.CheckStatusStatistic(last.Status, StatusStatistic.CompletedPassed)) &&
                                             (evaluation.Status == Core.FileRepository.Domain.PackageStatus.completed ||
                                              evaluation.Status == Core.FileRepository.Domain.PackageStatus.completedpassed))
                                            ));
                            }

                            break;

                        case CompletionPolicy.UpdateOnlyIfWorst:
                            break;
                        }
                        break;
                    }
                }
                if (save)
                {
                    Manager.BeginTransaction();
                    ServiceStat.InitOrUpdateSubActivityNoTransaction(idSubActivity, evaluation.IdPerson, idRole, evaluation.IdPerson, UC.IpAddress, UC.ProxyIpAddress, evaluation.Completion, (short)evaluation.Completion, (evaluation.Status != lm.Comol.Core.FileRepository.Domain.PackageStatus.notstarted), evaluation.IsCompleted, evaluation.IsPassed);
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
            }
        }