public void Add(QuestionaireUserAnswer answer) { string sql = $@"SELECT count(*) from QuestionaireUserAnswer where ContractGuid= @ContractGuid and QuestionaireMasterGuid =@QuestionaireMasterGuid "; var result = _context.Connection.QueryFirstOrDefault <int>(sql, new { ContractGuid = answer.ContractGuid, QuestionaireMasterGuid = answer.QuestionaireMasterGuid }); if (result == 0) { string insertQuery = $@"INSERT INTO [dbo].[QuestionaireUserAnswer] ( ContractGuid, QuestionaireMasterGuid , ManagerUserGuid , ContractCloseApprovalGuid , RepresentativeType , Questions , Answer , Notes , CreatedBy , UpdatedBy , CreatedOn , UpdatedOn , Status ) VALUES ( @ContractGuid , @QuestionaireMasterGuid , @ManagerUserGuid , @ContractCloseApprovalGuid , @RepresentativeType , @Questions , @Answer , @Notes , @CreatedBy , @UpdatedBy , @CreatedOn , @UpdatedOn , @Status )"; _context.Connection.Execute(insertQuery, answer); } else { Update(answer); } }
public void Update(QuestionaireUserAnswer answer) { string updateQuery = @"update QuestionaireUserAnswer set ContractGuid =@ContractGuid, QuestionaireMasterGuid =@QuestionaireMasterGuid, ManagerUserGuid =@ManagerUserGuid, ContractCloseApprovalGuid =@ContractCloseApprovalGuid, RepresentativeType =@RepresentativeType, Questions =@Questions, Answer =@Answer, Notes =@Notes, CreatedBy =@CreatedBy, UpdatedBy =@UpdatedBy, CreatedOn =@CreatedOn, UpdatedOn =@UpdatedOn, Status =@Status where QuestionaireMasterGuid = @QuestionaireMasterGuid "; _context.Connection.Execute(updateQuery, answer); }
private Guid Post(ContractCloseOutViewModel viewModel) { Guid currentUser = UserHelper.CurrentUserGuid(HttpContext); Guid createdBy = UserHelper.CurrentUserGuid(HttpContext); Guid updatedBy = UserHelper.CurrentUserGuid(HttpContext); DateTime createdOn = CurrentDateTimeHelper.GetCurrentDateTime(); DateTime updatedOn = CurrentDateTimeHelper.GetCurrentDateTime(); var modelData = new List <QuestionaryAnswerViewModel>(); var modelSubData = new List <QuestionaryAnswerViewModel>(); var projectManager = _configuration.GetSection("ContractRepresentatives").GetValue <string>("ProjectManager"); var contractRepresentative = _configuration.GetSection("ContractRepresentatives").GetValue <string>("ContracRepresentative"); var accountingRepresentative = _configuration.GetSection("ContractRepresentatives").GetValue <string>("AccountRepresentative"); if (viewModel.ProjectManagerQuestions != null && viewModel.RepresentativeType == projectManager) { modelData.AddRange(viewModel.ProjectManagerQuestions.Where(x => !string.IsNullOrEmpty(x.Answer))); } if (viewModel.ContractRepresentativeQuestions != null && viewModel.RepresentativeType == contractRepresentative) { modelData.AddRange(viewModel.ContractRepresentativeQuestions.Where(x => !string.IsNullOrEmpty(x.Answer))); } if (viewModel.AccountingRepresentativeQuestions != null && viewModel.RepresentativeType == accountingRepresentative) { modelData.AddRange(viewModel.AccountingRepresentativeQuestions.Where(x => !string.IsNullOrEmpty(x.Answer))); } if (viewModel.SubQuestions != null && viewModel.RepresentativeType == projectManager) { modelSubData.AddRange(viewModel.SubQuestions.Where(x => !string.IsNullOrEmpty(x.Answer))); } foreach (var item in modelData) { string approvalStatus = ""; if (item.Answer == "No") { if (item.OrderNumber == 1 && item.RepresentativeType == projectManager) { approvalStatus = ApprovalStatus.APPROVED.ToString(); modelSubData = null; } else { approvalStatus = ApprovalStatus.UNAPPROVED.ToString(); } } else { approvalStatus = ApprovalStatus.APPROVED.ToString(); } var contractCloseApproval = _contractCloseApprovalService.GetByNormalizedValue(approvalStatus); var model = new QuestionaireUserAnswer { Answer = item.Answer, ContractCloseApprovalGuid = contractCloseApproval.ContractCloseApprovalGuid, ContractGuid = viewModel.ContractGuid, ManagerUserGuid = currentUser, QuestionaireMasterGuid = item.QuestionaireMasterGuid, Questions = item.Questions, RepresentativeType = item.RepresentativeType, Status = contractCloseApproval.NormalizedValue, Notes = item.Notes, CreatedOn = createdOn, CreatedBy = createdBy, UpdatedBy = updatedBy, UpdatedOn = updatedOn }; _questionaireUserAnswerService.Add(model); } if (modelSubData != null) { if (modelSubData.Count() > 0) { foreach (var item in modelSubData.Where(x => x.Answer != null)) { string approvalStatus = ""; if (item.Answer == "No") { approvalStatus = ApprovalStatus.UNAPPROVED.ToString(); } else { approvalStatus = ApprovalStatus.APPROVED.ToString(); } var contractCloseApproval = _contractCloseApprovalService.GetByNormalizedValue(approvalStatus); var model = new QuestionaireUserAnswer { Answer = item.Answer, ContractCloseApprovalGuid = contractCloseApproval.ContractCloseApprovalGuid, ContractGuid = viewModel.ContractGuid, ManagerUserGuid = currentUser, QuestionaireMasterGuid = item.QuestionaireMasterGuid, Questions = item.Questions, RepresentativeType = item.RepresentativeType, Status = contractCloseApproval.NormalizedValue, CreatedOn = createdOn, CreatedBy = createdBy, UpdatedBy = updatedBy, UpdatedOn = updatedOn }; _questionaireUserAnswerService.Add(model); } } } //For Notification AddNotification(viewModel); var savedAnswers = _questionaireUserAnswerService.GetByContractGuid(viewModel.ContractGuid); var resourceid = Guid.Empty; if (savedAnswers.Count() > 0) { if (viewModel.RepresentativeType == projectManager) { var projectManagerData = savedAnswers.FirstOrDefault(x => x.RepresentativeType == projectManager); resourceid = projectManagerData != null ? projectManagerData.QuestionaireUserAnswerGuid : Guid.Empty; Guid[] ids = new Guid[1]; ids[0] = viewModel.ContractGuid; _contractService.Disable(ids); } else if (viewModel.RepresentativeType == contractRepresentative) { var contractRepresentativeData = savedAnswers.FirstOrDefault(x => x.RepresentativeType == contractRepresentative); resourceid = contractRepresentativeData != null ? contractRepresentativeData.QuestionaireUserAnswerGuid : Guid.Empty; } else if (viewModel.RepresentativeType == accountingRepresentative) { var accountingRepresentativeData = savedAnswers.FirstOrDefault(x => x.RepresentativeType == accountingRepresentative); if (accountingRepresentativeData != null) { resourceid = accountingRepresentativeData.QuestionaireUserAnswerGuid; _contractService.CloseContractStatus(viewModel.ContractGuid); } } } return(resourceid); }
public void Add(QuestionaireUserAnswer answer) { _questionaireUserAnswerRepository.Add(answer); }