Ejemplo n.º 1
0
        public ACSessionDTO Save(ACSessionDTO session)
        {
            if (session == null)
            {
                throw new ArgumentNullException(nameof(session));
            }

            try
            {
                ValidationResult validationResult;
                if (IsValid(session, out validationResult))
                {
                    ACSessionModel sessionModel    = this.ACSessionModel;
                    bool           isTransient     = session.acSessionId == 0;
                    ACSession      sessionInstance = isTransient ? null : sessionModel.GetOneById(session.acSessionId).Value;
                    sessionInstance = this.ConvertDto(session, sessionInstance);
                    sessionModel.RegisterSave(sessionInstance, true);
                    return(new ACSessionDTO(sessionInstance));
                }

                var error = this.GenerateValidationError(validationResult);
                this.LogError("ACSession.Save", error);
                throw new FaultException <Error>(error, error.errorMessage);
            }
            catch (Exception ex)
            {
                Logger.Error("ACSession.Save", ex);
                throw;
            }
        }
Ejemplo n.º 2
0
        public SNMemberSaveAllDTO SaveAll(SNMemberDTO[] results)
        {
            results = results ?? new SNMemberDTO[0];

            var result  = new SNMemberSaveAllDTO();
            var faults  = new List <string>();
            var created = new List <SNMember>();

            var            sessionModel   = SNSessionMemberModel;
            ACSessionModel acSessionModel = ACSessionModel;

            foreach (var appletResultDTO in results)
            {
                ValidationResult validationResult;
                var isValidDto   = IsValid(appletResultDTO, out validationResult);
                var profileModel = new VCFProfileDTO {
                    xmlProfile = appletResultDTO.participantProfile
                };
                ValidationResult profileValidationResult;
                var isValidProfile = IsValid(profileModel, out profileValidationResult);
                if (isValidDto && isValidProfile)
                {
                    var isTransient  = appletResultDTO.snMemberId == 0;
                    var appletResult = isTransient ? null : sessionModel.GetOneById(appletResultDTO.snMemberId).Value;
                    appletResult = ConvertDto(appletResultDTO, appletResult, acSessionModel);
                    sessionModel.RegisterSave(appletResult);
                    created.Add(appletResult);
                }
                else
                {
                    if (!isValidDto)
                    {
                        faults.AddRange(UpdateResultToString(validationResult));
                    }
                    if (!isValidProfile)
                    {
                        faults.AddRange(UpdateResultToString(profileValidationResult));
                    }
                }
            }

            if (created.Any())
            {
                //var companyId = results.FirstOrDefault(x => x.companyId != 0).With(x => x.companyId);
                //if (companyId != default(int))
                //{
                //    IoC.Resolve<RealTimeNotificationModel>().NotifyClientsAboutChangesInTable<SNMember>(NotificationType.Update, companyId, 0);
                //}

                result.saved = created.Select(x => new SNMemberDTO(x)).ToArray();
            }

            if (faults.Any())
            {
                result.faults = faults.ToArray();
            }

            return(result);
        }
Ejemplo n.º 3
0
        public async Task SaveAll(TestSummaryResultDTO testResult)
        {
            if (testResult == null)
            {
                throw new ArgumentNullException(nameof(testResult));
            }
            if (testResult.testResults == null)
            {
                testResult.testResults = new TestResultDTO[0];
            }

            try
            {
                if (!IsValid(testResult, out var valResult))
                {
                    return;
                }

                Test      test      = TestModel.GetOneById(testResult.testId).Value;
                ACSession acSession = ACSessionModel.GetOneById(testResult.acSessionId).Value;
                if (acSession == null)
                {
                    throw new ArgumentException($"There are not session with acSessionId : {testResult.acSessionId}");
                }

                int acSessionId = acSession.Id;

                foreach (var appletResultDTO in testResult.testResults)
                {
                    appletResultDTO.acSessionId = testResult.acSessionId;
                    if (IsValid(appletResultDTO, out var validationResult))
                    {
                        var appletResult = ConvertDto(appletResultDTO, test, acSessionId);
                        TestResultModel.RegisterSave(appletResult);
                        if (appletResultDTO.results != null)
                        {
                            SaveAll(appletResult, appletResultDTO.results);
                        }
                    }
                }
            }
            catch (ArgumentException ex)
            {
                Logger.Error("TestResultService.SaveAll: ", ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error($"TestResultService.SaveAll json={JsonConvert.SerializeObject(testResult)}", ex);

                throw;
            }
        }
Ejemplo n.º 4
0
        public async Task SaveAll(SurveySummaryResultDTO sResult)
        {
            if (sResult == null)
            {
                throw new ArgumentNullException(nameof(sResult));
            }
            if (sResult.surveyResults == null)
            {
                sResult.surveyResults = new SurveyResultDTO[0];
            }

            try
            {
                if (!IsValid(sResult, out ValidationResult valResult))
                {
                    return;
                }

                Survey    survey    = SurveyModel.GetOneById(sResult.surveyId).Value;
                ACSession acSession = ACSessionModel.GetOneById(sResult.acSessionId).Value;
                if (acSession == null)
                {
                    throw new ArgumentException($"There are not session with acSessionId : {sResult.acSessionId}");
                }
                int acSessionId = acSession.Id;

                foreach (var surveyResultDTO in sResult.surveyResults)
                {
                    surveyResultDTO.acSessionId = sResult.acSessionId;
                    if (IsValid(surveyResultDTO, out ValidationResult validationResult))
                    {
                        var surveyResult = ConvertDto(surveyResultDTO, survey, acSessionId);
                        SurveyResultModel.RegisterSave(surveyResult);

                        if (surveyResultDTO.results != null)
                        {
                            await SaveAllAsync(surveyResult, surveyResultDTO.results);
                        }
                    }
                }
            }
            catch (ArgumentException ex)
            {
                Logger.Error("SurveyResultService.SaveAll: ", ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error($"SurveyResultService.SaveAll json={JsonConvert.SerializeObject(sResult)}", ex);

                throw;
            }
        }
Ejemplo n.º 5
0
 private static SNMember ConvertDto(SNMemberDTO sessionMember, SNMember instance, ACSessionModel acSessionModel)
 {
     instance = instance ?? new SNMember();
     instance.ParticipantProfile = sessionMember.participantProfile;
     instance.Participant        = sessionMember.participant;
     instance.DateCreated        = DateTime.Now;
     instance.IsBlocked          = sessionMember.isBlocked;
     instance.ACSessionId        = acSessionModel.GetOneById(sessionMember.acSessionId).Value.With(x => x.Id);
     return(instance);
 }
Ejemplo n.º 6
0
        public IEnumerable <QuizSessionDTO> GetQuizSessionsByUserId()
        {
            var userId = int.Parse(User.Identity.GetUserId());

            return(ACSessionModel.GetQuizSessionsByUserId(userId).Select(x => new QuizSessionDTO(x)));
        }
Ejemplo n.º 7
0
        public IEnumerable <TestSessionDTO> GetTestSessionsByMeetingUrl(string meetingUrl)
        {
            var userId = int.Parse(User.Identity.GetUserId());

            return(ACSessionModel.GetTestSessionsByUserIdMeetingUrl(userId, meetingUrl));
        }
Ejemplo n.º 8
0
        public IEnumerable <TestSessionDTO> GetTestSessionsByUserId()
        {
            var userId = int.Parse(User.Identity.GetUserId());

            return(ACSessionModel.GetTestSessionsByUserId(userId));
        }
Ejemplo n.º 9
0
        public IEnumerable <SurveySessionDTO> GetSurveySessionsByMeetingUrl(string meetingUrl)
        {
            var userId = int.Parse(User.Identity.GetUserId());

            return(ACSessionModel.GetSurveySessionsByUserIdMeetingUrl(userId, meetingUrl).Select(x => new SurveySessionDTO(x)));
        }
Ejemplo n.º 10
0
        public async Task <OperationResultDto> SaveAll(QuizSummaryResultDTO quizResult)
        {
            if (quizResult == null)
            {
                Logger.Fatal("QuizResultService.SaveAll: ArgumentNullException for quizResult");
                throw new ArgumentNullException(nameof(quizResult));
            }

            if (quizResult.quizResults == null)
            {
                quizResult.quizResults = new QuizResultDTO[0];
            }

            Logger.Info($"QuizResultService.SaveAll Start: AcSessionId {quizResult.acSessionId}, quizId : {quizResult.quizId}, companyId : {quizResult.companyId}, Count : {quizResult.quizResults.Length}");

            IList <string> errorMessages = new List <string>();

            try
            {
                //TRICK to get eventQuizMappingId
                var eventQuizMappingId = GetEventQuizMappingId(quizResult);
                //

                Quiz      quiz      = QuizModel.GetOneById(quizResult.quizId).Value;
                ACSession acSession = ACSessionModel.GetOneById(quizResult.acSessionId).Value;
                if (acSession == null)
                {
                    throw new ArgumentException($"There are not session with acSessionId : {quizResult.acSessionId}");
                }
                int acSessionId = acSession.Id;

                CompanyEventQuizMapping companyEventQuizMapping = null;
                if (eventQuizMappingId.HasValue && eventQuizMappingId.Value != 0)
                {
                    companyEventQuizMapping = EventQuizMappingModel.GetOneById(eventQuizMappingId.Value).Value;
                }

                if (!IsValid(quizResult, out ValidationResult validationSummaryDtoResult))
                {
                    errorMessages = UpdateResultToShortString(validationSummaryDtoResult);
                    return(OperationResultDto.Error(string.Join(";", errorMessages)));
                }

                foreach (var appletResultDTO in quizResult.quizResults)
                {
                    appletResultDTO.acSessionId = quizResult.acSessionId;
                    if (IsValid(appletResultDTO, out ValidationResult validationResult))
                    {
                        var appletResult = ConvertDto(appletResultDTO, quiz, acSessionId, companyEventQuizMapping);
                        QuizResultModel.RegisterSave(appletResult);

                        if (appletResultDTO.results != null)
                        {
                            await SaveAllAsync(appletResult, appletResultDTO.results);
                        }
                    }
                    else
                    {
                        errorMessages.AddRange(UpdateResultToShortString(validationResult));
                    }
                }
            }
            catch (ArgumentException ex)
            {
                Logger.Error("QuizResultService.SaveAll:", ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error($"QuizResultService.SaveAll json={JsonConvert.SerializeObject(quizResult)}", ex);

                throw;
            }

            return(errorMessages.Any()
                ? OperationResultDto.Error(string.Join(";", errorMessages))
                : OperationResultDto.Success());
        }