Ejemplo n.º 1
0
 public ModelResult(IModelResult modelResult)
 {
     this.IsOk          = modelResult.IsOk;
     this.ErrorCode     = modelResult.ErrorCode;
     this.Message       = modelResult.Message;
     this.SystemMessage = modelResult.SystemMessage;
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        /// <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;
        }
Ejemplo n.º 7
0
        /// <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"));
            }
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
            }
        }
Ejemplo n.º 10
0
        /// <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);
        }