public ModelResult(IModelResult modelResult) { this.IsOk = modelResult.IsOk; this.ErrorCode = modelResult.ErrorCode; this.Message = modelResult.Message; this.SystemMessage = modelResult.SystemMessage; }
public void 測試StudentRepository查詢_Given_查詢資料_When_執行SelectStudent_Then_驗證查詢結果是否與預設結果一致() { FakeStudentRepository fake = new FakeStudentRepository(); //查詢資料 IndexVM vm = new IndexVM() { studentId = null, studentName = "吳" }; IModelResult <IndexVM> selectResult = fake.SelectStudent(vm); string actualStr = JsonConvert.SerializeObject(selectResult); //預期值 IList <IndexStudentItem> expectedLstStudentInfo = new List <IndexStudentItem>(); expectedLstStudentInfo.Add(new IndexStudentItem() { id = new Guid(), studentId = "G121550397", studentName = "吳小欣", studentSex = "1", studentBirth = new DateTime(1888, 3, 3) }); IModelResult <IndexVM> expectedResult = new ModelResult <IndexVM>() { ResultData = new IndexVM() { lstStudentInfo = expectedLstStudentInfo } }; string expectedStr = JsonConvert.SerializeObject(expectedResult); Assert.AreEqual(expectedStr, actualStr); }
/// <summary> /// 刪除學生資料 /// </summary> /// <param name="gid"></param> /// <returns></returns> public IModelResult DeleteStudent(string gid) { IModelResult modelResult; try { doEventLog($"刪除資料:input=>{gid}"); doLog($"刪除資料:input=>{gid}"); dao = GetDao(); IModelResult dbResult = dao.StudentDelete(gid); if (dbResult.IsOk) { modelResult = new ModelResult(); } else { modelResult = new ModelResult(dbResult.ErrorCode.Value) { SystemMessage = dbResult.SystemMessage }; } doEventLog($"刪除結果:input=>{gid},result=>{JsonConvert.SerializeObject(modelResult)}"); doLog($"刪除結果:input=>{gid},result=>{JsonConvert.SerializeObject(modelResult)}"); } catch (Exception ex) { modelResult = new ModelResult(SystemCodes.Codes.ApplicationError02) { SystemMessage = ex.Message }; } return(modelResult); }
public IModelResult <IndexVM> SelectStudent(IndexVM vm = null) { IModelResult <IndexVM> modelResult; try { doEventLog($"查詢資料:input=>{JsonConvert.SerializeObject(vm)}"); doLog($"查詢資料:input=>{JsonConvert.SerializeObject(vm)}"); selectStudentModel = null; if (vm != null) { selectStudentModel = AutoMapper.Mapper.Map <SelectStudentDaoReqModel>(vm); } dao = GetDao(); IModelResult <IList <SelectStudentDaoResModel> > dbResult = dao.StudentSelect(selectStudentModel); if (dbResult.IsOk) { modelResult = new ModelResult <IndexVM>(); if (dbResult.ResultData.Any()) { modelResult.ResultData = new IndexVM(); modelResult.ResultData.lstStudentInfo = dbResult.ResultData.Select(x => { IndexStudentItem item = AutoMapper.Mapper.Map <IndexStudentItem>(x); return(item); }).ToList(); } else { modelResult.ResultData = new IndexVM(); } } else { modelResult = new ModelResult <IndexVM>(dbResult.ErrorCode.Value) { SystemMessage = dbResult.SystemMessage }; } doEventLog($"查詢結果:input=>{JsonConvert.SerializeObject(vm)},result=>{JsonConvert.SerializeObject(modelResult)}"); doLog($"查詢結果:input=>{JsonConvert.SerializeObject(vm)},result=>{JsonConvert.SerializeObject(modelResult)}"); } catch (Exception ex) { modelResult = new ModelResult <IndexVM>(SystemCodes.Codes.ApplicationError01) { SystemMessage = ex.Message }; } return(modelResult); }
/// <summary> /// 查詢案件(修改用) /// </summary> /// <param name="vm"></param> /// <returns></returns> public IModelResult <SelectEditVM> SelectStudent(string gid) { IModelResult <SelectEditVM> modelResult; try { doEventLog($"查詢資料:input=>{gid}"); doLog($"查詢資料:input=>{gid}"); dao = GetDao(); IModelResult <IList <SelectStudentDaoResModel> > dbResult = dao.StudentSelect(); if (dbResult.IsOk) { modelResult = new ModelResult <SelectEditVM>(); if (dbResult.ResultData.Any()) { IList <SelectStudentDaoResModel> lstDBResult = dbResult.ResultData.Where(x => x.id.ToString().Equals(gid)).ToList(); if (lstDBResult.Any()) { SelectEditVM model = AutoMapper.Mapper.Map <SelectEditVM>(lstDBResult.First()); modelResult.ResultData = model; } else { modelResult = new ModelResult <SelectEditVM>(SystemCodes.Codes.ApplicationError01) { SystemMessage = $"查詢錯誤,無此識別碼{gid}" }; } } } else { modelResult = new ModelResult <SelectEditVM>(dbResult.ErrorCode.Value) { SystemMessage = dbResult.SystemMessage }; } doEventLog($"查詢結果:input=>{gid},result=>{JsonConvert.SerializeObject(modelResult)}"); doLog($"查詢結果:input=>{gid},result=>{JsonConvert.SerializeObject(modelResult)}"); } catch (Exception ex) { modelResult = new ModelResult <SelectEditVM>(SystemCodes.Codes.ApplicationError01) { SystemMessage = ex.Message }; } return(modelResult); }
public async Task New(string name, bool isValid, int code, string message, bool model) { //Arrange //Act IModelResult <FooSample> fooSampleResult = FooSample.New(name); //Assert Assert.That(fooSampleResult.IsModelResultValid(), Is.EqualTo(isValid)); Assert.That(fooSampleResult.Message, Is.EqualTo(message)); Assert.That(fooSampleResult.ModelStatusCode, Is.EqualTo(code)); Assert.That(fooSampleResult.Model == null, Is.EqualTo(model)); await Task.CompletedTask; }
/// <summary> /// 首頁及查詢 /// </summary> /// <returns></returns> public ActionResult Index() { IModelResult <IndexVM> reposResult = repository.SelectStudent(); if (reposResult.IsOk) { return(View(reposResult.ResultData)); } else { //錯誤頁 TempData["error"] = reposResult; return(RedirectToAction("Message", "Error")); } }
public async Task UpdateAsync(string name, bool exits, bool isValid, int code, string message) { //Arrange Mock <ISampleRepository> SampleRepositoryMock = new Mock <ISampleRepository>(); var sampleService = new SampleService(SampleRepositoryMock.Object); SampleRepositoryMock.Setup(it => it.ExistsAsync(It.IsAny <string>())).Returns(Task.FromResult(exits)); IModelResult <FooSample> newFooSampleResult = FooSample.New(name); if ((exits && !isValid) || (!exits && isValid)) { SampleRepositoryMock.Setup(it => it.GetAsync(it => it.IdFooSample == It.IsAny <int>())).Returns(Task.FromResult(newFooSampleResult.Model)); } //Act var sampleModelResult = await sampleService.UpdateAsync(1, name); //Assert Assert.That(sampleModelResult.IsModelResultValid(), Is.EqualTo(isValid)); Assert.That(sampleModelResult.Message, Is.EqualTo(message)); Assert.That(sampleModelResult.ModelStatusCode, Is.EqualTo(code)); }
public ActionResult Message() { //取得temp IModelResult modelResult = TempData["error"] as IModelResult; // 若 TempData 沒有錯誤訊息,回到預設錯誤頁 if (modelResult == null) { return(RedirectToAction("Index")); }// 若 TempData 中之 ModelResult 沒有錯誤訊息,回到預設錯誤頁 else if (string.IsNullOrEmpty(modelResult.Message)) { return(RedirectToAction("Index")); } else { ErrorVM errorVM = new ErrorVM() { Message = modelResult.Message, DisplayCode = modelResult.DisplayCode }; return(View(errorVM)); } }
/// <summary> /// 修改學生資料 /// </summary> /// <param name="vm"></param> /// <returns></returns> public IModelResult UpdateStudent(EditVM vm) { IModelResult modelResult; try { doEventLog($"修改資料:input=>{JsonConvert.SerializeObject(vm)}"); doLog($"修改資料:input=>{JsonConvert.SerializeObject(vm)}"); UpdateStudentDaoReqModel model = AutoMapper.Mapper.Map <UpdateStudentDaoReqModel>(vm); dao = GetDao(); IModelResult dbResult = dao.StudentUpdate(model); if (dbResult.IsOk) { modelResult = new ModelResult(); } else { modelResult = new ModelResult(dbResult.ErrorCode.Value) { SystemMessage = dbResult.SystemMessage }; } doEventLog($"修改結果:input=>{JsonConvert.SerializeObject(vm)},result=>{JsonConvert.SerializeObject(modelResult)}"); doLog($"修改結果:input=>{JsonConvert.SerializeObject(vm)},result=>{JsonConvert.SerializeObject(modelResult)}"); } catch (Exception ex) { modelResult = new ModelResult(SystemCodes.Codes.ApplicationError03) { SystemMessage = ex.Message }; } return(modelResult); }
public static ResultResponseMessage <TResponseMessage> ToResultResponseMessage <TRequestMessage, TResponseMessage, TModel>(this IModelResult <TModel> modelResult, TRequestMessage requestMessage) where TRequestMessage : RequestMessage where TResponseMessage : ResponseMessage where TModel : IModel { var result = new ResultResponseMessage <TResponseMessage>(requestMessage); if (!modelResult.IsModelResultValid()) { if (modelResult.Validations != null) { foreach (var validation in modelResult.Validations) { result.AddValidation(validation.Attribute, validation.Message); } } result.MapResultResponseMessage((HttpStatusCode)modelResult.ModelStatusCode, modelResult.Message); } return(result); }
public static ResultResponseMessage ToResultResponseMessage <TRequestMessage>(this IModelResult modelResult, TRequestMessage requestMessage) where TRequestMessage : RequestMessage { var result = new ResultResponseMessage(requestMessage); if (!modelResult.IsModelResultValid()) { result.MapResultResponseMessage((HttpStatusCode)modelResult.ModelStatusCode, modelResult.Message); } return(result); }