Esempio n. 1
0
        public async Task <IActionResult> PutAuthUserFace(int id, Model.AuthUserFace insert)
        {
            var result = _mapper.Map <AuthUserFace>(insert);

            result.Id = id;
            _context.Entry(result).State = EntityState.Modified;


            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AuthUserFaceExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 2
0
        private async void metroButton1_Click(object sender, EventArgs e)
        {
            Image ig = pbUser.Image;
            var   r  = ImageToByte2(ig);


            var insert1 = new Model.AuthUserFace()
            {
                AuthUserId = user.Id, Face = r
            };
            var r11 = await apiService_AuthUserFace.Insert <object>(insert1);
        }
Esempio n. 3
0
        public async Task <ActionResult <Model.AuthUserFace> > PostAuthUserFace(Model.AuthUserFace insert)
        {
            var result = _mapper.Map <AuthUserFace>(insert);

            try
            {
                _context.AuthUserFace.Add(result);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (AuthUserFaceExists(result.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetAuthUserFace", new { id = result.Id }, result));
        }
Esempio n. 4
0
        private async void dgvPresence_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (setup == false)
            {
                //checkbox AttendedEvent
                if (e.ColumnIndex == dgvPresence.Columns[6].Index && e.RowIndex != -1)
                {
                    var row = dgvPresence.Rows[e.RowIndex];
                    var userId = Convert.ToInt32(row.Cells[0].Value);
                    var presenceId = Convert.ToInt32(row.Cells[1].Value);
                    var attendedEvent = Convert.ToBoolean(row.Cells[6].Value);
                    if (attendedEvent == false)
                    {
                        //row.Cells[7].Value = false;
                        row.Cells[7].ReadOnly = true;
                    }
                    else
                    {
                        row.Cells[7].ReadOnly = false;
                    }
                    var presence = await apiService_presence.GetById<Model.Presence>(presenceId);

                    var presenceInsertRequest = new PresenceInsertRequest()
                    {
                        EventId = presence.EventId,
                        UserId = presence.UserId,
                        FaceDetected = presence.FaceDetected,
                        Image = presence.Image,
                        Notes = presence.Notes,
                        FaceRecognized = presence.FaceRecognized,
                        //PresenceAttendingDateTime=presence.PresenceAttendingDateTime,
                        PresenceCreatingDateTime = presence.PresenceCreatingDateTime,
                        //PresenceLeavingDateTime=presence.PresenceLeavingDateTime,
                    };
                    if (attendedEvent == false)
                    {
                        presenceInsertRequest.AttendedWholeEvent = false;
                        presenceInsertRequest.PresenceAttendingDateTime = null;
                        presenceInsertRequest.PresenceLeavingDateTime = null;
                    }
                    else
                    {
                        presenceInsertRequest.AttendedWholeEvent = true;
                        presenceInsertRequest.PresenceAttendingDateTime = presence.PresenceAttendingDateTime;
                        presenceInsertRequest.PresenceLeavingDateTime = null;
                    }
                    await apiService_presence.Update<Model.Presence>(presenceId, presenceInsertRequest);

                    dgvPresence.EndEdit();
                }
                //checkbox attended whole event
                if (e.ColumnIndex == dgvPresence.Columns[7].Index && e.RowIndex != -1)
                {
                    var row = dgvPresence.Rows[e.RowIndex];
                    var userId = Convert.ToInt32(row.Cells[0].Value);
                    var presenceId = Convert.ToInt32(row.Cells[1].Value);
                    var attendedEvent = Convert.ToBoolean(row.Cells[6].Value);
                    var attendedWholeEvent = Convert.ToBoolean(row.Cells[7].Value);


                    var presence = await apiService_presence.GetById<Model.Presence>(presenceId);

                    var presenceInsertRequest = new PresenceInsertRequest()
                    {
                        EventId = presence.EventId,
                        UserId = presence.UserId,
                        FaceDetected = presence.FaceDetected,
                        Image = presence.Image,
                        Notes = presence.Notes,
                        FaceRecognized = presence.FaceRecognized,
                        //PresenceAttendingDateTime=presence.PresenceAttendingDateTime,
                        PresenceCreatingDateTime = presence.PresenceCreatingDateTime,
                        //PresenceLeavingDateTime=presence.PresenceLeavingDateTime,
                    };
                    if (attendedEvent == false)
                    {
                        presenceInsertRequest.AttendedWholeEvent = false;
                        presenceInsertRequest.PresenceAttendingDateTime = null;
                        presenceInsertRequest.PresenceLeavingDateTime = null;
                    }
                    else
                    {
                        presenceInsertRequest.AttendedWholeEvent = true;
                        presenceInsertRequest.PresenceAttendingDateTime = (DateTime)presence.PresenceAttendingDateTime;
                        presenceInsertRequest.PresenceLeavingDateTime = DateTime.Now;
                    }
                    await apiService_presence.Update<Model.Presence>(presenceId, presenceInsertRequest);
                    dgvPresence.EndEdit();
                }
                //checkbox face recognized
                if (e.ColumnIndex == dgvPresence.Columns[10].Index && e.RowIndex != -1)
                {
                    var row = dgvPresence.Rows[e.RowIndex];
                    var userId = Convert.ToInt32(row.Cells[0].Value);
                    var presenceId = Convert.ToInt32(row.Cells[1].Value);
                    var faceRecognized = Convert.ToBoolean(row.Cells[10].Value);

                    var presence = await apiService_presence.GetById<Model.Presence>(presenceId);

                    var presenceInsertRequest = new PresenceInsertRequest()
                    {
                        EventId = presence.EventId,
                        UserId = presence.UserId,
                        FaceDetected = presence.FaceDetected,
                        Image = presence.Image,
                        Notes = presence.Notes,
                        FaceRecognized = faceRecognized,
                        PresenceAttendingDateTime = presence.PresenceAttendingDateTime,
                        PresenceCreatingDateTime = presence.PresenceCreatingDateTime,
                        PresenceLeavingDateTime = presence.PresenceLeavingDateTime,
                        AttendedWholeEvent = presence.AttendedWholeEvent,
                        AttendedEvent = Convert.ToBoolean(row.Cells[6].Value)
                    };
                    await apiService_presence.Update<Model.Presence>(presenceId, presenceInsertRequest);

                    if (faceRecognized == true)
                        row.Cells[13].ReadOnly = true;
                    else
                        row.Cells[13].ReadOnly = false;



                    dgvPresence.EndEdit();
                }
                //checkbox use as training data
                if (e.ColumnIndex == dgvPresence.Columns[13].Index && e.RowIndex != -1)
                {
                    var row = dgvPresence.Rows[e.RowIndex];
                    var userId = Convert.ToInt32(row.Cells[0].Value);
                    var presenceId = Convert.ToInt32(row.Cells[1].Value);
                    var presence = await apiService_presence.GetById<Model.Presence>(presenceId);
                    var useAsTrainingData = Convert.ToBoolean(row.Cells[13].Value);

                    if (useAsTrainingData == true)
                    {
                        Model.AuthUserFace trainingData = new Model.AuthUserFace()
                        {
                            AuthUserId = userId,
                            PresenceId = presenceId,
                            Face = presence.Image
                        };
                        await apiService_authUserFace.Insert<Model.AuthUserFace>(trainingData);
                    }
                    else
                    {
                        //await apiService_authUserFace.Delete<bool>(1);
                    }
                    //



                    dgvPresence.EndEdit();
                }

                if (e.ColumnIndex == dgvPresence.Columns[14].Index && e.RowIndex != -1)
                {
                }
            }
        }
Esempio n. 5
0
        private async void btnSubmit_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                //reading fields from form
                var user = readFields();
                //updating existing user
                if (userId != null)
                {
                    //updating user
                    user.QrCode = authUser.QrCode;
                    await apiService.Update <Model.AuthUser>(userId, user);

                    //updating user image
                    if (!string.IsNullOrEmpty(txtImageSource.Text))
                    {
                        var result = await apiService_authUserImage.Get <List <Model.AuthUserImage> >(new AuthUserFaceSearchRequest()
                        {
                            AuthUserId = authUser.Id
                        });

                        if (result.Count > 0)
                        {
                            var update = new Model.AuthUserImage()
                            {
                                AuthUserId = (int)userId, AuthUserImage1 = ImageToByte2(pbImage.Image)
                            };
                            await apiService_authUserImage.Update <Model.AuthUserImage>(result[0].Id, update);
                        }
                    }
                }
                else
                {
                    //generating new qr code until its unique
                    var findNewCode = true;
                    do
                    {
                        var qrCodeText        = qRCodeHelper.GenerateRandomString(15);
                        var userSearchRequest = new AuthUserSearchRequest()
                        {
                            qrCode = qrCodeText
                        };
                        var qrResult = await apiService.Get <List <Model.AuthUser> >(userSearchRequest);

                        findNewCode = qrResult.Count > 0;
                        if (findNewCode == false)
                        {
                            user.QrCode = qrCodeText;
                        }
                    } while (findNewCode == true);
                    //inserting new user into db
                    var result = await apiService.Insert <Model.AuthUser>(user);

                    //inserting new user image
                    var insert = new Model.AuthUserImage()
                    {
                        AuthUserId = (int)result.Id, AuthUserImage1 = ImageToByte2(pbImage.Image)
                    };
                    await apiService_authUserImage.Insert <Model.AuthUserImage>(insert);

                    //cutting and inserting face from image into db.
                    Image <Gray, byte> img1 = new Image <Gray, byte>((Bitmap)pbImage.Image);
                    var rect = detectFace(img1);
                    if (rect != null)
                    {
                        imageFaceFound = true;
                        var r = cutImage(img1, (Rectangle)rect);
                        Image <Gray, byte> img = r.Copy().Convert <Gray, byte>().Resize(100, 100, Emgu.CV.CvEnum.Inter.Cubic);
                        var insert1            = new Model.AuthUserFace()
                        {
                            AuthUserId = result.Id, Face = ImageToByte2(img.Bitmap)
                        };
                        var r1 = await apiService_authUserFace.Insert <object>(insert1);
                    }
                }
                this.Close();
            }
        }