Example #1
0
        public async Task <ActionResult <List <Model.Presence> > > Get([FromQuery] Model.SearchRequest.PresenceSearchRequest search)
        {
            List <Presence> presence = await _context.Presence.Include(u => u.User).ToListAsync();


            if (search != null)
            {
                if (search.UserId != null)
                {
                    presence = presence.Where(p => p.UserId == search.UserId).ToList();
                }
                if (search.EventId != null)
                {
                    presence = presence.Where(p => p.EventId == search.EventId).ToList();
                }
                if (search.hasNotes != null)
                {
                    presence = presence.Where(p => p.Notes != null).ToList();
                }
                if (search.EventMasterId != null)
                {
                    presence = await _context.Presence
                               .Where(p => p.Event.EventMasterId == search.EventMasterId)
                               .Include(u => u.User)
                               .Include(e => e.Event)
                               .ToListAsync();
                }
            }

            var result = _mapper.Map <List <Model.Presence> >(presence);

            return(result);
        }
Example #2
0
        private async void scaning_Interval_Tick(object sender, EventArgs e)
        {
            numberBefore++;
            lblBefore.Text = numberBefore.ToString();
            //taking frame from picturebox pbCamera
            Bitmap frame        = pbCamera.Image.Clone() as Bitmap;
            bool   savingActive = false;

            //convert frame to grayscale maybe...
            //readQR returns null if user with given qr code does not exist
            if (frame != null)
            {
                if (act == action.idle || act == action.qr_recognition)
                {
                    act            = action.qr_recognition;
                    lblAction.Text = act.ToString();
                    user           = await readQR(frame, apiService_AuthUser);

                    if (user == null)
                    {
                        return;
                    }
                    else
                    {
                        act              = action.face_recognition;
                        lblAction.Text   = act.ToString();
                        lblLastUser.Text = user.FirstName + " " + user.LastName;
                        ticks           += 1;
                        lblTicks.Text    = ticks.ToString();
                        scaning_Interval.Dispose();
                        scaning_Interval.Stop();

                        if (act == action.face_recognition)
                        {
                            await trainRecognizer(user.Id);

                            var search = new Model.SearchRequest.PresenceSearchRequest()
                            {
                                EventId = (int)eventId, UserId = user.Id
                            };
                            var presenceList = await apiService_Presence.Get <List <Model.Presence> >(search);

                            presence = presenceList[0];
                            face_recognition.Start();
                        }
                        //scaning_Interval.Container.Dispose();
                        //act = action.face_detection;
                        //lblAction.Text = act.ToString();
                        //scaning_Interval.Dispose();
                        //face_recognition.Start();
                    }
                    numberAfter++;
                    lblAfter.Text = numberAfter.ToString();
                }
            }
        }
Example #3
0
        private async void loadData()
        {
            var search = new Model.SearchRequest.PresenceSearchRequest() { EventId=eventId };
            var presenceList = await apiService_presence.Get<List<Model.Presence>>(search);

            List<Model.PresenceAdvenced> presenceAdvenced = new List<Model.PresenceAdvenced>();

            foreach (var presence in presenceList)
            {
                var p = new Model.PresenceAdvenced()
                {

                    FirstName = presence.User.FirstName,
                    LastName = presence.User.LastName,
                    UserName = presence.User.UserName,
                    AttendedEvent = presence.PresenceAttendingDateTime != null,
                    AttendedWholeEvent = presence.PresenceAttendingDateTime != null,
                    presenceId = presence.Id,
                    Id=presence.UserId,
                    FaceDetected=presence.FaceDetected,
                    FaceRecognized = presence.FaceRecognized
                };
                p.HaNotes = presence.Notes != null ? presence.Notes.Length > 0 : false;
                p.ScannedFace = presence.Image.Length > 0 ? presence.Image : null;
                var userFacesList = await apiService_authUserFace.Get<List<Model.AuthUserFace>>(new AuthUserFaceSearchRequest() { AuthUserId=presence.UserId,onlyOne=true});
                if (userFacesList.Count > 0)
                {
                    var userFace = userFacesList[0];
                    p.Face = userFace.Face.Length > 0 ? userFace.Face : null;
                }
                presenceAdvenced.Add(p);
            
            }

            dgvPresence.DataSource = presenceAdvenced;

            foreach (DataGridViewRow row in dgvPresence.Rows)
            {
                //face detected
                if (Convert.ToBoolean(row.Cells[9].Value) == true)
                {
                    //face recognized
                    if (Convert.ToBoolean(row.Cells[10].Value) == false)
                    {
                        row.Cells[13].ReadOnly = true;
                    }
                }
                else
                {
                    row.Cells[10].ReadOnly = true;
                    row.Cells[13].ReadOnly = true;
                }


                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);


                    var trainingSearch = new Model.SearchRequest.AuthUserFaceSearchRequest()
                    {
                        AuthUserId = userId,
                        PresenceId = presenceId,
                    };
                    var result = await apiService_authUserFace.Get<List<Model.AuthUserFace>>(trainingSearch);
                    if (result.Count > 0)
                    {
                        row.Cells[14].Value = result[0].Id;
                        row.Cells[13].Value = true;
                    }
                    else
                    {
                        row.Cells[14].Value = 0;
                        row.Cells[13].Value = false;
                    }


            }
        }
Example #4
0
        async void loadData()
        {
            userEvent = await apiService_event.GetById <Model.Event>(eventId);

            lblEventGroupId.Text = userEvent.EventGroupId;

            #region load_dates
            var eventSearch = new EventSearchRequest()
            {
                EventGroupId = userEvent.EventGroupId
            };
            var eventSearchResult = await apiService_event.Get <List <Model.Event> >(eventSearch);

            //taking only events that did not happen
            eventSearchResult = eventSearchResult.Where(e => e.EventDate >= DateTime.Now).OrderBy(e => e.EventDate).ToList();
            if (eventSearchResult.Count <= 1)
            {
                cbMultiple.Checked         = false;
                cbMultiple.Visible         = false;
                panelMultipleDates.Visible = false;
            }
            else
            {
                foreach (var x in eventSearchResult)
                {
                    var d = new Model.DateBasic()
                    {
                        Date = x.EventDate, eventId = x.Id
                    };
                    dates.Add(d);
                }


                for (int i = 0; i < dates.Count; i++)
                {
                    cblDates.Items.Add(dates[i]);
                    cblDates.SetItemChecked(i, true);
                }
                cblDates.DisplayMember = "Display";
            }
            #endregion load_dates

            var presenceSearch = new Model.SearchRequest.PresenceSearchRequest()
            {
                EventId = eventId
            };
            #region search parametres



            #endregion search parametres
            var presence = await apiService_presence.Get <List <Model.Presence> >(presenceSearch);

            var authUserSearch = new Model.SearchRequest.AuthUserSearchRequest();
            #region search parametres
            authUserSearch.FirstName   = txtFirstName.Text;
            authUserSearch.LastName    = txtLastName.Text;
            authUserSearch.UserName    = txtUserName.Text;
            authUserSearch.RoleId      = (int)cbRole.SelectedValue;
            authUserSearch.UserGroupId = (int)cbGroup.SelectedValue;
            #endregion search parametres
            var users = await apiService_authUser.Get <List <Model.AuthUser> >(authUserSearch);

            List <Model.presenceBasic> data = new List <Model.presenceBasic>();
            foreach (Model.AuthUser user in users)
            {
                var temp = new Model.presenceBasic()
                {
                    Id        = user.Id,
                    FirstName = user.FirstName,
                    LastName  = user.LastName,
                    UserName  = user.UserName,
                };
                temp.AttendingEvent = presence.Any(p => p.UserId == user.Id);
                data.Add(temp);
            }
            dgvPresence.DataSource = data;
        }