示例#1
0
        public async void Run_TokenMetadataTest()
        {
            ShowTestOnTerminal("TokenMetadata");

            EnrollRequest setupRequest = new EnrollRequest
            {
                Pan      = "4111111111111111",
                Test     = true,
                Customer = new Customer
                {
                    CustomerRef = "TESTCUSTOMER",
                    FirstName   = "Test",
                    LastName    = "Customer",
                },
            };

            output.WriteLine("Setup request: {0}", setupRequest);

            EnrollResponse setupResponse = await blockchyp.EnrollAsync(setupRequest);

            output.WriteLine("Setup Response: {0}", setupResponse);

            TokenMetadataRequest request = new TokenMetadataRequest
            {
                Token = setupResponse.Token,
            };

            output.WriteLine("Request: {0}", request);

            TokenMetadataResponse response = await blockchyp.TokenMetadataAsync(request);

            output.WriteLine("Response: {0}", response);

            Assert.True(response.Success, "response.Success");
        }
        public async void Run_TerminalEnrollTest()
        {
            ShowTestOnTerminal("TerminalEnroll");

            EnrollRequest request = new EnrollRequest
            {
                TerminalName = IntegrationTestConfiguration.Instance.Settings.DefaultTerminalName,
                Test         = true,
            };

            output.WriteLine("Request: {0}", request);

            EnrollResponse response = await blockchyp.EnrollAsync(request);

            output.WriteLine("Response: {0}", response);

            Assert.True(response.Success, "response.Success");
            Assert.True(response.Approved, "response.Approved");
            Assert.True(response.Test, "response.Test");
            Assert.Equal(6, response.AuthCode.Length);
            Assert.NotEmpty(response.TransactionId);
            Assert.NotEmpty(response.Timestamp);
            Assert.NotEmpty(response.TickBlock);
            Assert.Equal("approved", response.ResponseDescription);
            Assert.NotEmpty(response.PaymentType);
            Assert.NotEmpty(response.MaskedPan);
            Assert.NotEmpty(response.EntryMethod);
            Assert.NotEmpty(response.Token);
        }
示例#3
0
        public IActionResult EnrollStudent(EnrollRequest request)
        {
            _service.EnrollStudent(request);

            var response = new EnrollResponse();

            using (SqlConnection con = new SqlConnection("Data Source=db-mssql.pjwstk.edu.pl;Initial Catalog=2019SBD;Integrated Security=True"))
                using (SqlCommand com = new SqlCommand())
                {
                    com.Connection = con;
                    var transac = con.BeginTransaction();
                    com.CommandText = "select studyName Studies where studyName=@par1";
                    com.Parameters.AddWithValue("par1", request.Studies);
                    var dr = com.ExecuteReader();
                    if (!dr.Read())
                    {
                        transac.Rollback();
                        Console.WriteLine("Error");
                    }
                    return(Ok());
                }
        }
        public async void Run_UnlinkTokenTest()
        {
            ShowTestOnTerminal("UnlinkToken");

            EnrollRequest setupRequest = new EnrollRequest
            {
                Pan      = "4111111111111111",
                Test     = true,
                Customer = new Customer
                {
                    CustomerRef = "TESTCUSTOMER",
                    FirstName   = "Test",
                    LastName    = "Customer",
                },
            };

            output.WriteLine("Setup request: {0}", setupRequest);

            EnrollResponse setupResponse = await blockchyp.EnrollAsync(setupRequest);

            output.WriteLine("Setup Response: {0}", setupResponse);

            UnlinkTokenRequest request = new UnlinkTokenRequest
            {
                Token      = setupResponse.Token,
                CustomerId = setupResponse.Customer.Id,
            };

            output.WriteLine("Request: {0}", request);

            Acknowledgement response = await blockchyp.UnlinkTokenAsync(request);

            output.WriteLine("Response: {0}", response);

            Assert.True(response.Success, "response.Success");
        }
示例#5
0
        public async void Run_PanEnrollTest()
        {
            ShowTestOnTerminal("PanEnroll");

            EnrollRequest request = new EnrollRequest
            {
                Pan      = "4111111111111111",
                Test     = true,
                Customer = new Customer
                {
                    CustomerRef = "TESTCUSTOMER",
                    FirstName   = "Test",
                    LastName    = "Customer",
                },
            };

            output.WriteLine("Request: {0}", request);

            EnrollResponse response = await blockchyp.EnrollAsync(request);

            output.WriteLine("Response: {0}", response);

            Assert.True(response.Success, "response.Success");
            Assert.True(response.Approved, "response.Approved");
            Assert.True(response.Test, "response.Test");
            Assert.Equal(6, response.AuthCode.Length);
            Assert.NotEmpty(response.TransactionId);
            Assert.NotEmpty(response.Timestamp);
            Assert.NotEmpty(response.TickBlock);
            Assert.Equal("approved", response.ResponseDescription);
            Assert.NotEmpty(response.PaymentType);
            Assert.NotEmpty(response.MaskedPan);
            Assert.NotEmpty(response.EntryMethod);
            Assert.Equal("KEYED", response.EntryMethod);
            Assert.NotEmpty(response.Token);
        }
示例#6
0
        public EnrollResponse EnrollStudent(EnrollRequest request)
        {
            EnrollResponse enrollResponse = new EnrollResponse();

            using (var client = new SqlConnection("Data Source = db-mssql.pjwstk.edu.pl; Initial Catalog = s16796; Integrated Security = True"))
            {
                using (var command = new SqlCommand())
                {
                    command.Connection = client;
                    client.Open();
                    var transaction = client.BeginTransaction();
                    command.Transaction = transaction;
                    command.CommandText = "Select IdStudy FROM Studies where Name=@name";
                    command.Parameters.AddWithValue("name", request.Studies);
                    var dr = command.ExecuteReader();
                    if (!dr.Read())
                    {
                        dr.Close();
                        transaction.Rollback();
                        throw new ArgumentException("No studies found with that name");
                    }
                    else
                    {
                        enrollResponse.IdStudies = Convert.ToInt32(dr["IdStudy"].ToString());
                        enrollResponse.Semester  = 1;
                        enrollResponse.Studies   = request.Studies;
                    }
                    dr.Close();
                    command.Parameters.Clear();
                    command.CommandText = "SELECT IdEnrollment, StartDate FROM Enrollment WHERE semester = 1 AND IdStudy = @id order by StartDate desc";
                    command.Parameters.AddWithValue("id", enrollResponse.IdStudies);
                    dr = command.ExecuteReader();
                    if (dr.Read())
                    {
                        enrollResponse.IdEnrollment = Convert.ToInt32(dr["IdEnrollment"].ToString());
                        enrollResponse.StartDate    = Convert.ToDateTime(dr["StartDate"]);
                    }
                    else
                    {
                        //enrollment nie istnieje!
                        dr.Close();
                        command.CommandText = "INSERT INTO Enrollment(IdEnrollment, Semester, IdStudy, StartDate) OUTPUT Inserted.IdEnrollment VALUES((SELECT MAX(IdEnrollment) FROM Enrollment) + 1, 1, @id, @startdate)";
                        command.Parameters.AddWithValue("startdate", DateTime.Now);
                        dr = command.ExecuteReader();
                        dr.Read();
                        enrollResponse.IdEnrollment = Convert.ToInt32(dr["IdEnrollment"].ToString());
                        enrollResponse.StartDate    = DateTime.Now.Date;
                    }

                    dr.Close();
                    command.Parameters.Clear();
                    command.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES(@index, @first, @last, @birth, @enrollment)";
                    command.Parameters.AddWithValue("index", request.IndexNumber);
                    command.Parameters.AddWithValue("first", request.FirstName);
                    command.Parameters.AddWithValue("last", request.LastName);
                    command.Parameters.AddWithValue("birth", DateTime.ParseExact(request.BirthDate, "dd.MM.yyyy", null));
                    command.Parameters.AddWithValue("enrollment", enrollResponse.IdEnrollment);

                    try
                    {
                        dr = command.ExecuteReader();
                        enrollResponse.IndexNumber = request.IndexNumber;
                    }
                    catch (Exception exc)
                    {
                        Console.WriteLine(exc);
                        dr.Close();
                        transaction.Rollback();
                        throw new ArgumentException("This index already exists");
                    }

                    dr.Close();
                    transaction.Commit();
                    return(enrollResponse);
                }
            }
        }
示例#7
0
        public EnrollResponse EnrollStudent(EnrollStudentRequest request)
        {
            using var con = new SqlConnection(SetConnection.GetConnection());
            using var com = new SqlCommand();

            con.Open();
            com.Connection = con;
            var transaction = con.BeginTransaction();

            com.Transaction = transaction;

            com.CommandText = "SELECT s.IdStudy FROM Studies s WHERE s.Name = @Name";
            com.Parameters.AddWithValue("Name", request.Name);
            var dr = com.ExecuteReader();

            if (!dr.Read())
            {
                throw new Exception("Podane studia nie istnieją ");;
            }
            var idStudy = int.Parse(dr["IdStudy"].ToString());

            dr.Close();
            com.Parameters.Clear();
            com.CommandText =
                "SELECT * FROM Enrollment enr WHERE enr.Semester = 1 AND enr.IdStudy = @IdStudy";
            com.Parameters.AddWithValue("IdStudy", idStudy);
            dr = com.ExecuteReader();

            var enrollResponse = new EnrollResponse();

            if (!dr.Read())
            {
                dr.Close();
                com.Parameters.Clear();

                com.CommandText =
                    @"INSERT INTO Enrollment(IdEnrollment, Semester, StartDate, IdStudy) OUTPUT INSERTED.IdEnrollment, INSERTED.Semester, INSERTED.StartDate, INSERTED.IdStudy VALUES((SELECT MAX(E.IdEnrollment) FROM Enrollment E) + 1, @Semester, @StartDate, @IdStudy);";
                com.Parameters.AddWithValue("Semester", 1);
                com.Parameters.AddWithValue("StartDate", DateTime.Now);
                com.Parameters.AddWithValue("IdStudy", idStudy);

                enrollResponse.IdEnrollment = int.Parse(com.ExecuteScalar().ToString());
                enrollResponse.Semester     = int.Parse(com.Parameters["Semester"].Value.ToString());
                enrollResponse.IdStudy      = int.Parse(com.Parameters["IdStudy"].Value.ToString());
                enrollResponse.StartDate    =
                    DateTime.Parse(com.Parameters["StartDate"].Value.ToString()).ToString("yyyy-MM-dd");
            }
            else
            {
                enrollResponse.IdEnrollment = int.Parse(dr["IdEnrollment"].ToString());
                enrollResponse.Semester     = int.Parse(dr["Semester"].ToString());
                enrollResponse.IdStudy      = int.Parse(dr["IdStudy"].ToString());
                enrollResponse.StartDate    =
                    DateTime.Parse(dr["StartDate"].ToString()).ToString("yyyy-MM-dd");
            }

            dr.Close();
            com.Parameters.Clear();
            com.CommandText = "SELECT S.IndexNumber FROM Student S WHERE IndexNumber = @indexNumber";
            com.Parameters.AddWithValue("indexNumber", request.IndexNumber);
            dr = com.ExecuteReader();
            if (dr.Read())
            {
                throw new Exception("Numer indeksu nie jest unikalny");;
            }

            dr.Close();
            com.Parameters.Clear();
            com.CommandText =
                @"INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES (@IndexNumber, @FirstName, @LastName, @BirthDate, @IdEnrollment)";
            com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);
            com.Parameters.AddWithValue("FirstName", request.FirstName);
            com.Parameters.AddWithValue("LastName", request.LastName);
            com.Parameters.AddWithValue("BirthDate", request.BirthDate);
            com.Parameters.AddWithValue("IdEnrollment", enrollResponse.IdEnrollment);
            com.ExecuteNonQuery();

            transaction.Commit();
            return(enrollResponse);
        }
示例#8
0
        public async Task <EnrollResponse> EnrollChild(FPCaptureRs vm)
        {
            EnrollResponse returnModel = new EnrollResponse();
            EnrollRequest  request     = new EnrollRequest();

            request.Id = Guid.NewGuid();
            request.FingerprintRecord                              = new DsdAfis.Core.FingerBiometrics.FingerprintRecord();
            request.FingerprintRecord.Id                           = 0;
            request.FingerprintRecord.Active                       = false;
            request.FingerprintRecord.DateTime                     = DateTime.Now;
            request.FingerprintRecord.FingerprintSet               = new DsdAfis.Core.FingerBiometrics.FingerprintSet();
            request.FingerprintRecord.FingerprintSet.Dpi           = 500;
            request.FingerprintRecord.FingerprintSet.ImageEncoding = "WSQ";
            request.FingerprintRecord.FingerprintSet.ImageHeight   = 512;
            request.FingerprintRecord.FingerprintSet.ImageWidth    = 512;
            List <Fingerprint> fingers     = new List <Fingerprint>();
            Fingerprint        blankFinger = null;

            fingers.Add(blankFinger);
            foreach (Finger f in vm.Fingers)
            {
                if (f.Sequence > 0)
                {
                    Fingerprint finger = new Fingerprint();
                    switch (f.Name)
                    {
                    case "1":
                        finger.Code = FingerCode.RightThumb;
                        break;

                    case "6":
                        finger.Code = FingerCode.LeftThumb;
                        break;
                    }
                    finger.EncodedImage = f.Print;
                    fingers.Add(finger);
                }
                else
                {
                    fingers.Add(null);
                }
            }
            request.FingerprintRecord.FingerprintSet.Fingerprints = fingers.ToArray();
            request.FingerprintRecord.Person        = new DsdAfis.Core.Person();
            request.FingerprintRecord.Person.Gender = DsdAfis.Core.PersonGender.Unknown;


            using (var client = new HttpClient())
            {
                //Passing service base url
                client.BaseAddress = new Uri(ConfigurationManager.AppSettings["WebApiUrl"]);

                client.DefaultRequestHeaders.Clear();
                //Define request data format
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = await client.PostAsync(
                    "api/afis/enroll", new StringContent(request.Json, Encoding.UTF8, "application/json"));

                if (response.IsSuccessStatusCode)
                {
                    return(MessageBase.Deserialize <EnrollResponse>(response.Content.ReadAsStringAsync().Result));
                }
                else
                {
                    return(returnModel);
                }
            }
        }
示例#9
0
        public EnrollResponse EnrollStudent(EnrollRequest request, s16796Context context)
        {
            EnrollResponse enrollResponse = new EnrollResponse();

            context.Database.BeginTransaction();

            var test = context.Student.Where(student => student.IndexNumber.Equals(request.IndexNumber)).FirstOrDefault();

            if (test != null)
            {
                throw new ArgumentException("Index taken!");
            }
            enrollResponse.IndexNumber = request.IndexNumber;

            try
            {
                enrollResponse.IdStudies = context.Studies.Where(studies => studies.Name.Equals(request.Studies)).Select(studies => studies.IdStudy).FirstOrDefault();
            }catch (InvalidOperationException ex)
            {
                context.Database.RollbackTransaction();
                throw new ArgumentException("No studies found with that name");
            }
            enrollResponse.Semester = 1;
            enrollResponse.Studies  = request.Studies;

            try
            {
                var output = context.Enrollment.Where(enroll => enroll.Semester == 1 && enroll.IdStudy == enrollResponse.IdStudies).Select(enr => new
                {
                    IdEnrollment = enr.IdEnrollment,
                    StartDate    = enr.StartDate
                }).First();
                enrollResponse.IdEnrollment = output.IdEnrollment;
                enrollResponse.StartDate    = output.StartDate;
            }catch (InvalidOperationException ex)
            {
                enrollResponse.IdEnrollment = context.Enrollment.Max(enr => enr.IdEnrollment) + 1;
                enrollResponse.StartDate    = DateTime.Now.Date;
                var enrollmentadd = new Enrollment()
                {
                    IdEnrollment = enrollResponse.IdEnrollment,
                    Semester     = 1,
                    IdStudy      = enrollResponse.IdStudies,
                    StartDate    = enrollResponse.StartDate
                };
                context.Enrollment.Add(enrollmentadd);
            }

            var studentsalt = GetSalt(32);

            var nowystudent = new Student()
            {
                IndexNumber  = request.IndexNumber,
                FirstName    = request.FirstName,
                LastName     = request.LastName,
                BirthDate    = DateTime.ParseExact(request.BirthDate, "dd.MM.yyyy", null),
                IdEnrollment = enrollResponse.IdEnrollment,
                Password     = PasswordHasherService.GenerateSaltedHash(request.Password, studentsalt),
                Salt         = studentsalt
            };

            context.Student.Add(nowystudent);
            context.SaveChanges();
            context.Database.CommitTransaction();

            return(enrollResponse);
        }