public IHttpActionResult PostUserAttendance(UserAttendance userAttendance)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.UserAttendances.Add(userAttendance);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (UserAttendanceExists(userAttendance.UserID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = userAttendance.UserID }, userAttendance));
        }
        public IHttpActionResult PutUserAttendance(long id, UserAttendance userAttendance)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != userAttendance.UserID)
            {
                return(BadRequest());
            }

            db.Entry(userAttendance).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserAttendanceExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetUserAttendance(long id)
        {
            UserAttendance userAttendance = db.UserAttendances.Find(id);

            if (userAttendance == null)
            {
                return(NotFound());
            }

            return(Ok(userAttendance));
        }
        public IHttpActionResult DeleteUserAttendance(long id)
        {
            UserAttendance userAttendance = db.UserAttendances.Find(id);

            if (userAttendance == null)
            {
                return(NotFound());
            }

            db.UserAttendances.Remove(userAttendance);
            db.SaveChanges();

            return(Ok(userAttendance));
        }
        public string UserAttendance(UserAttendanceDTO userAttendanceDTO)
        {
            var outputMessage = "Attendance Successfully Registered";

            try
            {
                const int EmpIDLength          = 5;
                var       empId                = userAttendanceDTO.EmpID.ToString().PadLeft(EmpIDLength, '0');
                var       userAttendanceExists = db.UserAttendances.Where(e => e.User.EmpID == empId && e.SessionID == userAttendanceDTO.SessionID &&
                                                                          e.StallID == userAttendanceDTO.StallID).FirstOrDefault();
                var user = db.Users.Where(e => e.EmpID == empId).FirstOrDefault();

                if (user == null)
                {
                    outputMessage = "User Doesnt Exists";
                    return(outputMessage);
                }
                if (userAttendanceExists == null)
                {
                    var newUser = new UserAttendance()
                    {
                        UserID     = user.UserId,
                        SessionID  = userAttendanceDTO.SessionID,
                        StallID    = userAttendanceDTO.StallID,
                        IsAttendee = userAttendanceDTO.IsAttendee,
                        Createdon  = DateTime.UtcNow
                    };
                    db.UserAttendances.Add(newUser);
                    outputMessage = "User Attendance Added.";
                }
                else
                {
                    userAttendanceExists.IsAttendee = userAttendanceDTO.IsAttendee;
                    outputMessage = "User Attendance Updated";
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            { outputMessage = "Attendance Registration Failed."; }
            return(outputMessage);
        }
 public UserAttendanceViewModel(UserAttendance userAttendance)
 {
     Id = userAttendance.Id;
     EventAttendance = new EventAttendanceViewModel(userAttendance.EventAttendanceRef);
     User            = new UserViewModel(userAttendance.UserRef);
 }