public static async Task <EnrollStudentResult> EnrollStudent(Student student) { await FindServer(); if (Server == null) { return(null); } EnrollStudentResult result = null; NetworkComms.AppendGlobalIncomingPacketHandler <EnrollStudentResult>(EnrollStudentResult.GetHeader(), (h, c, i) => { NetworkComms.RemoveGlobalIncomingPacketHandler(EnrollStudentResult.GetHeader()); result = i; }); await new EnrollStudent() { Student = student }.Send(new IPEndPoint(IPAddress.Parse(Server.IP), Server.Port)); var start = DateTime.Now; while ((DateTime.Now - start).TotalSeconds < 17) { if (result != null) { return(result); } await TaskEx.Delay(TimeSpan.FromSeconds(1)); } Server = null; NetworkComms.RemoveGlobalIncomingPacketHandler(EnrollStudentResult.GetHeader()); return(null); }
public EnrollStudentResult EnrollStudent(EnrollStudentRequest request) { EnrollStudentResult result = new EnrollStudentResult(); using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s18830;Integrated Security=True")) using (var com = new SqlCommand()) { com.Connection = con; con.Open(); var tran = con.BeginTransaction(); com.Transaction = tran; com.CommandText = "select IdStudy from Studies where Name = @name"; com.Parameters.AddWithValue("name", request.Studies); var dr = com.ExecuteReader(); if (!dr.Read()) { dr.Close(); tran.Rollback(); throw new Exception("Nie ma kierunku o takiej nazwie!"); } int idStudy = (int)dr["IdStudy"]; dr.Close(); com.CommandText = "select e.StartDate, e.IdEnrollment from Enrollment e join Student s on e.IdEnrollment = s.IdEnrollment " + "where e.Semester = 1 and s.IndexNumber = @IndexNumber " + "order by StartDate desc"; com.Parameters.AddWithValue("IndexNumber", request.IndexNumber); dr = com.ExecuteReader(); if (dr.Read()) { dr.Close(); tran.Rollback(); throw new Exception("Student został zapisany wcześniej"); } dr.Close(); com.CommandText = "select max(IdEnrollment) from Enrollment"; int maxId = (int)com.ExecuteScalar() + 1; DateTime startDate = DateTime.Now; com.CommandText = "Insert into Enrollment (IdEnrollment, Semester, IdStudy, StartDate) values (@IdEnrollment, @Semester, @IdStudy, @StartDate)"; com.Parameters.AddWithValue("IdEnrollment", maxId); com.Parameters.AddWithValue("Semester", 1); com.Parameters.AddWithValue("IdStudy", idStudy); com.Parameters.AddWithValue("StartDate", startDate); com.ExecuteNonQuery(); com.CommandText = "select FirstName from Student where IndexNumber = @IndexNumber"; com.Parameters.AddWithValue("IndexNumber", request.IndexNumber); dr = com.ExecuteReader(); if (dr.Read()) { dr.Close(); tran.Rollback(); throw new Exception("Ten student jest już w systemie!"); } dr.Close(); com.CommandText = "Insert into Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) values (@Index, @Fname, @LName, @Date, @IdEnroll)"; com.Parameters.AddWithValue("Index", request.IndexNumber); com.Parameters.AddWithValue("Fname", request.FirstName); com.Parameters.AddWithValue("Lname", request.LastName); com.Parameters.AddWithValue("Date", request.BirthDate); com.Parameters.AddWithValue("IdEnroll", maxId); com.ExecuteNonQuery(); tran.Commit(); var response = new EnrollStudentResponse { IdEnrollment = maxId, IdStudy = idStudy, Semester = 1, StartDate = startDate }; result.Response = response; return(result); } }
public EnrollStudentResult EnrollStudent(EnrollStudentRequest request) { EnrollStudentResult result = new EnrollStudentResult(); if (string.IsNullOrWhiteSpace(request.FirstName) || string.IsNullOrWhiteSpace(request.LastName) || string.IsNullOrWhiteSpace(request.IndexNumber) || string.IsNullOrWhiteSpace(request.BirthDate) || string.IsNullOrWhiteSpace(request.Studies) || !DateTime.TryParse(request.BirthDate, out DateTime birthDate)) { result.ResultCode = ResultCodes.NieWpisanoWszystkichDanychStudenta; return(result); } using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s18923;Integrated Security=True")) using (var com = new SqlCommand()) { com.Connection = con; con.Open(); var tran = con.BeginTransaction(); com.Transaction = tran; com.CommandText = "select IdStudy from Studies where Name = @name"; com.Parameters.AddWithValue("name", request.Studies); var dr = com.ExecuteReader(); if (!dr.Read()) { dr.Close(); tran.Rollback(); result.ResultCode = ResultCodes.NieIstniejaStudia; return(result); } int idStudy = (int)dr["IdStudy"]; dr.Close(); com.Parameters.Clear(); com.CommandText = "select e.StartDate, e.IdEnrollment from Enrollment e join Student s on e.IdEnrollment = s.IdEnrollment " + "where e.Semester = 1 and s.IndexNumber = @IndexNumber " + "order by StartDate desc"; com.Parameters.AddWithValue("IndexNumber", request.IndexNumber); dr = com.ExecuteReader(); if (dr.Read()) { dr.Close(); tran.Rollback(); result.ResultCode = ResultCodes.StudentJestJuzZapisanyNaSemest; return(result); } dr.Close(); com.Parameters.Clear(); com.CommandText = "select max(IdEnrollment) from Enrollment"; int maxId = (int)com.ExecuteScalar() + 1; DateTime startDate = DateTime.Now; com.CommandText = "Insert into Enrollment (IdEnrollment, Semester, IdStudy, StartDate) values (@IdEnrollment, @Semester, @IdStudy, @StartDate)"; com.Parameters.AddWithValue("IdEnrollment", maxId); com.Parameters.AddWithValue("Semester", 1); com.Parameters.AddWithValue("IdStudy", idStudy); com.Parameters.AddWithValue("StartDate", startDate); com.ExecuteNonQuery(); com.Parameters.Clear(); //----------------------// com.CommandText = "select FirstName from Student where IndexNumber = @IndexNumber"; com.Parameters.AddWithValue("IndexNumber", request.IndexNumber); dr = com.ExecuteReader(); if (dr.Read()) { dr.Close(); tran.Rollback(); result.ResultCode = ResultCodes.StudentJuzIstnieje; return(result); } dr.Close(); com.Parameters.Clear(); com.CommandText = "Insert into Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) values (@Index, @Fname, @LName, @Date, @IdEnroll)"; com.Parameters.AddWithValue("Index", request.IndexNumber); com.Parameters.AddWithValue("Fname", request.FirstName); com.Parameters.AddWithValue("Lname", request.LastName); com.Parameters.AddWithValue("Date", request.BirthDate); com.Parameters.AddWithValue("IdEnroll", maxId); com.ExecuteNonQuery(); tran.Commit(); var response = new EnrollStudentResponse { IdEnrollment = maxId, IdStudy = idStudy, Semester = 1, StartDate = startDate }; result.ResultCode = ResultCodes.StudentDodany; result.Response = response; return(result); } }
public EnrollStudentResult EnrollStudent(EnrollStudentRequest request) { EnrollStudentResult result = new EnrollStudentResult(); if (string.IsNullOrWhiteSpace(request.FirstName) || string.IsNullOrWhiteSpace(request.LastName) || string.IsNullOrWhiteSpace(request.IndexNumber) || string.IsNullOrWhiteSpace(request.BirthDate) || string.IsNullOrWhiteSpace(request.Studies) || !DateTime.TryParse(request.BirthDate, out DateTime birthDate)) { result.ResultCode = ResultCodes.NieWpisanoWszystkichDanychStudenta; return(result); } var studies = context.Studies.FirstOrDefault(e => e.Name == request.Studies); context.SaveChanges(); if (studies == null) { result.ResultCode = ResultCodes.NieIstniejaStudia; return(result); } int idStudy = studies.IdStudy; var bigSelect = context.Student.Any(x => x.IndexNumber == "" && x.IdEnrollmentNavigation.Semester == 1); if (bigSelect) { result.ResultCode = ResultCodes.StudentJestJuzZapisanyNaSemest; return(result); } var maxSelect = context.Enrollment.Max(e => e.IdEnrollment); int maxId = maxSelect + 1; DateTime startDate = DateTime.Now; context.Enrollment.Add(new Enrollment { IdEnrollment = maxId, Semester = 1, IdStudy = idStudy, StartDate = startDate, }); var nameSelect = context.Student.Any(e => e.IndexNumber == request.IndexNumber); if (nameSelect) { result.ResultCode = ResultCodes.StudentJuzIstnieje; return(result); } DateTime date = DateTime.Parse(request.BirthDate); context.Student.Add(new Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = date, IdEnrollment = maxId }); var response = new EnrollStudentResponse { IdEnrollment = maxId, IdStudy = idStudy, Semester = 1, StartDate = startDate }; result.ResultCode = ResultCodes.StudentDodany; result.Response = response; return(result); }
public EnrollStudentResult EnrollStudent(EnrollStudentRequest request) { EnrollStudentResult result = new EnrollStudentResult(); var studies = context.Studies.FirstOrDefault(e => e.Name == request.Studies); context.SaveChanges(); if (studies == null) { return result; } int idStudy = studies.IdStudy; var bigSelect = context.Student.Any(x => x.IndexNumber == "" && x.IdEnrollmentNavigation.Semester == 1); if (bigSelect) { return result; } var maxSelect = context.Enrollment.Max(e => e.IdEnrollment); int maxId = maxSelect + 1; DateTime startDate = DateTime.Now; context.Enrollment.Add(new Enrollment { IdEnrollment = maxId, Semester = 1, IdStudy = idStudy, StartDate = startDate, }); var nameSelect = context.Student.Any(e => e.IndexNumber == request.IndexNumber); if (nameSelect) { return result; } DateTime date = DateTime.Parse(request.BirthDate); context.Student.Add(new Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = date, IdEnrollment = maxId }); var response = new EnrollStudentResponse { IdEnrollment = maxId, IdStudy = idStudy, Semester = 1, StartDate = startDate }; result.Response = response; return result; }