/// <summary> /// Method to delete answer /// </summary> /// <param name="answerDTO"></param> /// <returns></returns> public IAnswerDTO Delete(IAnswerDTO answerDTO) { using (var context = new BufferOverflowDBEntities()) { var deleteAnswer = context.Answers .SingleOrDefault(a => a.Id == answerDTO.Id); if (deleteAnswer != null) { // Delete Vote var deleteVote = context.Votes.Where(v => v.AnswerId == answerDTO.Id).ToList(); foreach (var vote in deleteVote) { context.Votes.Remove(vote); context.SaveChanges(); } // Delete Answer var answer = context.Answers.Remove(deleteAnswer); context.SaveChanges(); var question = context.Questions.SingleOrDefault(q => q.Id == answer.QuestionId); question.AnswerCount--; context.SaveChanges(); EntityConverter.FillDTOFromEntity(answer, answerDTO); } return(answerDTO); } }
public OperationResult <IAnswerDTO> Edit(IAnswerDTO answerDTO) { OperationResult <IAnswerDTO> retVal = null; try { IAnswerDAC answerDAC = (IAnswerDAC)DACFactory.Instance.Create(DACType.AnswerDAC); IAnswerDTO resultDTO = answerDAC.Edit(answerDTO); if (resultDTO != null) { retVal = OperationResult <IAnswerDTO> .CreateSuccessResult(resultDTO); } else { retVal = OperationResult <IAnswerDTO> .CreateFailureResult("Failed to edit!"); } } catch (DACException dacEx) { retVal = OperationResult <IAnswerDTO> .CreateErrorResult(dacEx.Message, dacEx.StackTrace); } catch (Exception ex) { ExceptionManager.HandleException(ex); retVal = OperationResult <IAnswerDTO> .CreateErrorResult(ex.Message, ex.StackTrace); } return(retVal); }
public IHttpActionResult Create([FromBody] Answers answer) { answer.Created = DateTime.Now; IAnswerDTO answerDTO = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO); EntityConverter.FillDTOFromEntity(answer, answerDTO); IAnswerFacade answerFacade = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade); OperationResult <IAnswerDTO> result = answerFacade.Create(answerDTO); if (result.ResultType == OperationResultType.Failure) { string failed = JsonConvert.SerializeObject(new { success = false, data = result.Message }); return(BadRequest(failed)); } if (result.IsValid()) { //Answers answerEntity = new Answers(); EntityConverter.FillEntityFromDTO(result.Data, answer); string success = JsonConvert.SerializeObject(new { success = true, data = answer }); return(Ok(success)); } string jsonObj = JsonConvert.SerializeObject(new { success = false, data = result.Message }); return(BadRequest(jsonObj)); }
public IHttpActionResult Delete(int id) { IAnswerDTO answer = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO); answer.Id = id; IAnswerFacade answerFacade = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade); OperationResult <IAnswerDTO> result = answerFacade.Delete(answer); if (result.ResultType == OperationResultType.Failure) { string failed = JsonConvert.SerializeObject(new { success = false, data = result.Message }); return(BadRequest(failed)); } if (result.IsValid()) { Answers answerModel = new Answers(); EntityConverter.FillEntityFromDTO(result.Data, answerModel); string success = JsonConvert.SerializeObject(new { success = true, data = answerModel }); return(Ok(success)); } string jsonObj = JsonConvert.SerializeObject(new { success = false, data = result.Message }); return(BadRequest(jsonObj)); }
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); } }
public IAnswerDTO Edit(IAnswerDTO answerDTO) { using (var context = new BufferOverflowDBEntities()) { var answerEntity = context.Answers.SingleOrDefault(a => a.Id == answerDTO.Id); if (answerEntity != null) { EntityConverter.FillEntityFromDTO(answerDTO, answerEntity); } return(answerDTO); } }
public IHttpActionResult Edit([FromBody] IAnswerDTO answer) { answer.Created = DateTime.Now; IAnswerFacade answerFacade = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade); OperationResult <IAnswerDTO> result = answerFacade.Edit(answer); if (result.ResultType == OperationResultType.Failure) { return(BadRequest(result.Message)); } if (result.IsValid()) { return(Ok(result.Data)); } return(BadRequest(result.Message)); }
/// <summary> /// Method to create answer /// </summary> /// <param name="answerDTO"></param> /// <returns></returns> public IAnswerDTO Create(IAnswerDTO answerDTO) { using (var context = new BufferOverflowDBEntities()) { Answers answerEntity = new Answers(); EntityConverter.FillEntityFromDTO(answerDTO, answerEntity); var answer = context.Answers.Add(answerEntity); context.SaveChanges(); if (answer != null) { var question = context.Questions.SingleOrDefault(q => q.Id == answer.QuestionId); question.AnswerCount++; context.SaveChanges(); EntityConverter.FillDTOFromEntity(answer, answerDTO); } return((answerDTO.Id != 0) ? answerDTO : null);; } }
public IHttpActionResult GetAnswers([FromUri] int questionId) { IAnswerDTO answer = (IAnswerDTO)DTOFactory.Instance.Create(DTOType.AnswerDTO); answer.QuestionId = questionId; IAnswerFacade answerFacade = (IAnswerFacade)FacadeFactory.Instance.Create(FacadeType.AnswerFacade); OperationResult <List <IDataDTO> > result = answerFacade.GetAnswers(answer); if (result.ResultType == OperationResultType.Failure) { string failed = JsonConvert.SerializeObject(new { success = false, data = result.Message }); return(BadRequest(failed)); } if (result.IsValid()) { List <Data> dataList = new List <Data>(); foreach (var dataDTO in result.Data) { Data data = new Data(); EntityConverter.FillEntityFromDTO(dataDTO.AnswerDetail, data.AnswerDetail); EntityConverter.FillEntityFromDTO(dataDTO.UserDetail, data.UserDetail); EntityConverter.FillEntityFromDTO(dataDTO.VoteDetail, data.VoteDetail); data.TotalVote = dataDTO.TotalVote; dataList.Add(data); } string success = JsonConvert.SerializeObject(new { success = true, data = dataList }); return(Ok(success)); } string jsonObj = JsonConvert.SerializeObject(new { success = false, data = result.Message }); return(BadRequest(jsonObj)); }
public OperationResult <List <IDataDTO> > GetAnswers(IAnswerDTO answerDTO) { IAnswerBDC answerBDC = (IAnswerBDC)BDCFactory.Instance.Create(BDCType.AnswerBDC); return(answerBDC.GetAnswers(answerDTO)); }
public OperationResult <IAnswerDTO> Edit(IAnswerDTO answerDTO) { IAnswerBDC answerBDC = (IAnswerBDC)BDCFactory.Instance.Create(BDCType.AnswerBDC); return(answerBDC.Edit(answerDTO)); }