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"); } }
/// <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); } }
/// <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); } }