コード例 #1
0
        public async Task <string> SaveRecurssionData([FromBody] RecurssionScreenData data)
        {
            try
            {
                _telemetry.TrackEvent("SaveRecurssionData");
                await _dbHelper.SaveEditRecurssionDataAsync(data);

                return("true");
            }
            catch (Exception e)
            {
                _telemetry.TrackEvent("SaveRecurssionData Exception " + e);
                return("false");
            }
        }
コード例 #2
0
        /// <summary>
        /// Get the data from the Recurrence able storage based on the email id.
        /// </summary>
        /// <param name="email">email id of the creator of the reflection.</param>
        /// <returns>RecurssionScreenData model.</returns>
        public async Task <List <RecurssionScreenData> > GetRecurrencePostsDataAsync(string email)
        {
            _telemetry.TrackEvent("GetRecurrencePostsDataAsync");
            try
            {
                ReflectionDataRepository    reflectionDataRepository = new ReflectionDataRepository(_configuration, _telemetry);
                QuestionsDataRepository     questionsDataRepository  = new QuestionsDataRepository(_configuration, _telemetry);
                RecurssionDataRepository    recurssionDataRepository = new RecurssionDataRepository(_configuration, _telemetry);
                List <ReflectionDataEntity> allActiveRefs            = await reflectionDataRepository.GetAllActiveReflection(email);

                List <Guid?> allActiveRefIDs                = allActiveRefs.Select(c => c.ReflectionID).ToList();
                List <Guid?> allActiveQuestionIDs           = allActiveRefs.Select(c => c.QuestionID).ToList();
                List <QuestionsDataEntity> allQuestionsData = await questionsDataRepository.GetAllQuestionData(allActiveQuestionIDs);

                List <RecurssionDataEntity> allRecurssionData = await recurssionDataRepository.GetAllRecurssionData(allActiveRefIDs);

                List <RecurssionScreenData> screenData = new List <RecurssionScreenData>();
                foreach (var rec in allRecurssionData)
                {
                    RecurssionScreenData recurssionScreenData = new RecurssionScreenData();
                    recurssionScreenData.RefID = rec.ReflectionID;
                    var reflection = await reflectionDataRepository.GetReflectionData(rec.ReflectionID);

                    recurssionScreenData.CreatedBy                 = reflection.CreatedBy;
                    recurssionScreenData.RefCreatedDate            = reflection.RefCreatedDate;
                    recurssionScreenData.Privacy                   = reflection.Privacy;
                    recurssionScreenData.Question                  = allQuestionsData.Where(c => c.QuestionID.ToString() == reflection.QuestionID.ToString()).Select(d => d.Question).FirstOrDefault().ToString();
                    recurssionScreenData.ExecutionDate             = rec.ExecutionDate;
                    recurssionScreenData.ExecutionTime             = rec.ExecutionTime;
                    recurssionScreenData.NextExecutionDate         = rec.NextExecutionDate;
                    recurssionScreenData.RecurssionType            = rec.RecursstionType;
                    recurssionScreenData.CustomRecurssionTypeValue = rec.CustomRecurssionTypeValue;
                    recurssionScreenData.ScheduleId                = rec.ScheduleId;
                    if (recurssionScreenData.RecurssionType != null && recurssionScreenData.NextExecutionDate != null)
                    {
                        screenData.Add(recurssionScreenData);
                    }
                }

                return(screenData);
            }
            catch (Exception ex)
            {
                _telemetry.TrackException(ex);
                return(null);
            }
        }
コード例 #3
0
        /// <summary>
        /// Save Edit Recursion Data Async.
        /// </summary>
        /// <param name="reflection">reflection.</param>
        /// <returns>.</returns>
        public async Task SaveEditRecurssionDataAsync(RecurssionScreenData reflection)
        {
            try
            {
                _telemetry.TrackEvent("SaveEditRecurssionDataAsync");
                ReflectionDataRepository reflectionDataRepository = new ReflectionDataRepository(_configuration, _telemetry);
                RecurssionDataRepository recurssionDataRepository = new RecurssionDataRepository(_configuration, _telemetry);
                var reflectiondata = await reflectionDataRepository.GetReflectionData(reflection.RefID);

                var recurssion = await recurssionDataRepository.GetRecurssionData(reflectiondata.RecurrsionID);

                ReflectionDataEntity reflectionDataEntity = new ReflectionDataEntity();
                RecurssionDataEntity recurssionDataEntity = new RecurssionDataEntity();
                var reflectionid = Guid.NewGuid();
                var recurrsionid = Guid.NewGuid();
                reflectionDataEntity = reflectiondata;
                reflectionDataEntity.ReflectionID   = reflectionid;
                reflectionDataEntity.RefCreatedDate = DateTime.Now;
                reflectionDataEntity.RecurrsionID   = recurrsionid;
                reflectionDataEntity.RowKey         = Guid.NewGuid().ToString();
                await reflectionDataRepository.CreateAsync(reflectionDataEntity);

                recurssionDataEntity = recurssion;
                recurssionDataEntity.ReflectionID              = reflectionid;
                recurssionDataEntity.CreatedDate               = DateTime.Now;
                recurssionDataEntity.RecurssionID              = recurrsionid;
                recurssionDataEntity.RecursstionType           = reflection.RecurssionType;
                recurssionDataEntity.CustomRecurssionTypeValue = reflection.CustomRecurssionTypeValue;
                recurssionDataEntity.RowKey            = Guid.NewGuid().ToString();
                recurssionDataEntity.NextExecutionDate = reflection.NextExecutionDate;
                await recurssionDataRepository.CreateAsync(recurssionDataEntity);

                recurssion.NextExecutionDate = null;
                await recurssionDataRepository.CreateOrUpdateAsync(recurssion);
            }
            catch (Exception ex)
            {
                _telemetry.TrackException(ex);
            }
        }