public OperationResult <IDataDTO> CreateVote(IVoteDTO voteDTO) { OperationResult <IDataDTO> retVal = null; try { IAnswerDAC answerDAC = (IAnswerDAC)DACFactory.Instance.Create(DACType.AnswerDAC); IDataDTO resultDTO = answerDAC.CreateVote(voteDTO); if (resultDTO != null) { retVal = OperationResult <IDataDTO> .CreateSuccessResult(resultDTO); } else { retVal = OperationResult <IDataDTO> .CreateFailureResult("Failed to edit!"); } } catch (DACException dacEx) { retVal = OperationResult <IDataDTO> .CreateErrorResult(dacEx.Message, dacEx.StackTrace); } catch (Exception ex) { ExceptionManager.HandleException(ex); retVal = OperationResult <IDataDTO> .CreateErrorResult(ex.Message, ex.StackTrace); } return(retVal); }
public IDataDTO CreateVote(IVoteDTO voteDTO) { using (var context = new BufferOverflowDBEntities()) { var voteEntity = context.Votes.SingleOrDefault(v => v.UserId == voteDTO.UserId && v.AnswerId == voteDTO.AnswerId); //context.Votes.Where(v => v.Id == voteDTO.Id).Distinct(); if (voteEntity == null) { Votes vote = new Votes(); EntityConverter.FillEntityFromDTO(voteDTO, vote); context.Votes.Add(vote); context.SaveChanges(); } else if (voteEntity.Vote != voteDTO.Vote) { voteEntity.Vote = voteDTO.Vote; context.SaveChanges(); } var countUp = context.Votes.Where(c => c.Vote == 1 && c.AnswerId == voteDTO.AnswerId).Count(); var countDown = context.Votes.Where(c => c.Vote == 2 && c.AnswerId == voteDTO.AnswerId).Count(); int totalVotes = countUp - countDown; IDataDTO dataDTO = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO); dataDTO.TotalVote = totalVotes; dataDTO.VoteDetail = voteDTO; return(dataDTO); } }
public OperationResult <IDataDTO> Details(IQuestionDTO questionDTO) { OperationResult <IDataDTO> retVal = null; try { IQuestionDAC questionDAC = (IQuestionDAC)DACFactory.Instance.Create(DACType.QuestionDAC); IDataDTO resultDTO = questionDAC.Details(questionDTO); if (resultDTO != null) { retVal = OperationResult <IDataDTO> .CreateSuccessResult(resultDTO); } else { retVal = OperationResult <IDataDTO> .CreateFailureResult("Failed to get details!"); } } catch (DACException dacEx) { retVal = OperationResult <IDataDTO> .CreateErrorResult(dacEx.Message, dacEx.StackTrace); } catch (Exception ex) { ExceptionManager.HandleException(ex); retVal = OperationResult <IDataDTO> .CreateErrorResult(ex.Message, ex.StackTrace); } return(retVal); }
public List <IDataDTO> GetAnswers(IAnswerDTO answerDTO) { using (var context = new BufferOverflowDBEntities()) { List <IDataDTO> listOfAnswers = null; var answerEntityList = context.Answers.Where(a => a.QuestionId == answerDTO.QuestionId).ToList(); if (answerEntityList != null) { listOfAnswers = new List <IDataDTO>(); foreach (var answerEntity in answerEntityList) { IAnswerDTO ansDTO = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO); EntityConverter.FillDTOFromEntity(answerEntity, ansDTO); // Getting user var userEntity = context.User.SingleOrDefault(u => u.Id == answerEntity.UserId); IUserDTO userDTO = (IUserDTO)DTOFactory.Instance.Create(DTOType.UserDTO); EntityConverter.FillDTOFromEntity(userEntity, userDTO); userDTO.Password = ""; // Getting votes var voteEntity = context.Votes.SingleOrDefault(v => v.UserId == userEntity.Id && v.AnswerId == answerEntity.Id); IVoteDTO voteDTO = (IVoteDTO)DTOFactory.Instance.Create(DTOType.VoteDTO); if (voteEntity != null) { EntityConverter.FillDTOFromEntity(voteEntity, voteDTO); } else { voteDTO.Vote = 0; } var countUp = context.Votes.Where(c => c.Vote == 1 && c.AnswerId == voteDTO.AnswerId).Count(); var countDown = context.Votes.Where(c => c.Vote == 2 && c.AnswerId == voteDTO.AnswerId).Count(); int totalVotes = countUp - countDown; IDataDTO dataDTO = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO); dataDTO.AnswerDetail = ansDTO; dataDTO.UserDetail = userDTO; dataDTO.VoteDetail = voteDTO; dataDTO.TotalVote = totalVotes; listOfAnswers.Add(dataDTO); } } Console.WriteLine("Hello hi " + listOfAnswers[0].TotalVote); return(listOfAnswers); } }
/// <summary> /// Method to get all questions /// </summary> /// <returns></returns> public List <IDataDTO> GetQuestions() { using (var context = new BufferOverflowDBEntities()) { List <IDataDTO> listOfQuestions = null; var questionEntityList = context.Questions.OrderByDescending(e => e.Created).ToList(); if (questionEntityList != null) { listOfQuestions = new List <IDataDTO>(); foreach (var questionEntity in questionEntityList) { IQuestionDTO questionDTO = (IQuestionDTO)DTOFactory.Instance.Create(DTOType.QuestionDTO); EntityConverter.FillDTOFromEntity(questionEntity, questionDTO); // Getting Question tags var tagsEntityList = context.TagRelation.Where(t => t.QuestionId == questionEntity.Id).ToList(); List <ITagsDTO> tagName = new List <ITagsDTO>(); foreach (var tags in tagsEntityList) { ITagsDTO tagDTO = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO); var tag = context.Tags.SingleOrDefault(t => t.Id == tags.TagId); EntityConverter.FillDTOFromEntity(tag, tagDTO); tagName.Add(tagDTO); } // Getting User IUserDTO userDTO = (IUserDTO)DTOFactory.Instance.Create(DTOType.UserDTO); var userEntity = context.User.SingleOrDefault(u => u.Id == questionEntity.UserId); EntityConverter.FillDTOFromEntity(userEntity, userDTO); IDataDTO dataDTO = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO); dataDTO.QuestionDetail = questionDTO; dataDTO.TagDetail = tagName; dataDTO.UserDetail = userDTO; listOfQuestions.Add(dataDTO); } } return(listOfQuestions); } }
/// <inheritdoc/> public async Task <(ReportDTO report, bool success)> ProcessData(IDataDTO dataDTO) { if (dataDTO == null) { return(null, false); } ReportDTO healthReport; try { healthReport = await GetHealthReport(dataDTO); await _registerReportCommandProducer.Send(healthReport); } catch { return(null, false); } return(healthReport, true); }
// Randomly generate health status of the patient. private Task <ReportDTO> GetHealthReport(IDataDTO dataDTO) { var generator = new Random(); var arrayOfHealthStatuses = Enum.GetValues(typeof(HealthStatus)); var healthStatus = (HealthStatus)arrayOfHealthStatuses.GetValue(generator.Next(0, arrayOfHealthStatuses.Length)); var accuracy = generator.Next(50, 101); string diseases = null; if (healthStatus == HealthStatus.Diseased) { switch (dataDTO.SensorDeviceType) { case "Temperature": diseases = RecognizeDiseasesByTemperature(); break; case "Acoustic": diseases = RecognizeDiseasesByAcoustic(); break; default: break; } } var healthReport = _mapper.Map <IDataDTO, ReportDTO>(dataDTO); healthReport.HealthStatus = healthStatus.ToString(); healthReport.HealthDescription = DataProcessorDictionary.GetHealthDescription(healthStatus); healthReport.Diseases = diseases; healthReport.Accuracy = accuracy; // Imitation of processing time (10 sec). Thread.Sleep(10000); return(Task.FromResult(healthReport)); }
/// <summary> /// Method to get question detail /// </summary> /// <param name="questionDTO"></param> /// <returns></returns> public IDataDTO Details(IQuestionDTO questionDTO) { using (var context = new BufferOverflowDBEntities()) { IDataDTO dataDTO = (IDataDTO)DTOFactory.Instance.Create(DTOType.DataDTO); var questionDetail = context.Questions.SingleOrDefault(q => q.Id == questionDTO.Id); if (questionDetail != null) { dataDTO.QuestionDetail = (IQuestionDTO)DTOFactory.Instance.Create(DTOType.QuestionDTO); EntityConverter.FillDTOFromEntity(questionDetail, dataDTO.QuestionDetail); // Geting Question tags var tagRelationEntity = context.TagRelation.Where(t => t.QuestionId == questionDetail.Id).ToList(); List <ITagsDTO> tags = new List <ITagsDTO>(); foreach (var tag in tagRelationEntity) { var tagEntity = context.Tags.SingleOrDefault(t => t.Id == tag.TagId); ITagsDTO tagsDTO = (ITagsDTO)DTOFactory.Instance.Create(DTOType.TagsDTO); EntityConverter.FillDTOFromEntity(tagEntity, tagsDTO); tags.Add(tagsDTO); } dataDTO.TagDetail = tags; // Getting User Detail var userEntity = context.User.SingleOrDefault(u => u.Id == questionDetail.UserId); dataDTO.UserDetail = (IUserDTO)DTOFactory.Instance.Create(DTOType.UserDTO); EntityConverter.FillDTOFromEntity(userEntity, dataDTO.UserDetail); } else { dataDTO.QuestionDetail.Id = 0; } return((dataDTO.QuestionDetail.Id != 0) ? dataDTO : null); } }