示例#1
0
        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);
                }
        }
示例#3
0
        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);
                }
        }
示例#4
0
        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);
        }
示例#5
0
        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;
        }