예제 #1
0
        /// <summary>
        /// For Mark completed
        /// </summary>
        /// <param name="pEntListTracking"></param>
        /// <param name="pMethod"></param>
        /// <returns></returns>
        public List <ContentModuleTracking> Execute(List <ContentModuleTracking> pEntListTracking, ContentModuleTracking.ListMethod pMethod)
        {
            List <ContentModuleTracking> entListTracking = new List <ContentModuleTracking>();
            ContentModuleTrackingAdaptor adaptorTracking = new ContentModuleTrackingAdaptor();

            switch (pMethod)
            {
            case ContentModuleTracking.ListMethod.MarkCompleted:
                entListTracking = adaptorTracking.BulkUpdate(pEntListTracking, false);
                break;

            case ContentModuleTracking.ListMethod.BulkMarkCompleted:
                entListTracking = adaptorTracking.BulkUpdate(pEntListTracking, true);
                break;

            default:
                entListTracking = null;
                break;
            }
            foreach (ContentModuleTracking entTracking in pEntListTracking)
            {
                GotoDynamicAssignment(entTracking.ClientId, entTracking.ContentModuleId, entTracking.UserID, entTracking.IsForAdminPreview);
            }
            return(entListTracking);
        }
예제 #2
0
        public virtual ContentModuleTracking GetUserDataXml(ContentModuleTracking pEntContModTracking)
        {
            var entContModTrackingReturn =
                new ContentModuleTrackingAdaptor().GetContentModuleTrackingByID(pEntContModTracking);

            return(entContModTrackingReturn);
        }
예제 #3
0
        /// <summary>
        /// Used for read,add,update,delete transactions.
        /// </summary>
        /// <param name="pEntContModTracking"></param>
        /// <param name="pMethod"></param>
        /// <returns>ContentModuleTracking object</returns>
        public ContentModuleTracking Execute(ContentModuleTracking pEntContModTracking, ContentModuleTracking.Method pMethod)
        {
            ContentModuleTracking        entContModTrackingReturn = null;
            ContentModuleTrackingAdaptor adaptorContModTracking   = new ContentModuleTrackingAdaptor();

            switch (pMethod)
            {
            case ContentModuleTracking.Method.GetStatusByID:
                entContModTrackingReturn = adaptorContModTracking.GetContentModuleTrackingStatusById_Learner(pEntContModTracking);
                break;

            case ContentModuleTracking.Method.GetUserDataXML:
                entContModTrackingReturn = GetUserDataXml(pEntContModTracking);

                if (String.IsNullOrEmpty(entContModTrackingReturn.UserDataXML))
                {
                    entContModTrackingReturn.LessonTracking = new Dictionary <string, LessonTracking>();
                }
                else
                {
                    ILessonTrackingSerializer serializer = new LessonTrackingSerializerFactory().Create(pEntContModTracking.ContentType,
                                                                                                        entContModTrackingReturn.ContentModuleId, entContModTrackingReturn.UserID, entContModTrackingReturn.UserFirstLastName);

                    entContModTrackingReturn.LessonTracking = serializer.ReadLessonTracking(entContModTrackingReturn.UserDataXML);

                    pEntContModTracking.NoOfPagesCompleted = entContModTrackingReturn.LessonTracking.Values.Count(l => l.IsComplete);
                }
                break;

            case ContentModuleTracking.Method.Get:
                entContModTrackingReturn = adaptorContModTracking.GetContentModuleTrackingByID(pEntContModTracking);

                break;

            case ContentModuleTracking.Method.Add:
                entContModTrackingReturn = pEntContModTracking;
                var result2 = adaptorContModTracking.AddContentModuleTracking(pEntContModTracking);

                if (!pEntContModTracking.IsCompleted() && result2.CurrentCompletionStatus != result2.PreviousCompletionStatus)
                {
                    GotoDynamicAssignment(pEntContModTracking.ClientId, pEntContModTracking.ContentModuleId, pEntContModTracking.UserID, pEntContModTracking.IsForAdminPreview);
                }
                break;

            case ContentModuleTracking.Method.Update:
                //Going to return basic information - Previous status, new status, and learner ID
                //Then we can check to see if the status changed and if the new tracking is completed and
                ////perform dynamic assignments

                if (pEntContModTracking.LessonTracking != null)
                {
                    ILessonTrackingSerializer serializer = new LessonTrackingSerializerFactory()
                                                           .Create(pEntContModTracking.ContentType,
                                                                   pEntContModTracking.ContentModuleId,
                                                                   pEntContModTracking.UserID,
                                                                   pEntContModTracking.UserFirstLastName);

                    if (serializer != null)
                    {
                        pEntContModTracking.UserDataXML = serializer.WriteLessonTracking(pEntContModTracking);
                    }
                }

                var result = EditTracking(pEntContModTracking);

                //if (result != null)
                //{
                //    entContModTrackingReturn = pEntContModTracking;
                //    if (pEntContModTracking.IsCompleted() && result.CurrentCompletionStatus != result.PreviousCompletionStatus)
                //    {
                //        GotoDynamicAssignment(pEntContModTracking.ClientId, pEntContModTracking.ContentModuleId, result.LearnerId, pEntContModTracking.IsForAdminPreview);
                //    }
                //}

                break;

            case ContentModuleTracking.Method.GenerateLog:

                GenerateLog(pEntContModTracking);

                break;

            case ContentModuleTracking.Method.UpdateScannedFileName:
                entContModTrackingReturn = adaptorContModTracking.UpdateScannedFileName(pEntContModTracking);
                break;

            default:
                entContModTrackingReturn = null;
                break;
            }
            return(entContModTrackingReturn);
        }