public SurveyEntity CreateSurvey(int adminId, SurveyData surveyData) { var survey = new SurveyEntity(); if (new[] { surveyData.Name, surveyData.Info }.Any(entry => entry == null)) { throw new Exception("Important properties were not filled!"); } survey.AdminId = adminId; survey.Name = surveyData.Name; /* * var surveyInfo = new { * created = DateTime.UtcNow * }; */ var surveyInfo = JObject.Parse(surveyData.Info); surveyInfo["created"] = DateTime.UtcNow; survey.Info = surveyInfo.ToJson(); _context.Surveys.Add(survey); _context.SaveChanges(); return(survey); }
public ActionResult DeleteSurvey(long id, FormCollection collection) { try { SurveyFactory DeleteSurvey = new SurveyFactory(); SurveyEntity Survey = new SurveyEntity(); Survey = DeleteSurvey.GetSurveyById(id); DataLayer.tblSurvey NewSurvey = new DataLayer.tblSurvey(); NewSurvey.SurveyId = id; NewSurvey.AnsTypeId = Survey.AnsTypeId; NewSurvey.SurveyName = Survey.SurveyName; NewSurvey.SurveyDescription = Survey.SurveyDescription; NewSurvey.CompletionText = Survey.CompletionText; NewSurvey.IsNeverExpire = Survey.IsNeverExpire; NewSurvey.ExpiryDate = Survey.ExpiryDate; NewSurvey.CreatedDate = Survey.CreatedDate; NewSurvey.CreatedBy = Survey.CreatedBy; NewSurvey.UpdatedDate = DateTime.Now; NewSurvey.UpdatedBy = null; NewSurvey.IsActive = false; // IsActive will be false in delete record DeleteSurvey.SaveSurvey(NewSurvey); return(RedirectToAction("Survey")); } catch { return(View()); } }
public string SurveyValidity(string SurveyName, long?SurveyId) { List <SurveyEntity> usrList = new List <SurveyEntity>(); SurveyEntity Survey = new SurveyEntity(); if (SurveyId != null) { Survey = db.tblSurveys.Where(x => x.SurveyName.ToLower() == SurveyName.ToLower() && x.SurveyId != SurveyId).Select(x => new SurveyEntity() { SurveyName = x.SurveyName, }).FirstOrDefault(); } else { Survey = db.tblSurveys.Where(x => x.SurveyName.ToLower() == SurveyName.ToLower()).Select(x => new SurveyEntity() { SurveyName = x.SurveyName, }).FirstOrDefault(); } if (Survey != null) { return("Survey already exist."); } else { return("Success"); } }
public void CreateOrUpdate(UserEntity userEntity, SurveyEntity SurveyEntity) { if (!SurveyValidator(SurveyEntity)) { throw new BadRequestException("Cannot create or update surveys"); } foreach (var Id in SurveyEntity.ClassGuids) { Class Class = context.Classes.FirstOrDefault(c => c.Id == Id); if (Class == null) { throw new BadRequestException("Class Not Found"); } if (SurveyEntity.OpenedDate != DateTime.MinValue) { Class.OpenedDate = DateTime.Parse(SurveyEntity.OpenedDate.ToString()); } if (SurveyEntity.ClosedDate != DateTime.MinValue) { Class.ClosedDate = DateTime.Parse(SurveyEntity.ClosedDate.ToString()); } Class.Semester = GetSemester(Class.OpenedDate.Value); //var StudentClasses = context.StudentClasses.Where(sc => sc.ClassId == Id).ToList(); if (context.VersionSurveys.FirstOrDefault(vs => vs.Id == SurveyEntity.VersionSurveyId) == null) { throw new BadRequestException("Version Survey Not Found"); } Class.VersionSurveyId = SurveyEntity.VersionSurveyId; } context.SaveChanges(); }
/// <summary> /// 更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <bool> UpdateAsync(SurveyEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "Update Survey SET " + "SurveyName = @SurveyName," + "Description = @Description," + "FileName = @FileName," + "IPRepeat = @IPRepeat," + "CreateDate = @CreateDate," + "EndTime = @EndTime," + "IsOpen = @IsOpen," + "NeedLogin = @NeedLogin," + "PresentPoint = @PresentPoint," + "LockIPType = @LockIPType," + "SetIPLock = @SetIPLock," + "LockUrl = @LockUrl," + "SetPassword = @SetPassword," + "Template = @Template," + "QuestionField = @QuestionField," + "QuestionMaxID = @QuestionMaxID" + " WHERE " + "SurveyID = @SurveyID"; return(await Task.Run(() => _DB.ExeSQLResult(strSQL, dict))); }
// GET: Survey/Delete/5 public ActionResult DeleteSurvey(long id) { SurveyFactory EditSurvey = new SurveyFactory(); SurveyEntity topic = new SurveyEntity(); topic = EditSurvey.GetSurveyById(id); return(View(topic)); }
/// <summary> /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <int> InsertAsync(SurveyEntity entity) { if (entity.SurveyID <= 0) { entity.SurveyID = GetNewID(); } Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "insert into Survey (" + "SurveyID," + "SurveyName," + "Description," + "FileName," + "IPRepeat," + "CreateDate," + "EndTime," + "IsOpen," + "NeedLogin," + "PresentPoint," + "LockIPType," + "SetIPLock," + "LockUrl," + "SetPassword," + "Template," + "QuestionField," + "QuestionMaxID) " + "values(" + "@SurveyID," + "@SurveyName," + "@Description," + "@FileName," + "@IPRepeat," + "@CreateDate," + "@EndTime," + "@IsOpen," + "@NeedLogin," + "@PresentPoint," + "@LockIPType," + "@SetIPLock," + "@LockUrl," + "@SetPassword," + "@Template," + "@QuestionField," + "@QuestionMaxID)"; if (await Task.Run(() => _DB.ExeSQLResult(strSQL, dict))) { return(DataConverter.CLng(entity.SurveyID)); } return(-1); }
public void CreateOrUpdate(UserEntity userEntity, SurveyEntity SurveyEntity) { foreach (var Id in SurveyEntity.ClassGuids) { Class Class = context.Classes.FirstOrDefault(c => c.Id == Id); Class.OpenedDate = DateTime.Parse(SurveyEntity.OpenedDate.ToString()); Class.ClosedDate = DateTime.Parse(SurveyEntity.ClosedDate.ToString()); Class.Semester = GetSemester(Class.OpenedDate.Value); //var StudentClasses = context.StudentClasses.Where(sc => sc.ClassId == Id).ToList(); Class.VersionSurveyId = SurveyEntity.VersionSurveyId; } context.SaveChanges(); }
public ActionResult CreateSurvey(SurveyEntity Survey) { try { if (ModelState.IsValid) { ValidationFactory VF = new ValidationFactory(); SurveyFactory AddSurvey = new SurveyFactory(); DataLayer.tblSurvey NewSurvey = new DataLayer.tblSurvey(); DataLayer.tblChannel NewChannel = new DataLayer.tblChannel(); string Message = VF.SurveyValidity(Survey.SurveyName, null); if (Message != "Success") { ModelState.AddModelError("SurveyName", Message); GetSurveyAnswerType(); return(View(Survey)); } else { NewSurvey.AnsTypeId = Survey.AnsTypeId; NewSurvey.SurveyName = Survey.SurveyName; NewSurvey.SurveyDescription = Survey.SurveyDescription; NewSurvey.CompletionText = Survey.CompletionText; NewSurvey.IsNeverExpire = Survey.IsNeverExpire; NewSurvey.ExpiryDate = Survey.ExpiryDate; NewSurvey.CreatedDate = DateTime.Now; NewSurvey.CreatedBy = null; NewSurvey.UpdatedDate = null; NewSurvey.UpdatedBy = null; NewSurvey.IsActive = true; AddSurvey.SaveSurvey(NewSurvey); return(RedirectToAction("Survey")); } } else { GetSurveyAnswerType(); return(View(Survey)); } } catch (Exception Ex) { GetSurveyAnswerType(); return(View()); } finally { GetSurveyAnswerType(); } }
public static Survey ToSurveyModel(this SurveyEntity surveyEntity) { return(new Survey { CreatedDate = surveyEntity.CreatedDate, IsCompleted = surveyEntity.IsCompleted, FinishedOnDate = surveyEntity.FinishedOnDate, IsDeleted = surveyEntity.IsDeleted, LastModifiedDate = surveyEntity.LastModifiedDate, SurveyId = surveyEntity.SurveyId, UserEmail = surveyEntity.UserEmail, VariantId = surveyEntity.VariantId }); }
/// <summary> /// 获取实体 /// </summary> /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param> /// <param name="dict">参数的名/值集合</param> /// <returns></returns> public virtual SurveyEntity GetEntity(string strWhere, Dictionary <string, object> dict = null) { SurveyEntity obj = null; string strSQL = "select top 1 * from Survey where 1=1 " + strWhere; using (NullableDataReader reader = _DB.GetDataReader(strSQL, dict)) { if (reader.Read()) { obj = GetEntityFromrdr(reader); } } return(obj); }
/// <summary> /// 获取实体(异步方式) /// </summary> /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param> /// <param name="dict">参数的名/值集合</param> /// <returns></returns> public virtual async Task <SurveyEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null) { SurveyEntity obj = null; string strSQL = "select top 1 * from Survey where 1=1 " + strWhere; using (NullableDataReader reader = await Task.Run(() => _DB.GetDataReader(strSQL, dict))) { if (reader.Read()) { obj = GetEntityFromrdr(reader); } } return(obj); }
private async Task <Survey> InsertSurveyAsync(string email) { if (string.IsNullOrWhiteSpace(email)) { throw new ArgumentNullException("Email is mandatory!!"); } Random rnd = new Random(); var user = await _dbContext.User.FindAsync(email); var userSurveys = await _dbContext.Survey.Where(survey => survey.UserEmail == email).ToListAsync(); var currentSurvey = userSurveys.SingleOrDefault(survey => survey.IsCompleted == false); if (currentSurvey != null) { return(currentSurvey.ToSurveyModel()); } var variants = await _dbContext.Variant.ToListAsync(); if (userSurveys.Count > 0) { var userVariants = userSurveys.Select(survey => survey.VariantId); variants = await _dbContext.Variant.Where(variant => !userVariants.Contains(variant.VariantId)).ToListAsync(); } int r = rnd.Next(variants.Count); var nextVariant = variants[r]; var survey = new SurveyEntity() { VariantId = nextVariant.VariantId, UserEmail = email, IsCompleted = false, IsDeleted = false, CreatedDate = DateTime.UtcNow }; await _dbContext.Survey.AddAsync(survey); await _dbContext.SaveChangesAsync(); return(survey.ToSurveyModel()); }
public async Task GivenCollectionNameAndRecord_WhenCreate_ThenCreateSuccessful() { //?Given var collectionName = "Survey"; var record = new SurveyEntity(); SetupGetCollections(collectionName); _mockCollection.Setup(x => x.InsertOneAsync(record, null, It.IsAny <CancellationToken>())) .Verifiable(); //?When await _mongoService.Create(collectionName, record); //?Then _mockDb.VerifyAll(); _mockCollection.VerifyAll(); }
// GET: Survey/Edit/5 public ActionResult EditSurvey(long id) { try { SurveyFactory EditSurvey = new SurveyFactory(); SurveyEntity topic = new SurveyEntity(); topic = EditSurvey.GetSurveyById(id); return(View(topic)); } catch { return(View()); } finally { GetSurveyAnswerType(); } }
public SurveyEntity GetSurveyById(long Id) { SurveyEntity Survey = new SurveyEntity(); //Survey = db.tblSurveys.Where(x => x.SurveyId == Id).Select(x => new SurveyEntity() //{ // SurveyId = x.SurveyId, // SurveyName = x.SurveyName, // AnsTypeId = x.AnsTypeId, // SurveyDescription = x.SurveyDescription, // CompletionText = x.CompletionText, // IsNeverExpire = x.IsNeverExpire, // ExpiryDate = x.ExpiryDate, // CreatedBy = x.CreatedBy, // CreatedDate = x.CreatedDate, // UpdatedBy = x.UpdatedBy, // UpdatedDate = x.UpdatedDate, // IsActive = x.IsActive //}).FirstOrDefault(); Survey = (from s in db.tblSurveys join a in db.tblSurveyAnswerTypes on s.AnsTypeId equals a.AnsTypeId where s.SurveyId == Id select new SurveyEntity() { SurveyId = s.SurveyId, SurveyName = s.SurveyName, AnsTypeId = s.AnsTypeId, AnswerType = a.AnswerType, SurveyDescription = s.SurveyDescription, CompletionText = s.CompletionText, IsNeverExpire = s.IsNeverExpire, ExpiryDate = s.ExpiryDate, CreatedBy = s.CreatedBy, CreatedDate = s.CreatedDate, UpdatedBy = s.UpdatedBy, UpdatedDate = s.UpdatedDate, IsActive = s.IsActive }).FirstOrDefault(); return(Survey); }
public async Task GivenCollectionNameTheIdAndRecord_WhenUpdate_ThenUpdateSuccessful() { //?Given var collectionName = "Survey"; var id = "1234"; var record = new SurveyEntity(); SetupGetCollections(collectionName); _mockCollection.Setup(x => x.ReplaceOneAsync(It.IsAny <FilterDefinition <SurveyEntity> >(), record, It.IsAny <ReplaceOptions>(), It.IsAny <CancellationToken>())) .Verifiable(); //?When await _mongoService.Update(collectionName, id, record); //?Then _mockClient.VerifyAll(); _mockCollection.VerifyAll(); }
/// <summary> /// 把实体类转换成键/值对集合 /// </summary> /// <param name="entity"></param> /// <param name="dict"></param> private static void GetParameters(SurveyEntity entity, Dictionary <string, object> dict) { dict.Add("SurveyID", entity.SurveyID); dict.Add("SurveyName", entity.SurveyName); dict.Add("Description", entity.Description); dict.Add("FileName", entity.FileName); dict.Add("IPRepeat", entity.IPRepeat); dict.Add("CreateDate", entity.CreateDate); dict.Add("EndTime", entity.EndTime); dict.Add("IsOpen", entity.IsOpen); dict.Add("NeedLogin", entity.NeedLogin); dict.Add("PresentPoint", entity.PresentPoint); dict.Add("LockIPType", entity.LockIPType); dict.Add("SetIPLock", entity.SetIPLock); dict.Add("LockUrl", entity.LockUrl); dict.Add("SetPassword", entity.SetPassword); dict.Add("Template", entity.Template); dict.Add("QuestionField", entity.QuestionField); dict.Add("QuestionMaxID", entity.QuestionMaxID); }
public ResponseEntity <int?> Write([FromBody] SurveyEntity survey) { (int?Data, HttpStatusCode Status)writeResult = surveyModel.WriteSurvey(survey); if (writeResult.Data == null) { return(new ResponseEntity <int?>() { Data = null, Message = "서버 오류", Status = writeResult.Status }); } else { return(new ResponseEntity <int?>() { Data = writeResult.Data, Message = "성공적으로 생성되었습니다.", Status = writeResult.Status }); } }
internal (int?, HttpStatusCode) WriteSurvey(SurveyEntity survey) { try { DynamicParameters param = new DynamicParameters(); string sql = "insert into surveys (title, creatorIdx, createDatetime, startDatetime, endDatetime)" + $"values (@title, @creatorIdx, @createDatetime, @startDatetime, @endDatetime); select LAST_INSERT_ID();"; param.Add("@title", survey.Title); param.Add("@creatorIdx", survey.CreatorIdx); param.Add("@createDatetime", MysqlFormatHelper.ConvertDatetime(survey.CreateDatetime)); param.Add("@startDatetime", MysqlFormatHelper.ConvertDatetime(survey.StartDatetime)); param.Add("@endDatetime", MysqlFormatHelper.ConvertDatetime(survey.EndDatetime)); using (var db = new MySqlHelper()) { return(db.QuerySingle <int>(sql, param), HttpStatusCode.OK); } } catch { return(null, HttpStatusCode.InternalServerError); } }
/// <summary> /// 通过数据读取器生成实体类 /// </summary> /// <param name="rdr"></param> /// <returns></returns> private static SurveyEntity GetEntityFromrdr(NullableDataReader rdr) { SurveyEntity info = new SurveyEntity(); info.SurveyID = rdr.GetInt32("SurveyID"); info.SurveyName = rdr.GetString("SurveyName"); info.Description = rdr.GetString("Description"); info.FileName = rdr.GetString("FileName"); info.IPRepeat = rdr.GetInt32("IPRepeat"); info.CreateDate = rdr.GetNullableDateTime("CreateDate"); info.EndTime = rdr.GetNullableDateTime("EndTime"); info.IsOpen = rdr.GetInt32("IsOpen"); info.NeedLogin = rdr.GetInt32("NeedLogin"); info.PresentPoint = rdr.GetInt32("PresentPoint"); info.LockIPType = rdr.GetInt32("LockIPType"); info.SetIPLock = rdr.GetString("SetIPLock"); info.LockUrl = rdr.GetString("LockUrl"); info.SetPassword = rdr.GetString("SetPassword"); info.Template = rdr.GetString("Template"); info.QuestionField = rdr.GetString("QuestionField"); info.QuestionMaxID = rdr.GetInt32("QuestionMaxID"); return(info); }
private bool SurveyValidator(SurveyEntity surveyEntity) { if (surveyEntity.OpenedDate == DateTime.MinValue) { return(false); } if (surveyEntity.ClosedDate == DateTime.MinValue) { return(false); } if (surveyEntity.OpenedDate > surveyEntity.ClosedDate) { return(false); } if (surveyEntity.VersionSurveyId == Guid.Empty) { return(false); } if (surveyEntity.ClassGuids.Count == 0) { return(false); } return(true); }
public IActionResult Update([FromBody] SurveyEntity SurveyEntity) { SurveyService.CreateOrUpdate(UserEntity, SurveyEntity); return(Ok()); }
private bool MessageeIsWellUpdated(SurveyEntity entity, Survey survey) { return(entity.Id == survey.Id && entity.Question == survey.Question && entity.Options.FirstOrDefault().Option == survey.Options.FirstOrDefault().Option); }
public IHttpActionResult Submit(SurveyDto dto) { SurveyResultDto result = new SurveyResultDto(); result.Code = 0; result.Msg = "提交成功"; if (dto == null) { result.Code = 401; result.Msg = "输入错误"; return(Ok(result)); } for (int i = dto.Subject2.Count - 1; i >= 0; i--) { var obj = dto.Subject2[i] ?? ""; int val = 0; if (int.TryParse(obj.ToString(), out val) && obj.GetType() == typeof(Int64)) { if (!(val >= 1 && val <= 6)) { dto.Subject2.RemoveAt(i); } } } //string userIp = GetHostAddress(); //string userLocalId = Guid.NewGuid().ToString(); //if (string.IsNullOrEmpty(dto.UserLocalId)) //{ // dto.UserLocalId = userLocalId; //} //check dto validation if (dto.Subject1 <= 0 || dto.Subject1 > 4) { result.Code = 402; result.Msg = "问题1请选择"; return(Ok(result)); } if (dto.Subject2.Distinct().Count() < 3) { result.Code = 403; result.Msg = "问题2请选择3项"; return(Ok(result)); } //TODO: check dup if it's enabled. //turn to entity and save to db SurveyEntity entity = new SurveyEntity(); entity.Subject1 = dto.Subject1; entity.Subject2 = JsonConvert.SerializeObject(dto.Subject2.Distinct().ToList()); entity.Subject3 = HttpUtility.UrlDecode(dto.Subject3 ?? "").Trim(); entity.Subject4 = HttpUtility.UrlDecode(dto.Subject4 ?? "").Trim(); entity.Subject5 = HttpUtility.UrlDecode(dto.Subject5 ?? "").Trim(); entity.Subject6 = HttpUtility.UrlDecode(dto.Subject6 ?? "").Trim(); entity.Subject7 = HttpUtility.UrlDecode(dto.Subject7 ?? "").Trim(); // #3. save to db _context.SurveyEntities.Add(entity); try { _context.SaveChanges(); } catch { result.Code = 500; result.Msg = "发生错误,请重试"; return(Ok(result)); } // #4. return value return(Ok(result)); }
/// <summary> /// 增加或更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <param name="IsSave">是否增加</param> /// <returns></returns> public virtual async Task <bool> AddOrUpdateAsync(SurveyEntity entity, bool IsSave) { return(IsSave ? await AddAsync(entity) : await UpdateAsync(entity)); }
/// <summary> /// 增加或更新一条记录 /// </summary> /// <param name="entity">实体模型</param> /// <param name="IsSave">是否增加</param> /// <returns></returns> public virtual bool AddOrUpdate(SurveyEntity entity, bool IsSave) { return(IsSave ? Add(entity) : Update(entity)); }
private static Survey Convert(SurveyEntity entity) => new Survey(entity.Name);