public async Task <SaveStudentResponse> Save([FromBody] SaveStudentRequest saveStudentRequest) => await this.clientFactory.PostAsync <SaveStudentResponse> ( "api/Student/Save", JsonSerializer.Serialize(saveStudentRequest), this.configurationOptions.BaseBslUrl );
public IActionResult SaveWithoutRules([FromBody] SaveStudentRequest saveStudentRequest) { System.Diagnostics.Stopwatch stopWatch = System.Diagnostics.Stopwatch.StartNew(); var response = SaveStudentWithoutRules(saveStudentRequest); stopWatch.Stop(); logger.LogWarning("this.SaveStudentWithoutRules: {0}", stopWatch.Elapsed.TotalMilliseconds); return(Ok(response)); }
public async Task <IActionResult> Save([FromBody] SaveStudentRequest request) { if (request == null) { return(BadRequest()); } try { var student = new StudentDTO() { StudentID = request.StudentID, FirstName = request.FirstName, LastName = request.LastName, DateOfBirth = request.DateOfBirth, StartYear = request.StartYear, Address = new AddressDTO() { AddressID = request.Address.AddressID, AddressLine1 = request.Address.AddressLine1, AddressLine2 = request.Address.AddressLine2, City = request.Address.City, Province = request.Address.Province, PostalCode = request.Address.PostalCode }, Guardian = new GuardianDTO() { GuardianID = request.Guardian.GuardianID, FirstName = request.Guardian.FirstName, LastName = request.Guardian.LastName } }; var result = await _IStudentService.Save(student); return(Ok(result)); } catch { return(StatusCode(500)); } }
public void SaveStudentRequestWithEnrollmentsWithoutRules2() { IFlowManager flowManager = serviceProvider.GetRequiredService <IFlowManager>(); ISchoolRepository schoolRepository = serviceProvider.GetRequiredService <ISchoolRepository>(); var student = flowManager.SchoolRepository.GetAsync <StudentModel, Student> ( s => s.FullName == "Carson Alexander", selectExpandDefinition: new LogicBuilder.Expressions.Utils.Expansions.SelectExpandDefinition { ExpandedItems = new List <LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem> { new LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem { MemberName = "enrollments" } } } ).Result.Single(); student.FirstName = "First"; student.EntityState = LogicBuilder.Domain.EntityStateType.Modified; student.Enrollments.ToList().ForEach(enrollment => { enrollment.Grade = Domain.Entities.Grade.A; enrollment.EntityState = LogicBuilder.Domain.EntityStateType.Modified; }); SaveStudentRequest saveStudentRequest = new SaveStudentRequest { Student = student }; System.Diagnostics.Stopwatch stopWatch = System.Diagnostics.Stopwatch.StartNew(); StudentModel studentModel = saveStudentRequest.Student; SaveStudentResponse saveStudentResponse = new SaveStudentResponse(); saveStudentResponse.Success = schoolRepository.SaveGraphAsync <StudentModel, Student>(studentModel).Result; if (!saveStudentResponse.Success) { return; } studentModel = schoolRepository.GetAsync <StudentModel, Student> ( f => f.ID == studentModel.ID, null, new LogicBuilder.Expressions.Utils.Expansions.SelectExpandDefinition { ExpandedItems = new List <LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem> { new LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem { MemberName = "enrollments" } } } ).Result.SingleOrDefault(); saveStudentResponse.Student = studentModel; int Iteration_Index = 0; flowManager.CustomActions.WriteToLog ( string.Format ( "EnrollmentCount: {0}. Index: {1}", new object[] { studentModel.Enrollments.Count, Iteration_Index } ) ); EnrollmentModel enrollmentModel = null; while (Iteration_Index < studentModel.Enrollments.Count) { enrollmentModel = studentModel.Enrollments.ElementAt(Iteration_Index); Iteration_Index = Iteration_Index + 1; flowManager.CustomActions.WriteToLog ( string.Format ( "Student Id:{0} is enrolled in {1}.", new object[] { studentModel.ID, enrollmentModel.CourseTitle } ) ); } stopWatch.Stop(); this.output.WriteLine("WithoutRulesUsingExpressiionsInCode = {0}", stopWatch.Elapsed.TotalMilliseconds); }
private SaveStudentResponse SaveStudentWithoutRules(SaveStudentRequest saveStudentRequest) { Domain.Entities.StudentModel studentModel = saveStudentRequest.Student; SaveStudentResponse saveStudentResponse = new SaveStudentResponse() { ErrorMessages = new List <string>() }; #region Validation if (string.IsNullOrWhiteSpace(studentModel.FirstName)) { saveStudentResponse.ErrorMessages.Add("First Name is required."); } if (string.IsNullOrWhiteSpace(studentModel.LastName)) { saveStudentResponse.ErrorMessages.Add("Last Name is required."); } if (studentModel.EnrollmentDate == default) { saveStudentResponse.ErrorMessages.Add("Enrollment Date is required."); } if (saveStudentResponse.ErrorMessages.Any()) { flowManager.CustomActions.WriteToLog("An error occurred saving the request."); saveStudentResponse.Success = false; return(saveStudentResponse); } #endregion Validation #region Save and retrieve saveStudentResponse.Success = schoolRepository.SaveGraphAsync <Domain.Entities.StudentModel, Data.Entities.Student>(studentModel).Result; if (!saveStudentResponse.Success) { return(saveStudentResponse); } studentModel = schoolRepository.GetAsync <Domain.Entities.StudentModel, Data.Entities.Student> ( f => f.ID == studentModel.ID, null, new LogicBuilder.Expressions.Utils.Expansions.SelectExpandDefinition { ExpandedItems = new List <LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem> { new LogicBuilder.Expressions.Utils.Expansions.SelectExpandItem { MemberName = "enrollments" } } } ).Result.SingleOrDefault(); saveStudentResponse.Student = studentModel; #endregion Save and retrieve #region Log Enrollments int Iteration_Index = 0; flowManager.CustomActions.WriteToLog ( string.Format ( "EnrollmentCount: {0}. Index: {1}", new object[] { studentModel.Enrollments.Count, Iteration_Index } ) ); Domain.Entities.EnrollmentModel enrollmentModel = null; while (Iteration_Index < studentModel.Enrollments.Count) { enrollmentModel = studentModel.Enrollments.ElementAt(Iteration_Index); Iteration_Index = Iteration_Index + 1; flowManager.CustomActions.WriteToLog ( string.Format ( "Student Id:{0} is enrolled in {1}.", new object[] { studentModel.ID, enrollmentModel.CourseTitle } ) ); } #endregion Log Enrollments return(saveStudentResponse); }
public IActionResult Save([FromBody] SaveStudentRequest saveStudentRequest) { this.flowManager.FlowDataCache.Request = saveStudentRequest; this.flowManager.Start("savestudent"); return(Ok((SaveStudentResponse)this.flowManager.FlowDataCache.Response)); }