コード例 #1
0
        public QuestionnaireTemplate SubmitAnsweredTemplate(int userId, QuestionnaireTemplate answeredTemplate,
                                                            DateTime?now)
        {
            if (!now.HasValue)
            {
                now = Controller.GetServerDateTime();
            }
            QuestionnaireAnswers lattestQuestioannairesAnswers = QuestionnaireAnswersRepository
                                                                 .GetAsQueryable <QuestionnaireAnswers>().ToList()
                                                                 .FirstOrDefault(
                q =>
                q.UserId == userId &&
                (DateTime.Compare(q.Date, now.Value.Date) == 0));

            if (lattestQuestioannairesAnswers == null)
            {
                QuestionnaireAnswers answers = ExtractAnwsersFromAnsweredTemplate(answeredTemplate);

                try
                {
                    QuestionnaireAnswers processedAnswers = ProceessQuestionAnswers(userId, answers, now);
                    answeredTemplate.CoreScoreAnswer = GetLocalizedCoreScore(Constants.DEFAULT_QUESTIONNAIRE_LOCALE,
                                                                             processedAnswers.CoreScore);
                    UpadatePersistedValues(processedAnswers);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }


            return(answeredTemplate);
        }
コード例 #2
0
        public bool InsertDailyEnergyLevel(DailyEnergyLevel energyLevel)
        {
            try
            {
                DateTime now = Controller.GetServerDateTime();
                bool     todayEnergyLevelExist = DailyEnergyLevelRepository.GetAsQueryable <DailyEnergyLevel>().ToList()
                                                 .FirstOrDefault(e => (e.UserId == energyLevel.UserId) && (now.Day == e.Date.Day) &&
                                                                 (now.Month == e.Date.Month) && (now.Year == e.Date.Year)) != null;

                if (todayEnergyLevelExist)
                {
                    return(false);
                }

                GenericError error;
                DailyEnergyLevelRepository.InsertEntity(out error, energyLevel);

                if (error == null)
                {
                    MontlyInfoHandlingTemplate.UpdateEntityRecords(energyLevel);

                    YearlyInfoHandlingTemplate.UpdateEntityRecords(energyLevel);

                    EventsService.UpdateUserDates(energyLevel.UserId, null, Controller.GetServerDateTime());
                }

                return(error == null);
            }
            catch (Exception ex)
            {
                Logger.Controller.LogError(ex);
                ErrorClasses.Controller.GetUnknownError();
                return(false);
            }
        }
コード例 #3
0
        public void InsertDailyInfo(int userId, Model.DailyInfo.DailyInfo info, DateTime?now = null)
        {
            _log.LogInfo("InsertDailyInfo : " + info);
            try
            {
                info.Date   = now ?? Controller.GetServerDateTime();
                info.UserId = userId;

                //async
                GenericError error;
                var          alreadyExisted = UpdateOrInsert(out error, userId, info, info.Date);

                if (error == null)
                {
                    if (alreadyExisted)
                    {
                        // UpdateMonthlyInfoRecord(userId, info, now);
                        //  UpdateYearlyInfoRecord(userId, info, now);
                    }
                    else
                    {
                        //    InsertMonthlyInfoRecord(info);
                        //   InsertYearlyInfoRecord(info);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Controller.LogError(ex);
                throw;
            }
        }
コード例 #4
0
        private void UpadatePersistedValues(QuestionnaireAnswers questionnaireAnwsers)
        {
            GenericError error;

            QuestionnaireAnswersRepository.InsertEntity(out error, questionnaireAnwsers);

            if (error == null)
            {
                EventsService.UpdateUserDates(questionnaireAnwsers.UserId, Controller.GetServerDateTime(), null);
            }
        }
コード例 #5
0
        public Model.DailyInfo.DailyInfo GetTodaysData(int userId, DateTime getServerDateTime)
        {
            GenericError error;
            DateTime     now = Controller.GetServerDateTime();
            List <Model.DailyInfo.DailyInfo> todays =
                DailyInfoSummaryDataRepository.GetEntities(out error,
                                                           t => t.UserId == userId &&
                                                           t.Date.Day == now.Day &&
                                                           t.Date.Month == now.Month &&
                                                           t.Date.Year == now.Year);

            return(todays.Count == 0 ? new Model.DailyInfo.DailyInfo() : todays.Last());
        }
コード例 #6
0
        protected virtual bool CheckIfQuestionnaireAlreadyAnswered(int userId, DateTime?now)
        {
            if (!now.HasValue)
            {
                now = Controller.GetServerDateTime();
            }

            QuestionnaireAnswers lattestQuestioannairesAnswers = QuestionnaireAnswersRepository
                                                                 .GetAsQueryable <QuestionnaireAnswers>().ToList()
                                                                 .FirstOrDefault(q => q.UserId == userId && (DateTime.Compare(q.Date, now.Value.Date) == 0));

            return(lattestQuestioannairesAnswers != null);
        }
コード例 #7
0
        private ServiceDailyInfo AdaptDayData(List <Model.DailyInfo.DailyInfo> lattestDailyInfos)
        {
            var serviceAdaptedData = new ServiceDailyInfo();

            foreach (Model.DailyInfo.DailyInfo info in lattestDailyInfos)
            {
                serviceAdaptedData.Date = info.Date;
                serviceAdaptedData.Rest.Add(info.Rest);
                serviceAdaptedData.Travel.Add(info.Travel);
                serviceAdaptedData.Hotel.Add(info.Hotel);
                serviceAdaptedData.Sick.Add(info.Sick);
                serviceAdaptedData.Weight.Add(info.Weight);
            }
            serviceAdaptedData.TodaysDailyInfo =
                lattestDailyInfos.FirstOrDefault(
                    d => d.Date.Day == Controller.GetServerDateTime().Day);
            return(serviceAdaptedData);
        }
コード例 #8
0
        private QuestionnaireAnswers ProceessQuestionAnswers(int userId, QuestionnaireAnswers questionnaireAnwsers,
                                                             DateTime?now = null)
        {
            try
            {
                if (CalculateCoreScore(questionnaireAnwsers))
                {
                    FillSummaryData(questionnaireAnwsers);

                    questionnaireAnwsers.Date   = now ?? Controller.GetServerDateTime();
                    questionnaireAnwsers.UserId = userId;

                    return(questionnaireAnwsers);
                }
            }
            catch (Exception ex)
            {
                Logger.Controller.LogError(ex);
                ErrorClasses.Controller.GetUnknownError();
                throw;
            }
            throw new Exception();
        }
コード例 #9
0
 private DateTime GetDateTimeNow()
 {
     return(Controller.GetServerDateTime());
 }