/// <summary>
        /// Add a new attendance status for the course
        /// </summary>
        /// <param name="dispatchId"></param>
        /// <param name="absence"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool Create(int dispatchId, int absence, int userId)
        {
            bool bRet = false;

            using (var context = GetDbContext())
            {
                DbSet<Dispatch> dispatches = context.Set<Dispatch>();

                var dispatch = dispatches.Where(d => d.Id == dispatchId &&
                            d.TeacherId == userId).FirstOrDefault();
                if (dispatch != null)
                {
                    int population = absence > dispatch.Current ? 0 : dispatch.Current - absence;

                    Attendance attendance = new Attendance() { Dispatch = dispatch, Population = population };
                    dispatch.Attendances.Add(attendance);

                    bRet = true;
                }

                context.SaveChanges();
            }

            return bRet;
        }
    protected void Button2_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {

            Label1.Visible = false;


            DataSet ds = new DataSet();
            String path = "";
            string ticks = DateTime.Now.Ticks.ToString();

            if (FileUpload1.HasFile)
            {
                FileUpload1.SaveAs(Server.MapPath("Images/" + ticks + FileUpload1.FileName));

                path = Server.MapPath("Images/" + ticks + FileUpload1.FileName);
                OpenExcelFile(path, ref ds);
            }
            AttendanceLogic al = new AttendanceLogic();
            Attendance a = new Attendance();
            DateTime d1 = new DateTime();
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                a.EmployeeID = Convert.ToInt32(ds.Tables[0].Rows[i]["EmployeeID"]);

                if (!DateTime.TryParseExact(ds.Tables[0].Rows[i]["ADate"].ToString(), "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out d1))
                {

                }
                a.Adate = d1;
                if (ds.Tables[0].Rows[i]["Mark"].ToString().Equals("P"))
                {
                    a.Mark = true;
                }
                else if (ds.Tables[0].Rows[i]["Mark"].ToString().Equals("A"))
                {
                    a.Mark = false;
                }
                al.Insert(a);
            }
            ds.Tables[0].Columns.Add(new DataColumn("EmployeeName"));
            EmployeeLogic el = new EmployeeLogic();
            for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {
                ds.Tables[0].Rows[i]["EmployeeName"] = (el.SelectByID(Convert.ToInt32(ds.Tables[0].Rows[i]["EmployeeID"]))).Name;
            }
            Repeater1.DataSource = ds;
            Repeater1.DataBind();

        }
        else {
            Label1.Visible = true;
        }
        
    }
        public int MarkAttendance(int empid, int shift)
        {
            var context = new ubietydbEntities();

            Attendance attendance = new Attendance();

            attendance.EmpId = empid;
            attendance.MarkFlagId = shift;
            attendance.MarkTime =  TimeZoneInfo.ConvertTime(new DateTime(DateTime.Now.Ticks), TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
            context.Attendances.Add(attendance);

            return context.SaveChanges();
        }
Example #4
0
        public Attendance CreateNewInstance(Attendance exist, Schedule schedule)
        {
            _attendanceRepository.Evict(exist);
            var o = _employeeRepository.Get(exist.Agent.Id);



            var entity = _entityFactory.Create<Attendance>()
                    .SetProperties<Attendance>(o, schedule.Campaign, schedule.Start, schedule.End);
            entity.SchedulingPayload = _entityFactory.Create<SchedulingPayload>();
            entity.CopyRule(o);
            entity.Joined = false;

            return entity;
        }
Example #5
0
        public DataSet AuthinticateManager(Attendance.Entities.Entities entities)
        {
            DataSet dsManagerLogin = new DataSet();

            try
            {
                SqlDataAdapter daManager = new SqlDataAdapter("[USP_Manager]", connectionString);
                daManager.SelectCommand.Parameters.Add(new SqlParameter("@EMPID", entities.EMPID));
                daManager.SelectCommand.Parameters.Add(new SqlParameter("@LocationName", entities.LocationName));
                daManager.SelectCommand.Parameters.Add(new SqlParameter("@PassCode", entities.passcode));
                daManager.SelectCommand.Parameters.Add(new SqlParameter("@UserID", entities.UserID));
                daManager.SelectCommand.CommandType = CommandType.StoredProcedure;
                daManager.Fill(dsManagerLogin);
                return dsManagerLogin;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    //public int GetEntryStatus(Attendance objAttendance)
    //{
    //    DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
    //    DBDataHelper helper = new DBDataHelper();
    //    List<SqlParameter> lstAttendanceDetail = new List<SqlParameter>();
    //    lstAttendanceDetail.Add(new SqlParameter("@employeeId", objAttendance.EmployeeId));
    //    lstAttendanceDetail.Add(new SqlParameter("@dateTime", objAttendance.Date));
    //    DataTable dt = new DataTable();
    //    DataSet ds;
    //    using (DBDataHelper objDDBDataHelper = new DBDataHelper())
    //    {
    //       ds = objDDBDataHelper.GetDataSet("spGetAttendanceStatus", SQLTextType.Stored_Proc, lstAttendanceDetail);
    //        Employees objEmployee = new Employees();
    //        List<Employees> lstEmployee = new List<Employees>();
    //        return Convert.ToInt32(ds.Tables[0].Rows[0][0]);
    //    }
    //}

    //public int GetExitStatus(Attendance objAttendance)
    //{
    //    DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
    //    DBDataHelper helper = new DBDataHelper();
    //    List<SqlParameter> lstAttendanceDetail = new List<SqlParameter>();
    //    lstAttendanceDetail.Add(new SqlParameter("@employeeId", objAttendance.EmployeeId));
    //    lstAttendanceDetail.Add(new SqlParameter("@dateTime", objAttendance.Date));
    //    DataSet ds;
    //    using (DBDataHelper objDDBDataHelper = new DBDataHelper())
    //    {
    //        ds = objDDBDataHelper.GetDataSet("spGetExitStatus", SQLTextType.Stored_Proc, lstAttendanceDetail);
    //    }
    //    var x = ds.Tables[0].Rows[0][0].ToString();
    //    return (String.IsNullOrEmpty(x)) ? 0 : 1;
    //}

    public bool EntryOrExitEmployee(Attendance objAttendance, out int status)
    {
        DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
        List<SqlParameter> lstAttendanceDetail = new List<SqlParameter>();
        lstAttendanceDetail.Add(new SqlParameter("@employeeId", objAttendance.EmployeeId));
        lstAttendanceDetail.Add(new SqlParameter("@dateTime", objAttendance.Date));
        DataSet ds = new DataSet();
        try
        {
            using (DBDataHelper objDDBDataHelper = new DBDataHelper())
            {
                ds = objDDBDataHelper.GetDataSet("spAssignAttendance", SQLTextType.Stored_Proc, lstAttendanceDetail);
            }
            status = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
            return true;
        }
        catch(Exception ex)
        {
            status = 0;
            return false;
        }
    }
Example #7
0
        public bool SavePettyCashDetails(Attendance.Entities.PettyCashInfo objInfo,int EnteredBy, string Locationname)
        {
            bool success = false;
                try
                {
                    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                    con.Open();
                    SqlCommand command = new SqlCommand("[USP_PettycashDetails]", con);
                    command.CommandType = CommandType.StoredProcedure;
                    //command.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = objInfo.EmpID;
                    command.Parameters.Add("@AccountHolderName", SqlDbType.VarChar).Value = objInfo.AccountName;
                    command.Parameters.Add("@IncomeType", SqlDbType.VarChar).Value = objInfo.AmountType;
                    command.Parameters.Add("@AcountDate", SqlDbType.DateTime).Value = objInfo.AccountDate;
                    command.Parameters.Add("@BillNo", SqlDbType.VarChar).Value = objInfo.BillNum;
                    command.Parameters.Add("@chequeNo", SqlDbType.VarChar).Value = objInfo.ChequeNum;
                    command.Parameters.Add("@locationname", SqlDbType.VarChar).Value = Locationname;
                    command.Parameters.Add("@EnteredBy", SqlDbType.Int).Value = EnteredBy;
                    command.Parameters.Add("@expenditureAmount", SqlDbType.VarChar).Value = objInfo.ExpenseAmount;
                    command.Parameters.Add("@Expdate", SqlDbType.DateTime).Value = objInfo.ExpenseDate;

                    //command.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = objInfo.EmpID;
                    command.Parameters.Add("@ServicemanName", SqlDbType.VarChar).Value = objInfo.ExpenseManName;
                    command.Parameters.Add("@expenditureSubtype", SqlDbType.VarChar).Value = objInfo.ExpenseSubType;
                    command.Parameters.Add("@expenditureTpe", SqlDbType.VarChar).Value = objInfo.Expensetype;
                    command.Parameters.Add("@FromWhom", SqlDbType.VarChar).Value = objInfo.FromWhom;
                    command.Parameters.Add("@Income", SqlDbType.VarChar).Value = objInfo.InitialAmoun;
                    command.Parameters.Add("@expenditureNotes", SqlDbType.VarChar).Value = objInfo.Notes;
                    command.Parameters.Add("@VoucherNo", SqlDbType.VarChar).Value = objInfo.VoucherNum;

                    command.ExecuteNonQuery();
                    con.Close();
                    success = true;
                }
                catch (Exception ex)
                {
                }
                return success;
        }
 public async ValueTask <Attendance> PutAttendanceAsync(Attendance attendance) =>
 await this.apiFactoryClient.PutContentAsync(AttendanceRelativeUrl, attendance);
Example #9
0
        public AttendanceStatus InsertAttendanceById(long classId, long seminarId, long userId, decimal longitude, decimal latitude)//测试成功时间
        {
            if (classId <= 0 || seminarId <= 0 || userId <= 0)
            {
                throw new ArgumentException();
            }
            if (_db.Seminar.Find(seminarId) == null)
            {
                throw new SeminarNotFoundException();
            }
            if (_db.ClassInfo.Find(classId) == null)
            {
                throw new ClassNotFoundException();
            }
            //var u = (from class1 in _db.ClassInfo
            //         where class1.Id == classId
            //         select class1).SingleOrDefault();
            //if (u == null)
            //    throw new ClassNotFoundException();
            //var v = (from seminar in _db.Seminar
            //         where seminar.Id == seminarId
            //         select seminar).SingleOrDefault();
            //if (v == null)
            //    throw new SeminarNotFoundException();
            Attendance attendance = new Attendance();

            attendance.ClassInfo = (from i in _db.ClassInfo
                                    where i.Id == classId
                                    select i).SingleOrDefault();
            attendance.Student = (from j in _db.UserInfo
                                  where j.Id == userId
                                  select j).SingleOrDefault();
            attendance.Seminar = (from k in _db.Seminar
                                  where k.Id == seminarId
                                  select k).SingleOrDefault();

            var location = _db.Location
                           .Include(l => l.Seminar)
                           .Include(l => l.ClassInfo)
                           .SingleOrDefault(s => (s.Seminar.Id == seminarId && s.ClassInfo.Id == classId));
            double distance = GetDistance((double)latitude, (double)longitude, (double)location.Latitude, (double)location.Longitude);

            if (distance < 20)
            {
                if (location.Status == 1)
                {
                    attendance.AttendanceStatus = AttendanceStatus.Present;
                }
                else
                {
                    attendance.AttendanceStatus = AttendanceStatus.Late;
                }
            }
            else
            {
                attendance.AttendanceStatus = AttendanceStatus.Absent;
            }
            _db.Attendances.Add(attendance);
            _db.SaveChanges();
            return(attendance.AttendanceStatus ?? 0);
        }
 public void Add(Attendance attendance)
 {
     _context.Attendance.Add(attendance);
 }
Example #11
0
        /// <summary>
        /// Adds the attendance record.
        /// </summary>
        /// <param name="kioskLocationAttendance">The kiosk location attendance.</param>
        /// <param name="attendance">The attendance.</param>
        private static void AddAttendanceRecord(KioskLocationAttendance kioskLocationAttendance, Attendance attendance)
        {
            if (attendance.GroupId.HasValue && attendance.ScheduleId.HasValue && attendance.PersonAlias != null)
            {
                var groupAttendance = kioskLocationAttendance.Groups.Where(g => g.GroupId == attendance.GroupId).FirstOrDefault();
                if (groupAttendance == null)
                {
                    groupAttendance           = new KioskGroupAttendance();
                    groupAttendance.GroupId   = attendance.GroupId.Value;
                    groupAttendance.GroupName = attendance.Group.Name;
                    groupAttendance.Schedules = new List <KioskScheduleAttendance>();
                    kioskLocationAttendance.Groups.Add(groupAttendance);
                }

                var scheduleAttendance = groupAttendance.Schedules.Where(s => s.ScheduleId == attendance.ScheduleId).FirstOrDefault();
                if (scheduleAttendance == null)
                {
                    scheduleAttendance              = new KioskScheduleAttendance();
                    scheduleAttendance.ScheduleId   = attendance.ScheduleId.Value;
                    scheduleAttendance.ScheduleName = attendance.Schedule.Name;
                    scheduleAttendance.PersonIds    = new List <int>();
                    groupAttendance.Schedules.Add(scheduleAttendance);
                }

                if (!scheduleAttendance.PersonIds.Contains(attendance.PersonAlias.PersonId))
                {
                    scheduleAttendance.PersonIds.Add(attendance.PersonAlias.PersonId);
                }
            }
        }
Example #12
0
        public bool UpdateUserSalTaxDetails(Attendance.Entities.UserInfo objInfo, int EmployeeID, int EnteredBy, string Ipaddress,DateTime EffectiveDt,bool Isnow)
        {
            bool success = false;
            try
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                con.Open();
                SqlCommand command = new SqlCommand("[USP_updateSalTaxDetails]", con);
                command.CommandType = CommandType.StoredProcedure;

                command.Parameters.Add("@UserID", SqlDbType.Int).Value = EmployeeID;
                // command.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = objInfo.EmpID;
                command.Parameters.Add("@WageID", SqlDbType.Int).Value = objInfo.WageID;
                command.Parameters.Add("@salary", SqlDbType.VarChar).Value = objInfo.Salary;
                command.Parameters.Add("@Deductions", SqlDbType.Int).Value = objInfo.Deductions;
                command.Parameters.Add("@MaritalID", SqlDbType.Int).Value = objInfo.MaritalID;
                command.Parameters.Add("@EnteredBy", SqlDbType.Int).Value = EnteredBy;
                command.Parameters.Add("@IPAddress", SqlDbType.VarChar).Value = Ipaddress;
                command.Parameters.Add("@EffectiveDt", SqlDbType.VarChar).Value = EffectiveDt;
                command.Parameters.Add("@IsNow", SqlDbType.VarChar).Value = Isnow;

                command.ExecuteNonQuery();
                con.Close();
                success = true;
            }
            catch (Exception ex)
            {
            }
            return success;
        }
Example #13
0
        /// <summary>
        /// Adds the attendance record.
        /// </summary>
        /// <param name="kioskLocationAttendance">The kiosk location attendance.</param>
        /// <param name="attendance">The attendance.</param>
        private static void AddAttendanceRecord( KioskLocationAttendance kioskLocationAttendance, Attendance attendance )
        {
            if ( attendance.GroupId.HasValue && attendance.ScheduleId.HasValue && attendance.PersonId.HasValue )
            {
                var groupAttendance = kioskLocationAttendance.Groups.Where( g => g.GroupId == attendance.GroupId ).FirstOrDefault();
                if ( groupAttendance == null )
                {
                    groupAttendance = new KioskGroupAttendance();
                    groupAttendance.GroupId = attendance.GroupId.Value;
                    groupAttendance.GroupName = attendance.Group.Name;
                    groupAttendance.Schedules = new List<KioskScheduleAttendance>();
                    kioskLocationAttendance.Groups.Add( groupAttendance );
                }

                var scheduleAttendance = groupAttendance.Schedules.Where( s => s.ScheduleId == attendance.ScheduleId ).FirstOrDefault();
                if ( scheduleAttendance == null )
                {
                    scheduleAttendance = new KioskScheduleAttendance();
                    scheduleAttendance.ScheduleId = attendance.ScheduleId.Value;
                    scheduleAttendance.ScheduleName = attendance.Schedule.Name;
                    scheduleAttendance.PersonIds = new List<int>();
                    groupAttendance.Schedules.Add( scheduleAttendance );
                }

                scheduleAttendance.PersonIds.Add( attendance.PersonId.Value );
            }
        }
Example #14
0
 public void Add(Attendance attend)
 {
     _db.Attendances.Add(attend);
 }
Example #15
0
 public void Remove(Attendance attend)
 {
     _db.Attendances.Remove(attend);
 }
 public bool RecoredAttendance(Attendance attendance)
 {
     _log.LogError("");
     return(_repository.Create <Attendance>(attendance));
 }
 public bool RemoveAttendance(Attendance attendance)
 {
     _log.LogError("");
     return(_repository.Delete <Attendance>(attendance));
 }
 public Attendance FindAttendance(Attendance attendance)
 {
     _log.LogError("");
     return(_repository.Find <Attendance>(A => A.Id == attendance.Id));
 }
 public bool EditAttendance(Attendance attendance)
 {
     _log.LogError("");
     return(_repository.Update <Attendance>(attendance));
 }
 public void AddAttendance(RegistrationNumber regNumber, Attendance attendance)
 {
     _enrolledStudents.First(d => d.Key.RegNumber == regNumber)
     .Value.Attendances.Add(attendance);
 }
Example #21
0
 public bool UpdateEmergencyDetails(Attendance.Entities.EmergencyContactInfo objContactInfo, int EnteredBy, int userid, string ipaddress, DateTime EffectiveDt, bool Isnow)
 {
     bool success = false;
         try
         {
             SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
             con.Open();
             SqlCommand command = new SqlCommand("[USP_UpdateEmergencyContactDetails]", con);
             command.CommandType = CommandType.StoredProcedure;
             command.Parameters.Add("@EnterBy", SqlDbType.Int).Value = EnteredBy;
             command.Parameters.Add("@UserID", SqlDbType.Int).Value = userid;
             command.Parameters.Add("@ipaddress", SqlDbType.VarChar).Value = ipaddress;
             command.Parameters.Add("@Person1", SqlDbType.VarChar).Value = objContactInfo.Person1;
             command.Parameters.Add("@P1Address1", SqlDbType.VarChar).Value = objContactInfo.P1Address1;
             command.Parameters.Add("@P1Address2", SqlDbType.VarChar).Value = objContactInfo.P1Address2;
             command.Parameters.Add("@phone1", SqlDbType.VarChar).Value = objContactInfo.Phone1;
             command.Parameters.Add("@relation1", SqlDbType.VarChar).Value = objContactInfo.Relation1;
             command.Parameters.Add("@person2", SqlDbType.VarChar).Value = objContactInfo.Person2;
             command.Parameters.Add("@p2Address1", SqlDbType.VarChar).Value = objContactInfo.P2Address1;
             command.Parameters.Add("@p2Address2", SqlDbType.VarChar).Value = objContactInfo.P2Address2;
             command.Parameters.Add("@phone2", SqlDbType.VarChar).Value = objContactInfo.Phone2;
             command.Parameters.Add("@relation2", SqlDbType.VarChar).Value = objContactInfo.Relation2;
             command.Parameters.Add("@email2", SqlDbType.VarChar).Value = objContactInfo.Email2;
             command.Parameters.Add("@email1", SqlDbType.VarChar).Value = objContactInfo.Email1;
             command.Parameters.Add("@email3", SqlDbType.VarChar).Value = objContactInfo.Email3;
             command.Parameters.Add("@StateID1", SqlDbType.Int).Value = objContactInfo.StateID1;
             command.Parameters.Add("@StateID2", SqlDbType.Int).Value = objContactInfo.StateID2;
             command.Parameters.Add("@StateID3", SqlDbType.Int).Value = objContactInfo.StateID3;
             command.Parameters.Add("@Zip1", SqlDbType.VarChar).Value = objContactInfo.Zip1;
             command.Parameters.Add("@Zip2", SqlDbType.VarChar).Value = objContactInfo.Zip2;
             command.Parameters.Add("@Zip3", SqlDbType.VarChar).Value = objContactInfo.Zip3;
             command.Parameters.Add("@person3", SqlDbType.VarChar).Value = objContactInfo.Person3;
             command.Parameters.Add("@p3Address1", SqlDbType.VarChar).Value = objContactInfo.P3Address1;
             command.Parameters.Add("@p3Address2", SqlDbType.VarChar).Value = objContactInfo.P3Address2;
             command.Parameters.Add("@phone3", SqlDbType.VarChar).Value = objContactInfo.Phone3;
             command.Parameters.Add("@relation3", SqlDbType.VarChar).Value = objContactInfo.Relation3;
              command.Parameters.Add("@EffectiveDt", SqlDbType.VarChar).Value = EffectiveDt;
             command.Parameters.Add("@IsNow", SqlDbType.VarChar).Value = Isnow;
             command.ExecuteNonQuery();
             con.Close();
             success = true;
         }
         catch (Exception ex)
         {
         }
         return success;
 }
Example #22
0
        /// <summary>
        /// Saves the attendance data.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="group">The group.</param>
        /// <param name="date">The date.</param>
        /// <param name="attendees">The attendees.</param>
        /// <param name="didNotMeet">if set to <c>true</c> then the group is marked as having not met.</param>
        private void SaveAttendanceData(RockContext rockContext, Group group, DateTime date, List <Attendee> attendees, bool didNotMeet)
        {
            var attendanceService  = new AttendanceService(rockContext);
            var personAliasService = new PersonAliasService(rockContext);

            var occurrence        = GetOccurrence(rockContext, group, date, true);
            var existingAttendees = occurrence.Attendees.ToList();

            if (didNotMeet)
            {
                if (!occurrence.ScheduleId.HasValue)
                {
                    //
                    // If the attendance is not part of a schedule, just delete all the records.
                    //
                    foreach (var attendance in existingAttendees)
                    {
                        attendanceService.Delete(attendance);
                    }
                }
                else
                {
                    //
                    // If the occurrence is based on a schedule, clear the DidAttend property.
                    //
                    foreach (var attendance in existingAttendees)
                    {
                        attendance.DidAttend = null;
                    }
                }
            }
            else
            {
                foreach (var attendee in attendees)
                {
                    var attendance = existingAttendees
                                     .Where(a => a.PersonAlias.Person.Guid == attendee.PersonGuid)
                                     .FirstOrDefault();

                    if (attendance == null)
                    {
                        int?personAliasId = personAliasService.GetPrimaryAliasId(attendee.PersonGuid);
                        if (personAliasId.HasValue)
                        {
                            attendance = new Attendance
                            {
                                PersonAliasId = personAliasId,
                                CampusId      = null,
                                StartDateTime = occurrence.Schedule != null && occurrence.Schedule.HasSchedule() ? occurrence.OccurrenceDate.Date.Add(occurrence.Schedule.StartTimeOfDay) : occurrence.OccurrenceDate,
                                DidAttend     = attendee.Attended
                            };

                            occurrence.Attendees.Add(attendance);
                        }
                    }
                    else
                    {
                        // Otherwise, only record that they attended -- don't change their attendance startDateTime
                        attendance.DidAttend = attendee.Attended;
                    }
                }
            }

            occurrence.DidNotOccur = didNotMeet;

            rockContext.SaveChanges();
        }
Example #23
0
        public bool UpdatePersonalDetails(Attendance.Entities.UserInfo objInfo, int EnteredBy, int userID, string ipaddress, DateTime EffectiveDt, bool Isnow)
        {
            bool success = false;
                try
                {
                    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                    con.Open();
                    SqlCommand command = new SqlCommand("[USP_UpdatePersonalDetailsByUserID]", con);
                    command.CommandType = CommandType.StoredProcedure;
                    //command.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = objInfo.EmpID;

                    command.Parameters.Add("@EnterBY", SqlDbType.Int).Value = EnteredBy;
                    command.Parameters.Add("@UserID", SqlDbType.Int).Value = userID;

                    command.Parameters.Add("@Ipaddress", SqlDbType.VarChar).Value = ipaddress;
                    command.Parameters.Add("@Gender", SqlDbType.VarChar).Value = objInfo.Gender;
                    command.Parameters.Add("@phoneNum", SqlDbType.VarChar).Value = objInfo.Phone;
                    command.Parameters.Add("@DateofBirth", SqlDbType.DateTime).Value = objInfo.DateOfBirth;
                    command.Parameters.Add("@mobileNum", SqlDbType.VarChar).Value = objInfo.Mobile;
                    command.Parameters.Add("@businessEmail", SqlDbType.VarChar).Value = objInfo.BusinessEmail;
                    command.Parameters.Add("@personalEmail", SqlDbType.VarChar).Value = objInfo.PersonalEmail;

                    command.Parameters.Add("@County", SqlDbType.VarChar).Value = objInfo.County;
                    command.Parameters.Add("@StateID", SqlDbType.Int).Value = objInfo.StateID;
                    command.Parameters.Add("@Address1", SqlDbType.VarChar).Value = objInfo.Address1;
                    command.Parameters.Add("@Address2", SqlDbType.VarChar).Value = objInfo.Address2;
                    command.Parameters.Add("@zip", SqlDbType.VarChar).Value = objInfo.Zip;
                    command.Parameters.Add("@SSN", SqlDbType.VarChar).Value = objInfo.SSN;
                    command.Parameters.Add("@drivingLicenceNum", SqlDbType.VarChar).Value = objInfo.DriverLicense;
                    command.Parameters.Add("@EffectiveDt", SqlDbType.VarChar).Value = EffectiveDt;
                    command.Parameters.Add("@IsNow", SqlDbType.VarChar).Value = Isnow;
                    command.ExecuteNonQuery();
                    con.Close();
                    success = true;
                }
                catch (Exception ex)
                {
                }
                return success;
        }
        public static void AddOrUpdate(Attendance attendance)
        {
            var attendanceCache = LoadByAttendance(attendance);

            AddOrUpdate(QualifiedKey(attendanceCache.Id), attendanceCache, () => KeyFactory());
        }
Example #25
0
        /// <summary>
        /// Adds attendance data for each child for each weekend since the starting date up to
        /// the weekend ending X weeks ago (endingWeeksAgo).  It will randomly skip a weekend
        /// based on the percentage (pctAttendance) and it will vary which service they attend
        /// between the scheduleId and altScheduleId based on the percentage (pctAttendedRegularService)
        /// given.
        /// </summary>
        /// <param name="familyMembers">The family members.</param>
        /// <param name="startingDate">The first date of attendance</param>
        /// <param name="endDate">The end date of attendance</param>
        /// <param name="pctAttendance">The PCT attendance.</param>
        /// <param name="pctAttendedRegularService">The PCT attended regular service.</param>
        /// <param name="scheduleId">The schedule identifier.</param>
        /// <param name="altScheduleId">The alt schedule identifier.</param>
        /// <param name="attendanceData">The attendance data.</param>
        private void CreateAttendance( ICollection<GroupMember> familyMembers, DateTime startingDate, DateTime endDate, 
            int pctAttendance, int pctAttendedRegularService, int scheduleId, int altScheduleId, Dictionary<Guid, List<Attendance>> attendanceData )
        {
            // foreach weekend between the starting and ending date...
            for ( DateTime date = startingDate; date <= endDate; date = date.AddDays( 7 ) )
            {
                // set an additional factor
                int summerFactor = ( 7 <= date.Month && date.Month <= 9 ) ? summerPercentFactor : 0;
                if ( _random.Next( 0, 100 ) > pctAttendance - summerFactor )
                {
                    continue; // skip this week
                }

                // which service did they attend
                int serviceSchedId = ( _random.Next( 0, 100 ) > pctAttendedRegularService ) ? scheduleId : altScheduleId;

                // randomize check-in time slightly by +- 0-15 minutes (and 1 out of 4 times being late)
                int minutes = _random.Next( 0, 15 );
                int plusMinus = ( _random.Next( 0, 4 ) == 0 ) ? 1 : -1;
                int randomSeconds = _random.Next( 0, 60 );

                var time = _scheduleTimes[serviceSchedId];

                DateTime dtTime = new DateTime( date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second );
                DateTime checkinDateTime = dtTime.AddMinutes( Convert.ToDouble( plusMinus * minutes ) ).AddSeconds( randomSeconds );

                // foreach child in the family
                foreach ( var member in familyMembers.Where( m => m.GroupRoleId == _childRoleId ) )
                {
                    // Find a class room (group location)
                    // TODO -- someday perhaps we will change this to actually find a real GroupLocationSchedule record
                    var item = ( from classroom in _classes
                                 where member.Person.AgePrecise >= classroom.MinAge
                                 && member.Person.AgePrecise <= classroom.MaxAge
                                 orderby classroom.MinAge, classroom.MaxAge
                                 select classroom ).FirstOrDefault();

                    // If no suitable classroom was found, skip
                    if ( item == null )
                    {
                        continue;
                    }

                    // Only create one attendance record per day for each person/schedule/group/location
                    AttendanceCode attendanceCode = new AttendanceCode()
                    {
                        Code = GenerateRandomCode( _securityCodeLength ),
                        IssueDateTime = RockDateTime.Now,
                    };

                    Attendance attendance = new Attendance()
                    {
                        ScheduleId = scheduleId,
                        GroupId = item.GroupId,
                        LocationId = item.LocationId,
                        DeviceId = _kioskDeviceId,
                        AttendanceCode = attendanceCode,
                        StartDateTime = checkinDateTime,
                        EndDateTime = null,
                        DidAttend = true,
                        CampusId = 1
                    };

                    if ( !attendanceData.Keys.Contains( member.Person.Guid ))
                    {
                        attendanceData.Add( member.Person.Guid, new List<Attendance>());
                    }
                    attendanceData[member.Person.Guid].Add( attendance);
                }
            }
        }
        public IActionResult DoClock(string actionType, string by = "ajax")
        {
            int?uid = HttpContext.Session.GetInt32("uid");

            if (uid == null)
            {
                return(RedirectToAction("Login", "Login"));
            }

            string result = "0";

            if (actionType == null || actionType.Trim().Equals(""))
            {
                result = "Some error occured. Please try again later.";
            }

            int acType;

            if (!Int32.TryParse(actionType, out acType) || acType < (int)AttendanceType.In || acType > (int)AttendanceType.Out)
            {
                result = "Some error occured. Please try again later.";
            }

            if (result.Equals("0"))
            {
                if (acType == (int)AttendanceType.In)
                {
                    List <Attendance> clockIns = AttendanceService.FindAttendanceByUserAndDateAndType((int)uid, DateTime.Now, AttendanceType.In);
                    if (clockIns.Count > 0)
                    {
                        Attendance clockIn = clockIns[clockIns.Count - 1];
                        result = "You have clocked in today at ." + clockIn.ActionTime.ToString();
                    }
                    else
                    {
                        AttendanceService.AddAttendance((int)uid, DateTime.Now, (AttendanceType)acType);
                    }
                }
                else
                {
                    DateTime          t         = DateTime.Now;
                    List <Attendance> clockOuts = AttendanceService.FindAttendanceByUserAndDateAndType((int)uid, t, AttendanceType.Out);
                    if (clockOuts.Count > 0)
                    {
                        Attendance clkOut = clockOuts[clockOuts.Count - 1];
                        clkOut.ActionTime = t;
                        AttendanceService.UpdateAttendance(clkOut);
                    }
                    else
                    {
                        AttendanceService.AddAttendance((int)uid, t, (AttendanceType)acType);
                    }
                }
            }

            if (by.Equals("ajax"))
            {
                return(Content(result));
            }
            else
            {
                return(RedirectToAction("History", "Attendance", new { r = result }));
            }
        }
        /// <summary>
        /// Launches the workflow.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="connectionWorkflow">The connection workflow.</param>
        /// <param name="name">The name.</param>
        private void LaunchWorkflow( RockContext rockContext, Attendance attendance, PersonAlias pagePersonAlias, WorkflowType pageWorkflowType )
        {
            if ( pageWorkflowType != null )
            {
                var workflow = Rock.Model.Workflow.Activate( pageWorkflowType, pageWorkflowType.WorkTerm, rockContext );
                if ( workflow != null )
                {
                    workflow.SetAttributeValue( "Person", attendance.PersonAlias.Guid );
                    workflow.SetAttributeValue( "PagePerson", pagePersonAlias.Guid );

                    var workflowService = new Rock.Model.WorkflowService( rockContext );

                    List<string> workflowErrors;
                    if ( workflowService.Process( workflow, attendance, out workflowErrors ) )
                    {
                        if ( workflow.Id != 0 )
                        {

                            if ( workflow.HasActiveEntryForm( CurrentPerson ) )
                            {
                                var qryParam = new Dictionary<string, string>();
                                qryParam.Add( "WorkflowTypeId", pageWorkflowType.Id.ToString() );
                                qryParam.Add( "WorkflowId", workflow.Id.ToString() );
                                NavigateToLinkedPage( "WorkflowEntryPage", qryParam );
                            }
                            else
                            {
                                mdWorkflowLaunched.Show( string.Format( "A '{0}' workflow has been started.",
                                    pageWorkflowType.Name ), ModalAlertType.Information );
                            }
                        }
                        else
                        {
                            mdWorkflowLaunched.Show( string.Format( "A '{0}' workflow was processed (but not persisted).",
                                pageWorkflowType.Name ), ModalAlertType.Information );
                        }
                    }
                    else
                    {
                        mdWorkflowLaunched.Show( "Workflow Processing Error(s):<ul><li>" + workflowErrors.AsDelimited( "</li><li>" ) + "</li></ul>", ModalAlertType.Information );
                    }
                    return;
                }
            }

            Dictionary<string, string> qParams = new Dictionary<string, string>();
            qParams.Add( "AttendanceId", attendance.Id.ToString() );
            qParams.Add( "PagePersonId", pagePersonAlias.Person.Id.ToString() );
            NavigateToLinkedPage( "WorkflowEntryPage", qParams );
        }
 public void Remove(Attendance attendance)
 {
     _context.Attendance.Remove(attendance);
 }
Example #29
0
        public DataSet SaveLogoutDetails(Attendance.Entities.Entities objEntity, int UserLogID)
        {
            DataSet dsLogoutDet = new DataSet();
            try
            {
                SqlDataAdapter daLogout = new SqlDataAdapter("[USP_AddLogout]", connectionString);
                daLogout.SelectCommand.Parameters.Add(new SqlParameter("@UserID", objEntity.UserID));
                daLogout.SelectCommand.Parameters.Add(new SqlParameter("@loguserID", UserLogID));
                daLogout.SelectCommand.Parameters.Add(new SqlParameter("@LogOutDate", objEntity.LogOutDate));
                daLogout.SelectCommand.Parameters.Add(new SqlParameter("@LogOutNotes", objEntity.LogOutNotes));
                daLogout.SelectCommand.CommandType = CommandType.StoredProcedure;
                daLogout.Fill(dsLogoutDet);
                return dsLogoutDet;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #30
0
        protected void btnSave_Click( object sender, EventArgs e )
        {
            RockContext rockContext = new RockContext();
            var attendanceService = new AttendanceService( rockContext );
            var groupMemberService = new GroupMemberService( rockContext );

            foreach ( RepeaterItem item in rptScheduleDates.Items )
            {
                var placeholder = item.FindControl( "phGroups" ) as PlaceHolder;

                if (placeholder != null )
                {
                    // get groups
                    foreach( Control control in placeholder.Controls )
                    {
                        if (control is DropDownList )
                        {
                            var ddlGroup = (DropDownList)control;

                            var groupId = ddlGroup.SelectedValue.AsInteger();
                            var scheduleId = ddlGroup.Attributes["schedule-id"].AsInteger();
                            var scheduleDate = ddlGroup.Attributes["schedule-date"].AsDateTime();
                            var originalGroupId = ddlGroup.Attributes["original-group-id"].AsInteger();

                            // check if person is already registered for this schedule
                            var attending = _personalSchedules.Where( p =>
                                                        p.Date.Date == scheduleDate.Value.Date
                                                        && p.Schedule.Id == scheduleId
                                                        && p.Group.Id == groupId )
                                                        .Any();

                            if ( originalGroupId != 0 && groupId == 0 )
                            {
                                RemovePersonRsvp( CurrentPerson, originalGroupId, scheduleId, scheduleDate );
                            }
                            else if (!attending && groupId != 0 )
                            {
                                // remove existing record
                                if ( originalGroupId != 0 )
                                {
                                    RemovePersonRsvp( CurrentPerson, originalGroupId, scheduleId, scheduleDate );
                                }

                                // mark them as coming
                                var attendanceRecord = new Attendance();
                                attendanceRecord.PersonAliasId = CurrentPersonAliasId;
                                attendanceRecord.GroupId = groupId;
                                attendanceRecord.ScheduleId = scheduleId;
                                attendanceRecord.StartDateTime = scheduleDate.Value.Date;
                                attendanceRecord.RSVP = RSVP.Yes;
                                attendanceRecord.LocationId = _location.Id;

                                attendanceService.Add( attendanceRecord );
                                rockContext.SaveChanges();

                                // add them to the group
                                var groupMember = groupMemberService.Queryable().Where( m => m.PersonId == CurrentPersonId && m.GroupId == groupId ).FirstOrDefault();

                                if (groupMember == null )
                                {
                                    bool createAsInactive = GetAttributeValue( "GroupMembersInactive" ).AsBoolean();

                                    groupMember = new GroupMember();
                                    groupMemberService.Add( groupMember );
                                    groupMember.PersonId = CurrentPersonId.Value;
                                    groupMember.GroupId = groupId;
                                    groupMember.GroupMemberStatus = createAsInactive ? GroupMemberStatus.Inactive : GroupMemberStatus.Active;
                                    groupMember.GroupRoleId = _groupRoleId;
                                }

                                rockContext.SaveChanges();

                                var scheduleName = new ScheduleService( rockContext ).Queryable().Where( s => s.Id == scheduleId ).Select( s => s.Name ).FirstOrDefault();

                                if ( !string.IsNullOrWhiteSpace( GetAttributeValue( "DescriptionAttribute" ) ) )
                                {
                                    groupMember.LoadAttributes();
                                    groupMember.SetAttributeValue( GetAttributeValue( "DescriptionAttribute" ), string.Format( "{0} {1}", scheduleDate.Value.ToShortDateString(), scheduleName ) );
                                    groupMember.SaveAttributeValues();
                                }
                            }

                        }
                    }
                }
            }

            nbMessages.NotificationBoxType = NotificationBoxType.Success;
            nbMessages.Text = "Your changes have been saved.";
        }
        public void Update(Attendance Attendances)
        {
            _context.DALContext.AttendancesDAL.Update(Attendances);

            PrepareForEmail(Attendances);
        }
Example #32
0
        public bool AddUser(Attendance.Entities.UserInfo objInfo, Attendance.Entities.EmergencyContactInfo objContactInfo,int EnteredBy, string Locationname, string PhotoLink)
        {
            bool success=false;
            try
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                con.Open();
                SqlCommand command = new SqlCommand("[USP_INSERT]", con);
                command.CommandType = CommandType.StoredProcedure;

                //command.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = objInfo.EmpID;
                command.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = objInfo.Firstname;
                command.Parameters.Add("@LastName", SqlDbType.VarChar).Value = objInfo.Lastname;
                command.Parameters.Add("@ProfessionalFirstName", SqlDbType.VarChar).Value = objInfo.BFirstname;
                command.Parameters.Add("@ProfessionalLastName", SqlDbType.VarChar).Value = objInfo.BLastname;

                command.Parameters.Add("@Startdate", SqlDbType.DateTime).Value = objInfo.StartDt;
                command.Parameters.Add("@DeptName", SqlDbType.VarChar).Value = objInfo.Deptname;
                command.Parameters.Add("@Designation", SqlDbType.VarChar).Value = objInfo.Designation;

                command.Parameters.Add("@Location", SqlDbType.VarChar).Value = Locationname;
                command.Parameters.Add("@EnteredBy", SqlDbType.Int).Value = EnteredBy;
                command.Parameters.Add("@scheduleID", SqlDbType.Int).Value = objInfo.ScheduleID;
                command.Parameters.Add("@IsActive", SqlDbType.Bit).Value = objInfo.IsActive;

                command.Parameters.Add("@photoLink", SqlDbType.VarChar).Value = PhotoLink;
                command.Parameters.Add("@EmpTypeID", SqlDbType.Int).Value = objInfo.EmpTypeID;
                command.Parameters.Add("@ShiftID", SqlDbType.Int).Value = objInfo.ShiftID;
                command.Parameters.Add("@Gender", SqlDbType.VarChar).Value = objInfo.Gender;

                command.Parameters.Add("@phoneNum", SqlDbType.VarChar).Value = objInfo.Phone;
                command.Parameters.Add("@DateofBirth", SqlDbType.DateTime).Value = objInfo.DateOfBirth;
                command.Parameters.Add("@mobileNum", SqlDbType.VarChar).Value = objInfo.Mobile;

                command.Parameters.Add("@BusinessEmail", SqlDbType.VarChar).Value = objInfo.BusinessEmail;
                command.Parameters.Add("@PersonalEmail", SqlDbType.VarChar).Value = objInfo.PersonalEmail;
                command.Parameters.Add("@MaritalStatusID", SqlDbType.Int).Value = objInfo.MaritalID;

                command.Parameters.Add("@County", SqlDbType.VarChar).Value = objInfo.County;
                command.Parameters.Add("@WageID", SqlDbType.Int).Value = objInfo.WageID;
                command.Parameters.Add("@Deductions", SqlDbType.Int).Value = objInfo.Deductions;

                command.Parameters.Add("@Salary", SqlDbType.VarChar).Value = objInfo.Salary;
                command.Parameters.Add("@Person1", SqlDbType.VarChar).Value = objContactInfo.Person1;
                command.Parameters.Add("@P1Address1", SqlDbType.VarChar).Value = objContactInfo.P1Address1;

                command.Parameters.Add("@P1Address2", SqlDbType.VarChar).Value = objContactInfo.P1Address2;
                command.Parameters.Add("@phone1", SqlDbType.VarChar).Value = objContactInfo.Phone1;
                command.Parameters.Add("@relation1", SqlDbType.VarChar).Value = objContactInfo.Relation1;

                command.Parameters.Add("@person2", SqlDbType.VarChar).Value = objContactInfo.Person2;
                command.Parameters.Add("@p2Address1", SqlDbType.VarChar).Value = objContactInfo.P2Address1;
                command.Parameters.Add("@p2Address2", SqlDbType.VarChar).Value = objContactInfo.P2Address2;

                command.Parameters.Add("@phone2", SqlDbType.VarChar).Value = objContactInfo.Phone2;
                command.Parameters.Add("@relation2", SqlDbType.VarChar).Value = objContactInfo.Relation2;
                command.Parameters.Add("@email2", SqlDbType.VarChar).Value = objContactInfo.Email2;
                command.Parameters.Add("@email1", SqlDbType.VarChar).Value = objContactInfo.Email1;

                command.Parameters.Add("@email3", SqlDbType.VarChar).Value = objContactInfo.Email3;
                command.Parameters.Add("@StateID1", SqlDbType.Int).Value = objContactInfo.StateID1;
                command.Parameters.Add("@StateID2", SqlDbType.Int).Value = objContactInfo.StateID2;
                command.Parameters.Add("@StateID3", SqlDbType.Int).Value = objContactInfo.StateID3;

                command.Parameters.Add("@Zip1", SqlDbType.VarChar).Value = objContactInfo.Zip1;
                command.Parameters.Add("@Zip2", SqlDbType.VarChar).Value = objContactInfo.Zip2;
                command.Parameters.Add("@Zip3", SqlDbType.VarChar).Value = objContactInfo.Zip3;

                command.Parameters.Add("@person3", SqlDbType.VarChar).Value = objContactInfo.Person3;
                command.Parameters.Add("@p3Address1", SqlDbType.VarChar).Value = objContactInfo.P3Address1;
                command.Parameters.Add("@p3Address2", SqlDbType.VarChar).Value = objContactInfo.P3Address2;

                command.Parameters.Add("@phone3", SqlDbType.VarChar).Value = objContactInfo.Phone3;
                command.Parameters.Add("@relation3", SqlDbType.VarChar).Value = objContactInfo.Relation3;
                command.Parameters.Add("@StateID", SqlDbType.Int).Value = objInfo.StateID;

                command.Parameters.Add("@Address1", SqlDbType.VarChar).Value = objInfo.Address1;
                command.Parameters.Add("@Address2", SqlDbType.VarChar).Value = objInfo.Address2;
                command.Parameters.Add("@zip", SqlDbType.VarChar).Value = objInfo.Zip;

                command.Parameters.Add("@SSN", SqlDbType.VarChar).Value = objInfo.SSN;
                command.Parameters.Add("@drivingLicenceNum", SqlDbType.VarChar).Value = objInfo.DriverLicense;
                command.ExecuteNonQuery();
                con.Close();
                success = true;
            }
            catch (Exception ex)
            {
            }
            return success;
        }
        public IActionResult GetHistory(string start, string end, string uid)
        {
            int      u;
            DateTime startTime, endTime;

            if (start == null ||
                end == null ||
                uid == null ||
                !Int32.TryParse(uid, out u) ||
                !DateTime.TryParse(start, out startTime) ||
                !DateTime.TryParse(end, out endTime) ||
                u <= 0)
            {
                return(Content(""));
            }

            List <Attendance> attendances    = AttendanceService.FindAttendanceByUserWithinDates(u, startTime, endTime);
            string            attendanceJson = "";

            attendanceJson += "[";
            for (int i = 0; i < attendances.Count; i++)
            {
                Attendance attendance = attendances[i];
                if (i == 0)
                {
                    attendanceJson += "{";
                }
                else
                {
                    attendanceJson += ",{";
                }

                double timeStamp = ((DateTime)attendance.ActionTime).Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                timeStamp *= 1000;

                //DateTime time = (DateTime)attendance.ActionTime;
                //string timeStamp = time.Year + "-";
                //timeStamp += time.Month < 10 ? "0" + time.Month : "" + time.Month;
                //timeStamp += "-";
                //timeStamp += time.Day < 10 ? "0" + time.Day : "" + time.Day;
                //timeStamp += "T";
                //timeStamp += time.Hour < 10 ? "0" + time.Hour : "" + time.Hour;
                //timeStamp += ":";
                //timeStamp += time.Minute < 10 ? "0" + time.Minute : "" + time.Minute;
                //timeStamp += ":";
                //timeStamp += time.Second < 10 ? "0" + time.Second : "" + time.Second;
                //timeStamp += ".";
                //if (time.Millisecond > 99)
                //{
                //    timeStamp += "" + time.Millisecond;
                //}
                //else if (time.Millisecond > 9 && time.Millisecond <= 99)
                //{
                //    timeStamp += "0" + time.Millisecond;

                //}
                //else
                //{
                //    timeStamp += "00" + time.Millisecond;

                //}


                attendanceJson += "\"title\":\"" + (attendance.ActionType == (int)AttendanceType.In ? "Clock in" : "Clock out") + "\",";
                attendanceJson += "\"start\":" + timeStamp + ",";
                attendanceJson += "\"end\":" + timeStamp + "";
                //attendanceJson += "\"start\":\"" + timeStamp + "\",";
                //attendanceJson += "\"end\":\"" + timeStamp + "\"";

                attendanceJson += "}";
            }
            attendanceJson += "]";

            return(Content(attendanceJson));
        }
 private void Act(Attendance attendance) => _participant.Attend(attendance);
Example #35
0
        public void SaveManagerDetails(Attendance.Entities.Entities entities)
        {

            try
            {
                SqlConnection con = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand("USP_AddIP", con);
                cmd.CommandType = CommandType.StoredProcedure;
                con.Open();
                cmd.Parameters.AddWithValue("@LocationName", entities.LocationName);
                cmd.Parameters.AddWithValue("@PassCode", entities.passcode);
                cmd.Parameters.AddWithValue("@EMPID", entities.EMPID);
                cmd.Parameters.AddWithValue("@IpAddress", entities.IpAddress);
                cmd.Parameters.AddWithValue("@CurrentDate", entities.StartTime);

                cmd.ExecuteNonQuery();
                con.Close();

            }
            catch (Exception ex)
            {
                throw ex;
            }



        }
Example #36
0
 public void Add(Attendance attendance)
 {
     db.Attendances.Add(attendance);
     db.SaveChanges();
 }
 public List<Attendance> GetEmployeesLateByDate(DateTime date)
 {
     List<Attendance> objAttendances = new List<Attendance>();
     DataTable dt;
     DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
     List<SqlParameter> list_params = new List<SqlParameter>() { new SqlParameter("@date", date) };
     try
     {
         using (DBDataHelper helper = new DBDataHelper())
         {
             dt = helper.GetDataTable("spGetEmployeesDefaultersByDate", SQLTextType.Stored_Proc, list_params);
             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 Attendance objAttendance = new Attendance();
                 objAttendance.EmployeeId = Convert.ToInt32(dt.Rows[i]["EmployeeId"]);
                 objAttendance.EntryTime = Convert.ToDateTime(dt.Rows[0]["EntryTime"]);
                 objAttendances.Add(objAttendance);
             }
         }
         return objAttendances;
     }
     catch (Exception)
     {
         return objAttendances;
     }
 }
Example #38
0
 public void Delete(Attendance attendance)
 {
     db.Attendances.Remove(attendance);
     db.SaveChanges();
 }
Example #39
0
        public int SaveAttendanceHistory(Attendance.Entities.AttendenceInfo objInfo)
        {
            DataSet ds = new DataSet();
                int AtnLogID = 0;
                try
                {
                    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                    SqlCommand cmd = new SqlCommand();
                    SqlDataAdapter da = new SqlDataAdapter("[USP_SaveEmpAttendanceHistory]", con);

                    da.SelectCommand.Parameters.Add(new SqlParameter("@userid", objInfo.Userid));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Wkgdays", objInfo.WorkingDays));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Atndays", objInfo.AttendDays));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Leaves", objInfo.Leaves));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Noshow", objInfo.NoShow));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@PaidLeaves", objInfo.PaidLeaves));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@PaidLeavesUsed", objInfo.PaidLeavesUsed));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@PaidLeavesBalanced", objInfo.PaidLeavesBalanced));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@TotalCalLeaves", objInfo.TotalCalLeaves1));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@EnteredDate", objInfo.EnterDate));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@EnterBy", objInfo.EnterBy));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@month", objInfo.Mnth));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@year", objInfo.Yr));

                    da.SelectCommand.CommandType = CommandType.StoredProcedure;
                    da.Fill(ds);
                    if (ds.Tables.Count > 0)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            AtnLogID = Convert.ToInt32(ds.Tables[0].Rows[0]["AtnLogID"].ToString());
                        }
                    }

                }
                catch (Exception ex)
                {
                }
                return AtnLogID;
        }
Example #40
0
        public JsonResult SaveAttendanceForClass(List <string[]> myData)
        {
            int nUser_Id;

            nStudentIdArr = (long[])TempData.Peek("StudentIdArr");

            string   sReturnText = string.Empty;
            DateTime termEndDate;
            DateTime termStartDate;

            using (var dbcontext = new SchoolERPDBContext())
            {
                //nUser_Id = dbcontext.Users.Where(x => x.User_Id == User.Identity.Name).ToList()[0].Id; ;
                nUser_Id = 4;
            }
            int nCount   = myData.ToList().Count;
            int nTerm_Id = Convert.ToInt16(TempData.Peek("Term_Id_For_Attendance"));

            int nLoopCount = 0;

            using (var dbcontext = new SchoolERPDBContext())
            {
                termEndDate   = dbcontext.Term.Where(x => x.Id == nTerm_Id).ToList()[0].To_Date;
                termStartDate = dbcontext.Term.Where(x => x.Id == nTerm_Id).ToList()[0].From_Date;
            }

            TimeSpan difference = termEndDate - termStartDate;
            int      nDays      = Convert.ToInt16(difference.TotalDays);

            nDays = nDays + 1;

            using (var dbcontext = new SchoolERPDBContext())
            {
                using (var transaction = dbcontext.Database.BeginTransaction())
                {
                    try
                    {
                        for (int iAttendanceLoopCount = 1; iAttendanceLoopCount < myData.ToList().Count(); iAttendanceLoopCount++)
                        {
                            for (int nColumnCount = 3; nColumnCount < 3 + nDays; nColumnCount++)
                            {
                                Attendance newAttendance = new Attendance();
                                newAttendance.Academic_Year = Convert.ToInt32(GetAcademicYear());
                                if (Convert.ToString(myData[iAttendanceLoopCount][nColumnCount]) != "P" && Convert.ToString(myData[iAttendanceLoopCount][nColumnCount]) != "H" && Convert.ToString(myData[iAttendanceLoopCount][nColumnCount]) != "PH" && Convert.ToString(myData[iAttendanceLoopCount][nColumnCount]) != null)
                                {
                                    newAttendance.Class_Id     = Convert.ToInt16(TempData.Peek("Class_Id_For_Attendance"));
                                    newAttendance.Section_Id   = Convert.ToInt16(TempData.Peek("Section_Id_For_Attendance"));
                                    newAttendance.Leave_Date   = termStartDate.AddDays(nColumnCount - 3);
                                    newAttendance.Student_Id   = nStudentIdArr[iAttendanceLoopCount - 1];
                                    newAttendance.Leave_Reason = myData[iAttendanceLoopCount][nColumnCount];
                                    newAttendance.Is_Active    = true;
                                    //newAttendance.Is_Deleted = false;
                                    newAttendance.Term_Id       = Convert.ToInt16(TempData.Peek("Term_Id_For_Attendance"));
                                    newAttendance.Created_By    = 4;
                                    newAttendance.Created_On    = DateTime.Now;
                                    newAttendance.Academic_Year = Convert.ToInt16(TempData.Peek("Year_For_Attendance"));

                                    if (dbcontext.Attendance.Where(a => a.Student_Id == newAttendance.Student_Id && a.Academic_Year == newAttendance.Academic_Year && a.Leave_Date == newAttendance.Leave_Date && (a.Is_Deleted == false || a.Is_Deleted == null)).Count() == 0)
                                    {
                                        dbcontext.Attendance.Add(newAttendance);
                                        dbcontext.SaveChanges();
                                    }
                                    else
                                    {
                                        var attendanceId = dbcontext.Attendance.Where(a => a.Student_Id == newAttendance.Student_Id && a.Academic_Year == newAttendance.Academic_Year && a.Leave_Date == newAttendance.Leave_Date && (a.Is_Deleted == false || a.Is_Deleted == null)).ToList()[0].Id;

                                        Attendance attendanceToBeUpdated = dbcontext.Attendance.Find(attendanceId);

                                        attendanceToBeUpdated.Leave_Reason = myData[iAttendanceLoopCount][nColumnCount];
                                        attendanceToBeUpdated.Is_Active    = true;

                                        dbcontext.Entry(attendanceToBeUpdated).State = EntityState.Modified;
                                        dbcontext.SaveChanges();
                                    }
                                }
                                else
                                {
                                    newAttendance.Leave_Date = termStartDate.AddDays(nColumnCount - 3);
                                    string LeaveReason = myData[iAttendanceLoopCount][nColumnCount];
                                    if (dbcontext.Attendance.Where(a => a.Student_Id == newAttendance.Student_Id && a.Academic_Year == newAttendance.Academic_Year && a.Leave_Date == newAttendance.Leave_Date && (a.Is_Deleted == false || a.Is_Deleted == null) && a.Leave_Reason != LeaveReason).Count() > 0)
                                    {
                                        var attendanceId = dbcontext.Attendance.Where(a => a.Student_Id == newAttendance.Student_Id && a.Academic_Year == newAttendance.Academic_Year && a.Leave_Date == newAttendance.Leave_Date && (a.Is_Deleted == false || a.Is_Deleted == null)).ToList()[0].Id;

                                        Attendance attendanceToBeUpdated = dbcontext.Attendance.Find(attendanceId);

                                        attendanceToBeUpdated.Leave_Reason = myData[iAttendanceLoopCount][nColumnCount];
                                        attendanceToBeUpdated.Is_Active    = false;
                                        attendanceToBeUpdated.Is_Deleted   = true;

                                        dbcontext.Entry(attendanceToBeUpdated).State = EntityState.Modified;
                                        dbcontext.SaveChanges();
                                    }
                                }

                                if (iAttendanceLoopCount == myData.ToList().Count() - 1 && nColumnCount == 3 + (nDays - 1))
                                {
                                    transaction.Commit();
                                    sReturnText = "OK";
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                    }
                }
                return(Json(sReturnText, JsonRequestBehavior.AllowGet));
            }
        }
Example #41
0
        public bool SaveSalaryHistory(Attendance.Entities.SalaryInfo objInfo)
        {
            DataSet ds = new DataSet();
                bool success = false;
                try
                {
                    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                    SqlCommand cmd = new SqlCommand();
                    SqlDataAdapter da = new SqlDataAdapter("[USP_SaveEmpSalaryHistory]", con);

                    da.SelectCommand.Parameters.Add(new SqlParameter("@AtnLogID", objInfo.AtnLogID));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@CalSalary", objInfo.CalSalary));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Bonus", objInfo.Bonus));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Incentives", objInfo.Incentives));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@PrevUnpaid", objInfo.PrevUnpaid));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Advancepaid", objInfo.AdvancePaid));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@ExpensesRecieved", objInfo.Expenses));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@LoanDeduct", objInfo.LoanDeduct));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@TotalPay", objInfo.TotalPay));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@EnteredDate", objInfo.EnteredDate));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@EnterBy", objInfo.EnterBy));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Month", objInfo.Mnth));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@Year", objInfo.Years));
                    da.SelectCommand.Parameters.Add(new SqlParameter("@InternalNotes", objInfo.InternalNotes));

                    da.SelectCommand.CommandType = CommandType.StoredProcedure;
                    da.Fill(ds);
                    if (ds.Tables.Count > 0)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            success = true;
                        }
                    }

                }
                catch (Exception ex)
                {
                }
                return success;
        }
        /// <summary>
        /// Handles the Click event of the lbSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void lbSave_Click(object sender, EventArgs e)
        {
            if (_group != null && _occurrence != null)
            {
                var rockContext        = new RockContext();
                var attendanceService  = new AttendanceService(rockContext);
                var personAliasService = new PersonAliasService(rockContext);
                var locationService    = new LocationService(rockContext);

                bool dateAdjusted = false;

                DateTime startDate = _occurrence.Date;

                // If this is a manuall entered occurrence, check to see if date was changed
                if (!_occurrence.ScheduleId.HasValue)
                {
                    DateTime?originalDate = PageParameter("Date").AsDateTime();
                    if (originalDate.HasValue && originalDate.Value.Date != startDate.Date)
                    {
                        startDate    = originalDate.Value.Date;
                        dateAdjusted = true;
                    }
                }
                DateTime endDate = startDate.AddDays(1);

                var existingAttendees = attendanceService
                                        .Queryable("PersonAlias")
                                        .Where(a =>
                                               a.GroupId == _group.Id &&
                                               a.LocationId == _occurrence.LocationId &&
                                               a.ScheduleId == _occurrence.ScheduleId &&
                                               a.StartDateTime >= startDate &&
                                               a.StartDateTime < endDate);

                if (dateAdjusted)
                {
                    foreach (var attendee in existingAttendees)
                    {
                        attendee.StartDateTime = _occurrence.Date;
                    }
                }

                // If did not meet was selected and this was a manually entered occurrence (not based on a schedule/location)
                // then just delete all the attendance records instead of tracking a 'did not meet' value
                if (cbDidNotMeet.Checked && !_occurrence.ScheduleId.HasValue)
                {
                    foreach (var attendance in existingAttendees)
                    {
                        attendanceService.Delete(attendance);
                    }
                }
                else
                {
                    int?campusId = locationService.GetCampusIdForLocation(_occurrence.LocationId);
                    if (!campusId.HasValue)
                    {
                        campusId = _group.CampusId;
                    }
                    if (!campusId.HasValue && _allowCampusFilter)
                    {
                        var campus = CampusCache.Read(bddlCampus.SelectedValueAsInt() ?? 0);
                        if (campus != null)
                        {
                            campusId = campus.Id;
                        }
                    }

                    if (cbDidNotMeet.Checked)
                    {
                        // If the occurrence is based on a schedule, set the did not meet flags
                        foreach (var attendance in existingAttendees)
                        {
                            attendance.DidAttend   = null;
                            attendance.DidNotOccur = true;
                        }
                    }

                    foreach (var attendee in _attendees)
                    {
                        var attendance = existingAttendees
                                         .Where(a => a.PersonAlias.PersonId == attendee.PersonId)
                                         .FirstOrDefault();

                        if (attendance == null)
                        {
                            int?personAliasId = personAliasService.GetPrimaryAliasId(attendee.PersonId);
                            if (personAliasId.HasValue)
                            {
                                attendance               = new Attendance();
                                attendance.GroupId       = _group.Id;
                                attendance.ScheduleId    = _group.ScheduleId;
                                attendance.PersonAliasId = personAliasId;
                                attendance.StartDateTime = _occurrence.Date.Date.Add(_occurrence.StartTime);
                                attendance.LocationId    = _occurrence.LocationId;
                                attendance.CampusId      = campusId;
                                attendance.ScheduleId    = _occurrence.ScheduleId;

                                // check that the attendance record is valid
                                cvAttendance.IsValid = attendance.IsValid;
                                if (!cvAttendance.IsValid)
                                {
                                    cvAttendance.ErrorMessage = attendance.ValidationResults.Select(a => a.ErrorMessage).ToList().AsDelimited("<br />");
                                    return;
                                }

                                attendanceService.Add(attendance);
                            }
                        }

                        if (attendance != null)
                        {
                            if (cbDidNotMeet.Checked)
                            {
                                attendance.DidAttend   = null;
                                attendance.DidNotOccur = true;
                            }
                            else
                            {
                                attendance.DidAttend   = attendee.Attended;
                                attendance.DidNotOccur = null;
                            }
                        }
                    }
                }

                if (_occurrence.LocationId.HasValue)
                {
                    Rock.CheckIn.KioskLocationAttendance.Flush(_occurrence.LocationId.Value);
                }

                rockContext.SaveChanges();

                WorkflowType workflowType     = null;
                Guid?        workflowTypeGuid = GetAttributeValue("Workflow").AsGuidOrNull();
                if (workflowTypeGuid.HasValue)
                {
                    var workflowTypeService = new WorkflowTypeService(rockContext);
                    workflowType = workflowTypeService.Get(workflowTypeGuid.Value);
                    if (workflowType != null)
                    {
                        try
                        {
                            var workflow = Workflow.Activate(workflowType, _group.Name);

                            workflow.SetAttributeValue("StartDateTime", _occurrence.Date.ToString("o"));
                            workflow.SetAttributeValue("Schedule", _group.Schedule.Guid.ToString());

                            List <string> workflowErrors;
                            new WorkflowService(rockContext).Process(workflow, _group, out workflowErrors);
                        }
                        catch (Exception ex)
                        {
                            ExceptionLogService.LogException(ex, this.Context);
                        }
                    }
                }

                var qryParams = new Dictionary <string, string> {
                    { "GroupId", _group.Id.ToString() }
                };

                var groupTypeIds = PageParameter("GroupTypeIds");
                if (!string.IsNullOrWhiteSpace(groupTypeIds))
                {
                    qryParams.Add("GroupTypeIds", groupTypeIds);
                }

                NavigateToParentPage(qryParams);
            }
        }
Example #43
0
        public bool UpdatePaidLeavesDetAfterFinalPayroll(Attendance.Entities.AttendenceInfo objInfo, DateTime CurrentDt,string ip)
        {
            bool success = false;
                try
                {
                    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
                    con.Open();
                    SqlCommand command = new SqlCommand("[USP_SavePaidLeaveDetAfterFinalPayroll]", con);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add("@IPAddress", SqlDbType.VarChar).Value = ip;
                    command.Parameters.Add("@LeaveAvail", SqlDbType.Int).Value = objInfo.PaidLeaves;
                    command.Parameters.Add("@CurrentDt", SqlDbType.DateTime).Value = CurrentDt;
                    command.Parameters.Add("@LeaveUsed", SqlDbType.Int).Value = objInfo.PaidLeavesUsed;
                    command.Parameters.Add("@LeaveBalanced", SqlDbType.Int).Value = objInfo.PaidLeavesBalanced;
                    command.Parameters.Add("@EnterBY", SqlDbType.Int).Value = objInfo.EnterBy ;
                    command.Parameters.Add("@PaidLeaveUserID", SqlDbType.Int).Value = objInfo.Userid;
                   // command.Parameters.Add("@EnteredBy", SqlDbType.Int).Value = objInfo.EnterBy;

                    command.Parameters.Add("@EnterDt", SqlDbType.DateTime).Value = objInfo.EnterDate;
                    command.ExecuteNonQuery();
                    con.Close();
                    success = true;
                }
                catch (Exception ex)
                {
                }
                return success;
        }
        static void Main(string[] args)
        {
            var control = new StudentControl();

            var students = control.GetAllStudents();


            Console.WriteLine("Students\n-----------------------------------------------");
            foreach (var s in students)
            {
                Console.WriteLine("Name: " + s.People.FirstName + " " + s.People.LastName);
                foreach (var g in s.Grades)
                {
                    Console.WriteLine("Course: " + g.Courses.CourseName + " Grade: " + g.Grade);
                    Console.WriteLine("--------------------------------------------------------");
                }
            }

            var peopleCtx = new PeopleControl();

            //var people = peopleCtx.GetAllPeople();


            //// Insert
            //peopleCtx.InsertPeople(new People() { FirstName = "Algot", LastName = "Alfredsson", Email = "*****@*****.**" });

            //people.ToList().ForEach(x => Console.WriteLine($"{x.Id} {x.FirstName} {x.LastName} {x.Email}"));

            //Delete
            //var input = Console.ReadLine();

            //var toDelete = peopleCtx.PeopleByID(int.Parse(input));

            //peopleCtx.RemovePeople(toDelete);

            //var newPeople = peopleCtx.GetAllPeople();

            //newPeople.ToList().ForEach(x => Console.WriteLine($"{x.Id} {x.FirstName} {x.LastName} {x.Email}"));

            //Update
            //Console.WriteLine("id: ");
            //var nameID = Console.ReadLine();
            //Console.WriteLine("New Name:");
            //var namechange = Console.ReadLine();

            //var nameChangePerson = peopleCtx.PeopleByID(int.Parse(nameID));

            //nameChangePerson.FirstName = namechange;

            //peopleCtx.UpdatePeople(nameChangePerson);

            //var newPeople2 = peopleCtx.GetAllPeople();

            //newPeople2.ToList().ForEach(x => Console.WriteLine($"{x.Id} {x.FirstName} {x.LastName} {x.Email}"));

            //Insert Student
            var ppl = new People()
            {
                FirstName = "Lisa", LastName = "Sävås", Email = "Lisa@Sävås.se"
            };

            peopleCtx.InsertPeople(ppl);

            var studentClass = new StudentClasses()
            {
                ClassName = "WIN15"
            };

            var studentClassesCtx = new ClassesControl();

            studentClassesCtx.InsertorUpdateClass(studentClass);



            var educationCTX = new EducationsControl();

            var education = new Educations()
            {
                EducationName = "Administration"
            };

            educationCTX.InsertorUpdateEducation(education);


            var newStudent = new Students()
            {
                PersonId        = ppl.Id,
                StudentClass_Id = studentClass.Id,
                EducationId     = education.Id
            };

            control.InsertStudent(newStudent);

            var newStudentContext = new StudentControl();
            var studentsList      = newStudentContext.GetAllStudents().ToList();

            Console.WriteLine("Added new student Lisa");
            Console.WriteLine("-------Students Again-------");
            foreach (var stud in studentsList)
            {
                Console.WriteLine("Name: " + stud.People.FirstName + " " + stud.People.LastName);
                Console.WriteLine("CourseID: " + stud.StudentClasses.Id + " Class: " + stud.StudentClasses.ClassName);
                Console.WriteLine("ID: " + stud.Educations.Id + " Education Name: " + stud.Educations.EducationName);
                Console.WriteLine("--------------------------------------------------------------------------------");
            }

            var AttendanceControl = new AttendanceControl();

            Attendance att = new Attendance()
            {
                Date = new DateTime(2016, 11, 02), StudentID = newStudent.Id, CourseID = 2, Attendance1 = false
            };

            AttendanceControl.InsertAttendance(att);

            var lisa = newStudentContext.StudentsByID(newStudent.Id);

            var attendance = new AttendanceControl();

            var attendanceObj = attendance.AttendaceByStudentAndCourseID(newStudent.Id, 2);

            Console.WriteLine("Added new attendance for Lisa");
            Console.WriteLine("-----Attendance-----");
            Console.WriteLine($"{lisa.People.FirstName} {lisa.People.LastName} Närvaro i {attendanceObj.Courses.CourseName} den {attendanceObj.Date}: {attendanceObj.Attendance1}");
            Console.WriteLine();

            AttendanceControl.RemoveAttendance(att);
            //educationCTX.RemoveEducation(education);
            control.RemoveStudent(newStudent);
            studentClassesCtx.RemoveClass(studentClass);
            educationCTX.RemoveEducation(education);
            peopleCtx.RemovePeople(ppl);


            Console.ReadKey();
        }
Example #45
0
 public bool UpdateUser(Attendance.Entities.UserInfo objInfo, int EmployeeID, int EnteredBy,string PhotoLink,string Ipaddress,DateTime EffectiveDate,bool Isnow)
 {
     bool success = false;
     try
     {
         SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString());
         con.Open();
         SqlCommand command = new SqlCommand("[USP_UpdateUserDetails]", con);
         command.CommandType = CommandType.StoredProcedure;
         command.Parameters.Add("@UserID", SqlDbType.Int).Value = EmployeeID;
        // command.Parameters.Add("@EmpID", SqlDbType.VarChar).Value = objInfo.EmpID;
         command.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = objInfo.Firstname;
         command.Parameters.Add("@LastName", SqlDbType.VarChar).Value = objInfo.Lastname;
         command.Parameters.Add("@ProfessionalFirstName", SqlDbType.VarChar).Value = objInfo.BFirstname;
         command.Parameters.Add("@ProfessionalLastName", SqlDbType.VarChar).Value = objInfo.BLastname;
         command.Parameters.Add("@Startdate", SqlDbType.DateTime).Value = objInfo.StartDt;
         command.Parameters.Add("@TermReason", SqlDbType.VarChar).Value = objInfo.TermReason;
         command.Parameters.Add("@TermDate", SqlDbType.DateTime).Value = objInfo.TermDt;
         command.Parameters.Add("@DeptName", SqlDbType.VarChar).Value = objInfo.Deptname;
         command.Parameters.Add("@Designation", SqlDbType.VarChar).Value = objInfo.Designation;
         command.Parameters.Add("@ScheduleID", SqlDbType.Int).Value = objInfo.ScheduleID;
         command.Parameters.Add("@EmpTypeID", SqlDbType.Int).Value = objInfo.EmpTypeID;
         command.Parameters.Add("@EnteredBy", SqlDbType.Int).Value = EnteredBy;
         command.Parameters.Add("@IsActive", SqlDbType.Bit).Value = objInfo.IsActive;
         command.Parameters.Add("@ShiftID", SqlDbType.Int).Value = objInfo.ShiftID;
         command.Parameters.Add("@photoLink", SqlDbType.VarChar).Value = PhotoLink;
         command.Parameters.Add("@Ipaddress", SqlDbType.VarChar).Value = Ipaddress;
         command.Parameters.Add("@EffectiveDt", SqlDbType.VarChar).Value = EffectiveDate;
         command.Parameters.Add("@IsNow", SqlDbType.VarChar).Value = Isnow;
         command.ExecuteNonQuery();
         con.Close();
         success = true;
     }
     catch (Exception ex)
     {
     }
     return success;
 }
Example #46
0
 public void Unattend(Attendance attendance)
 {
     _context.Attendances.Remove(attendance);
 }
Example #47
0
        /// <summary>
        /// Executes the specified workflow.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="action">The action.</param>
        /// <param name="entity">The entity.</param>
        /// <param name="errorMessages">The error messages.</param>
        /// <returns></returns>
        public override bool Execute( RockContext rockContext, WorkflowAction action, Object entity, out List<string> errorMessages )
        {
            errorMessages = new List<string>();

            Guid? groupGuid = null;
            Person person = null;
            DateTime attendanceDateTime = DateTime.Now;
            bool addToGroup = true;

            // get the group attribute
            Guid groupAttributeGuid = GetAttributeValue(action, "Group").AsGuid();

            if ( !groupAttributeGuid.IsEmpty() )
            {
                groupGuid = action.GetWorklowAttributeValue(groupAttributeGuid).AsGuidOrNull();

                if ( !groupGuid.HasValue )
                {
                    errorMessages.Add("The group could not be found!");
                }
            }

            // get person alias guid
            Guid personAliasGuid = Guid.Empty;
            string personAttribute = GetAttributeValue( action, "Person" );

            Guid guid = personAttribute.AsGuid();
            if (!guid.IsEmpty())
            {
                var attribute = AttributeCache.Read( guid, rockContext );
                if ( attribute != null )
                {
                    string value = action.GetWorklowAttributeValue(guid);
                    personAliasGuid = value.AsGuid();
                }

                if ( personAliasGuid != Guid.Empty )
                {
                    person = new PersonAliasService(rockContext).Queryable().AsNoTracking()
                                    .Where(p => p.Guid.Equals(personAliasGuid))
                                    .Select(p => p.Person)
                                    .FirstOrDefault();
                }
                else {
                    errorMessages.Add("The person could not be found in the attribute!");
                }
            }

            // get attendance date
            Guid dateTimeAttributeGuid = GetAttributeValue(action, "AttendanceDatetime").AsGuid();
            if ( !dateTimeAttributeGuid.IsEmpty() )
            {
                string attributeDatetime = action.GetWorklowAttributeValue(dateTimeAttributeGuid);

                if ( !string.IsNullOrWhiteSpace(attributeDatetime) )
                {
                    if ( !DateTime.TryParse(attributeDatetime, out attendanceDateTime) )
                    {
                        errorMessages.Add(string.Format("Could not parse the date provided {0}.", attributeDatetime));
                    }
                }
            }

            // get add to group
            addToGroup = GetAttributeValue(action, "AddToGroup").AsBoolean();

            // get location
            Guid locationGuid = Guid.Empty;
            Guid locationAttributeGuid = GetAttributeValue(action, "Location").AsGuid();
            if ( !locationAttributeGuid.IsEmpty() )
            {
                var locationAttribute = AttributeCache.Read(locationAttributeGuid, rockContext);

                if ( locationAttribute != null )
                {
                    locationGuid = action.GetWorklowAttributeValue(locationAttributeGuid).AsGuid();
                }
            }

            //// get Schedule
            Guid scheduleGuid = Guid.Empty;
            Guid scheduleAttributeGuid = GetAttributeValue( action, "Schedule" ).AsGuid();
            if ( !scheduleAttributeGuid.IsEmpty() )
            {
                var scheduleAttribute = AttributeCache.Read( scheduleAttributeGuid, rockContext );
                if ( scheduleAttribute != null )
                {
                    scheduleGuid = action.GetWorklowAttributeValue( scheduleAttributeGuid ).AsGuid();
                }
            }

            // set attribute
            if ( groupGuid.HasValue && person != null && attendanceDateTime != DateTime.MinValue )
            {
                var group = new GroupService(rockContext).Queryable("GroupType.DefaultGroupRole")
                                            .Where(g => g.Guid == groupGuid)
                                            .FirstOrDefault();
                if ( group != null )
                {
                    GroupMemberService groupMemberService = new GroupMemberService(rockContext);

                    // get group member
                    var groupMember = groupMemberService.Queryable()
                                            .Where(m => m.Group.Guid == groupGuid
                                                && m.PersonId == person.Id)
                                            .FirstOrDefault();
                    if ( groupMember == null )
                    {
                        if ( addToGroup )
                        {

                            if ( group != null )
                            {
                                groupMember = new GroupMember();
                                groupMember.GroupId = group.Id;
                                groupMember.PersonId = person.Id;
                                groupMember.GroupMemberStatus = GroupMemberStatus.Active;
                                groupMember.GroupRole = group.GroupType.DefaultGroupRole;
                                groupMemberService.Add(groupMember);
                                rockContext.SaveChanges();
                            }
                        }
                        else
                        {
                            action.AddLogEntry(string.Format("{0} was not a member of the group {1} and the action was not configured to add them.", person.FullName, group.Name));
                        }
                    }

                    AttendanceService attendanceService = new AttendanceService(rockContext);

                    Attendance attendance = new Attendance();
                    attendance.GroupId = group.Id;
                    attendance.PersonAliasId = person.PrimaryAliasId;
                    attendance.StartDateTime = attendanceDateTime;
                    attendance.CampusId = group.CampusId;
                    attendance.DidAttend = true;

                    if ( locationGuid != Guid.Empty )
                    {
                        var location = new LocationService(rockContext).Queryable().AsNoTracking()
                                            .Where(l => l.Guid == locationGuid)
                                            .FirstOrDefault();

                        if ( location != null )
                        {
                            attendance.LocationId = location.Id;
                        }
                    }

                    attendanceService.Add(attendance);
                    rockContext.SaveChanges();

                    if ( attendance.LocationId.HasValue )
                    {
                        Rock.CheckIn.KioskLocationAttendance.Flush( attendance.LocationId.Value );
                    }
                }
                else
                {
                    errorMessages.Add(string.Format("Could not find group matching the guid '{0}'.", groupGuid));
                }
            }

            errorMessages.ForEach( m => action.AddLogEntry( m, true ) );

            return true;
        }
Example #48
0
 public void InsertAttendance(Attendance attendance)
 {
     iattendance.InsertAttendance(attendance);
 }
Example #49
0
 /// <summary>
 /// Adds the attendance.
 /// </summary>
 /// <param name="attendance">The attendance.</param>
 public static void AddAttendance( Attendance attendance )
 {
     if ( attendance.LocationId.HasValue )
     {
         var location = KioskLocationAttendance.Read(attendance.LocationId.Value);
         if (location != null)
         {
             AddAttendanceRecord( location, attendance );
         }
     }
 }
        public int MarkAttendanceWithLatLon(int empid, int shift, Double latitude, Double longitude, Int16 markcount)
        {
            var context = new ubietydbEntities();

            Attendance attendance = new Attendance();

            attendance.EmpId = empid;
            attendance.MarkFlagId = shift;
            attendance.MarkTime = TimeZoneInfo.ConvertTime(new DateTime(DateTime.Now.Ticks), TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
            attendance.latitude = latitude;
            attendance.longitude = longitude;
            attendance.markcount = markcount;
            context.Attendances.Add(attendance);

            return context.SaveChanges();
        }
 private void AttendanceControl_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
 {
     if (this.DataContext != null)
     {
         _attendance = this.DataContext as Attendance;
         Details = new List<KeyValuePair<DateTimeOffset, AttendanceStub>>(_attendance.Details.Count);
         foreach (AttendanceGroup group in _attendance.Details)
             foreach (AttendanceStub stub in group.Details)
                 Details.Add(new KeyValuePair<DateTimeOffset, AttendanceStub>(group.ContextDate, stub));
         Details.Reverse();
         detailsList.DataContext = this;
         attendanceGrid.DataContext = this;
         ResetParamters();
     }
 }
Example #52
0
        public void SaveManagerDetails(Attendance.Entities.Entities entities)
        {
          
            try
            {
                SqlConnection con = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand("USP_AddIP", con);
               cmd.CommandType = CommandType.StoredProcedure;
               //cmd.CommandText = ();
               con.Open();
               //cmd.Parameters.AddWithValue("@FirstName",entities.FirstName);
               cmd.Parameters.AddWithValue("@LocationName",entities.LocationName);
               cmd.Parameters.AddWithValue("@PassCode",entities.passcode);
               cmd.Parameters.AddWithValue("@EMPID", entities.EMPID);
               cmd.Parameters.AddWithValue("@IpAddress", entities.IpAddress);
                //SqlDataAdapter daManager = new SqlDataAdapter();
                //daManager.SelectCommand.Parameters.Add(new SqlParameter("@FirstName", entities.FirstName));
                //daManager.SelectCommand.Parameters.Add(new SqlParameter("@passcode", entities.passcode));
                //daManager.SelectCommand.Parameters.Add(new SqlParameter("@LastName", entities.LastName));
                //daManager.SelectCommand.Parameters.Add(new SqlParameter("@LocationName", entities.LocationName));
                //daManager.SelectCommand.CommandType = CommandType.StoredProcedure;
                cmd.ExecuteNonQuery();
                con.Close();
                
            }
            catch (Exception ex)
            {
                throw ex;
            }
           
           

        }
Example #53
0
 private static Data MapData(Attendance attendance) => new(checkInDate : attendance.CheckInDate);
 public void Delete(Attendance attendance)
 {
     _context.Attendances.Remove(attendance);
 }
Example #55
0
        public DataSet SaveLogDetails(Attendance.Entities.Entities entities)
        {
            DataSet dsLoginDet = new DataSet();
            try
            {
                SqlDataAdapter daLogin = new SqlDataAdapter("[USP_AddLogin1]", connectionString);
                daLogin.SelectCommand.Parameters.Add(new SqlParameter("@UserID", entities.UserID));
                daLogin.SelectCommand.Parameters.Add(new SqlParameter("@passcode", entities.passcode));
                daLogin.SelectCommand.Parameters.Add(new SqlParameter("@LoginDate", Convert.ToDateTime((entities.LoginDate))));
                daLogin.SelectCommand.Parameters.Add(new SqlParameter("@LoginNotes", entities.LoginNotes));
                daLogin.SelectCommand.CommandType = CommandType.StoredProcedure;
                daLogin.Fill(dsLoginDet);
                return dsLoginDet;

            }
            catch (Exception ex)
            {
                throw ex;
            }
            return dsLoginDet;


        }
    public void LoadReport()
    {
        lbmsg.Text = "";

        if (ChkStudent.Checked != true)
        {
            if (Pnl_Adm.Visible == true)
            {
                //if (ddlSem.SelectedIndex == 0)
                //{
                //    lbmsg.Text = "Please Select Semester!";
                //    lbmsg.ForeColor = System.Drawing.Color.Blue;
                //    return;
                //}
                //if (ddlFaculty.SelectedIndex == 0)
                //{
                //    lbmsg.Text = "Please Select Faculty!";
                //    lbmsg.ForeColor = System.Drawing.Color.Blue;
                //    return;
                //}
            }

            if (txtfromDate.Text.ToString() == "")
            {
                lbmsg.Text      = "Please Select From Date!";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }

            if (txttodate.Text.ToString() == "")
            {
                lbmsg.Text      = "Please Select To Date!";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }
            if ((ddlNSym.SelectedIndex > 0) && (Convert.ToString(txtNatt.Text) == ""))
            {
                lbmsg.Text      = "Please enter -Ve(%) !";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }
            if ((ddlRSym.SelectedIndex > 0) && (Convert.ToString(txtRatt.Text) == ""))
            {
                lbmsg.Text      = "Please enter RATT(%) !";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }
            if ((ddlASym.SelectedIndex > 0) && (Convert.ToString(txtAtd.Text) == ""))
            {
                lbmsg.Text      = "Please enter ATD(%) !";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }
        }
        else
        {
            if (txtStud.Text.ToString() == "")
            {
                lbmsg.Text      = "Please Enter Student ID!";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }
            if (txtfromDate.Text.ToString() == "")
            {
                lbmsg.Text      = "Please Select From Date!";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }

            if (txttodate.Text.ToString() == "")
            {
                lbmsg.Text      = "Please Select To Date!";
                lbmsg.ForeColor = System.Drawing.Color.Blue;
                return;
            }
        }
        Int32 Natt, Ratt, Atd, FacId, BatchID;

        Natt = -1;
        Ratt = -1;
        Atd  = -1;

        if (ddlFaculty.Items.Count == 0)
        {
            FacId = 0;
            if (Session["RoleId"].ToString() != "9")
            {
                FacId = Convert.ToInt32(Session["EMPID"].ToString());
            }
        }
        else
        {
            FacId = Convert.ToInt32(ddlFaculty.SelectedValue);
        }
        if (ddlClass.Items.Count == 0)
        {
            BatchID = 0;
        }
        else
        {
            BatchID = Convert.ToInt32(ddlClass.SelectedValue);
        }

        if (txtNatt.Text != "")
        {
            Natt = Convert.ToInt32(txtNatt.Text);
        }
        if (txtRatt.Text != "")
        {
            Natt = Convert.ToInt32(txtRatt.Text);
        }
        if (txtAtd.Text != "")
        {
            Natt = Convert.ToInt32(txtNatt.Text);
        }

        if (ChkStudent.Checked == true)
        {
            Natt = -1;
            Ratt = -1;
            Atd  = -1;
        }

        Attendance a = new Attendance();

        //  ReportDocument myReportDocument;
        myReportDocument = new ReportDocument();
        try
        {
            string Path = Server.MapPath("RelativeAttendance.rpt");
            Path = Path.Substring(0, Path.LastIndexOf('\\'));
            Path = Path.Substring(0, Path.LastIndexOf('\\'));
            Path = Path + "\\Reports\\RelativeAttendance.rpt";
            myReportDocument.Load(Path);

            string FromDate = DateTime.Parse(txtfromDate.Text).ToString("yyyyMMdd");
            string ToDate   = DateTime.Parse(txttodate.Text).ToString("yyyyMMdd");

            DataTable mytab = new DataTable();
            ArrayList pa    = new ArrayList();
            ArrayList pv    = new ArrayList();
            pa.Add("@edate1");
            pv.Add(FromDate);
            pa.Add("@edate2");
            pv.Add(ToDate);
            if (ChkStudent.Checked == true)
            {
                Natt = -1;
                Ratt = -1;
                Atd  = -1;

                pa.Add("@class_id");
                pv.Add(0);
                pa.Add("@Natt");
                pv.Add(Natt);
                pa.Add("@Ratt");
                pv.Add(Ratt);
                pa.Add("@Atd");
                pv.Add(Atd);
                pa.Add("@Nsymbol");
                pv.Add("");
                pa.Add("@Rsymbol");
                pv.Add("");
                pa.Add("@Asymbol");
                pv.Add("");
                pa.Add("@StudId");
                pv.Add(txtStud.Text);
                if (Pnl_Adm.Visible == true)
                {
                    pa.Add("@SemId");
                    pv.Add(0);
                    pa.Add("@FacultyId");
                    pv.Add(0);
                }
            }
            else
            {
                pa.Add("@class_id");
                pv.Add(BatchID);
                pa.Add("@Natt");
                pv.Add(Natt);
                pa.Add("@Ratt");
                pv.Add(Ratt);
                pa.Add("@Atd");
                pv.Add(Atd);
                pa.Add("@Nsymbol");
                pv.Add(Convert.ToString(ddlNSym.SelectedValue));
                pa.Add("@Rsymbol");
                pv.Add(Convert.ToString(ddlRSym.SelectedValue));
                pa.Add("@Asymbol");
                pv.Add(Convert.ToString(ddlASym.SelectedValue));
                pa.Add("@StudId");
                pv.Add(Convert.ToString(txtStud.Text));
                if (Pnl_Adm.Visible == true)
                {
                    pa.Add("@SemId");
                    pv.Add(ddlSem.SelectedValue);
                }
                pa.Add("@FacultyId");
                pv.Add(FacId);
            }
            DBH.CreateDataTableAttendance(mytab, "SP_CONSOLIDATED_RATT", true, pa, pv);
            //myReportDocument.SetDatabaseLogon("software", "DelFirMENA$idea", "192.168.167.207", "MYFENCE");
            myReportDocument.SetDatabaseLogon("software", "DelFirMENA$idea");
            //myReportDocument.SetParameterValue("@Date", ToDate);
            //myReportDocument.SetParameterValue("@BatchID", 0);
            //myReportDocument.SetParameterValue("@TeacherID", 0);

            myReportDocument.SetDataSource(mytab);


            myReportDocument.SetDatabaseLogon("software", "DelFirMENA$idea");
            SqlConnectionStringBuilder SqlConnectionStringBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["Myfence"].ToString());
            string  ServerName         = SqlConnectionStringBuilder.DataSource;
            string  DatabaseName       = SqlConnectionStringBuilder.InitialCatalog;
            Boolean IntegratedSecurity = SqlConnectionStringBuilder.IntegratedSecurity;
            string  UserID             = SqlConnectionStringBuilder.UserID;
            string  Password           = SqlConnectionStringBuilder.Password;

            ConnectionInfo con = new ConnectionInfo();
            con.ServerName   = ServerName;
            con.DatabaseName = DatabaseName;
            if (IntegratedSecurity != true)
            {
                con.UserID   = UserID;
                con.Password = Password;
            }

            CrystalReportViewer1.ReportSource = myReportDocument;
            Session["myReportDocument"]       = myReportDocument;
            CrystalReportViewer1.DataBind();
        }
        catch (Exception Ex)
        {
        }
        finally
        {
            // myReportDocument.Close();
            // myReportDocument.Dispose();
        }
    }
Example #57
0
        public void UpdateIP(Attendance.Entities.Entities entities)
        {

            try
            {
                SqlConnection con = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand("[USP_UpdateIP]", con);
                cmd.CommandType = CommandType.StoredProcedure;
                //cmd.CommandText = ();
                con.Open();
                //cmd.Parameters.AddWithValue("@FirstName",entities.FirstName);
                cmd.Parameters.AddWithValue("@LocationName", entities.LocationName);
             //   cmd.Parameters.AddWithValue("@PassCode", entities.passcode);
               // cmd.Parameters.AddWithValue("@EMPID", entities.EMPID);
                cmd.Parameters.AddWithValue("@IpAddress", entities.IpAddress);
             
                cmd.ExecuteNonQuery();
                con.Close();

            }
            catch (Exception ex)
            {
                throw ex;
            }



        }
Example #58
0
        /// <summary>
        /// Populates the roster.
        /// In cases where there won't be a postback, we can disable view state. The only time we need viewstate is when the Configuration Dialog
        /// is showing.
        /// </summary>
        private void PopulateRoster(ViewStateMode viewStateMode = ViewStateMode.Disabled)
        {
            RosterConfiguration rosterConfiguration = this.GetBlockUserPreference(UserPreferenceKey.RosterConfigurationJSON)
                                                      .FromJsonOrNull <RosterConfiguration>() ?? new RosterConfiguration();

            if (!rosterConfiguration.IsConfigured())
            {
                return;
            }

            int[]      scheduleIds    = rosterConfiguration.ScheduleIds;
            int[]      locationIds    = rosterConfiguration.LocationIds;
            List <int> pickedGroupIds = rosterConfiguration.PickedGroupIds.ToList();

            var allGroupIds = new List <int>();

            allGroupIds.AddRange(pickedGroupIds);

            var rockContext = new RockContext();

            // Only use teh ShowChildGroups option when there is 1 group selected
            if (rosterConfiguration.IncludeChildGroups && pickedGroupIds.Count == 1)
            {
                // if there is exactly one groupId we can avoid a 'Contains' (Contains has a small performance impact)
                var parentGroupId = pickedGroupIds[0];
                var groupService  = new GroupService(rockContext);

                // just the first level of child groups, not all decendants
                var childGroupIds = groupService.Queryable().Where(a => a.ParentGroupId == parentGroupId).Select(a => a.Id).ToList();
                allGroupIds.AddRange(childGroupIds);
            }

            allGroupIds = allGroupIds.Distinct().ToList();

            var attendanceOccurrenceService = new AttendanceOccurrenceService(rockContext);

            // An OccurrenceDate probably won't be included in the URL, but just in case
            DateTime?occurrenceDate = this.PageParameter(PageParameterKey.OccurrenceDate).AsDateTime();

            if (!occurrenceDate.HasValue)
            {
                occurrenceDate = RockDateTime.Today;
            }

            // only show occurrences for the current day
            var attendanceOccurrenceQuery = attendanceOccurrenceService
                                            .Queryable()
                                            .Where(a => a.ScheduleId.HasValue && a.LocationId.HasValue && a.GroupId.HasValue)
                                            .WhereDeducedIsActive()
                                            .Where(a =>
                                                   allGroupIds.Contains(a.GroupId.Value) &&
                                                   a.OccurrenceDate == occurrenceDate &&
                                                   scheduleIds.Contains(a.ScheduleId.Value));

            // if specific locations are specified, use those, otherwise just show all
            if (locationIds.Any())
            {
                attendanceOccurrenceQuery = attendanceOccurrenceQuery.Where(a => locationIds.Contains(a.LocationId.Value));
            }

            // limit attendees to ones that schedules (or are checked-in regardless of being scheduled)
            var confirmedAttendancesForOccurrenceQuery = attendanceOccurrenceQuery
                                                         .SelectMany(a => a.Attendees)
                                                         .Include(a => a.PersonAlias.Person)
                                                         .Include(a => a.Occurrence.Group.Members)
                                                         .WhereScheduledOrCheckedIn();

            var confirmedScheduledIndividualsForOccurrenceId = confirmedAttendancesForOccurrenceQuery
                                                               .AsNoTracking()
                                                               .ToList()
                                                               .GroupBy(a => a.OccurrenceId)
                                                               .ToDictionary(
                k => k.Key,
                v => v.Select(a => new ScheduledIndividual
            {
                ScheduledAttendanceItemStatus = Attendance.GetScheduledAttendanceItemStatus(a.RSVP, a.ScheduledToAttend),
                Person             = a.PersonAlias.Person,
                GroupMember        = a.Occurrence.Group.Members.FirstOrDefault(gm => gm.PersonId == a.PersonAlias.PersonId),
                CurrentlyCheckedIn = a.DidAttend == true
            })
                .ToList());

            List <AttendanceOccurrence> attendanceOccurrenceList = attendanceOccurrenceQuery
                                                                   .Include(a => a.Schedule)
                                                                   .Include(a => a.Attendees)
                                                                   .Include(a => a.Group)
                                                                   .Include(a => a.Location)
                                                                   .AsNoTracking()
                                                                   .ToList()
                                                                   .OrderBy(a => a.OccurrenceDate)
                                                                   .ThenBy(a => a.Schedule.Order)
                                                                   .ThenBy(a => a.Schedule.GetNextStartDateTime(a.OccurrenceDate))
                                                                   .ThenBy(a => a.Location.Name)
                                                                   .ToList();

            var occurrenceRosterInfoList = new List <OccurrenceRosterInfo>();

            foreach (var attendanceOccurrence in attendanceOccurrenceList)
            {
                var scheduleDate         = attendanceOccurrence.Schedule.GetNextStartDateTime(attendanceOccurrence.OccurrenceDate);
                var scheduledIndividuals = confirmedScheduledIndividualsForOccurrenceId.GetValueOrNull(attendanceOccurrence.Id);

                if ((scheduleDate == null) || (scheduleDate.Value.Date != attendanceOccurrence.OccurrenceDate))
                {
                    // scheduleDate can be later than the OccurrenceDate (or null) if there are exclusions that cause the schedule
                    // to not occur on the occurrence date. In this case, don't show the roster unless there are somehow individuals
                    // scheduled for this occurrence.
                    if (scheduledIndividuals == null || !scheduledIndividuals.Any())
                    {
                        // no scheduleDate and no scheduled individuals, so continue on to the next attendanceOccurrence
                        continue;
                    }
                }

                var occurrenceRosterInfo = new OccurrenceRosterInfo
                {
                    Group                = attendanceOccurrence.Group,
                    Location             = attendanceOccurrence.Location,
                    Schedule             = attendanceOccurrence.Schedule,
                    ScheduleDate         = scheduleDate,
                    ScheduledIndividuals = scheduledIndividuals
                };

                occurrenceRosterInfoList.Add(occurrenceRosterInfo);
            }

            var mergeFields = LavaHelper.GetCommonMergeFields(this.RockPage);

            mergeFields.Add("OccurrenceList", occurrenceRosterInfoList);
            mergeFields.Add("DisplayRole", rosterConfiguration.DisplayRole);
            mergeFields.Add("OccurrenceDate", occurrenceDate);
            var rosterLavaTemplate = this.GetAttributeValue(AttributeKey.RosterLavaTemplate);

            var rosterHtml = rosterLavaTemplate.ResolveMergeFields(mergeFields);

            // by default, let's disable viewstate (except for when the configuration dialog is showing)
            lOccurrenceRosterHTML.ViewStateMode = viewStateMode;
            lOccurrenceRosterHTML.Text          = rosterHtml;
        }
        /// <summary>
        /// Handles the Click event of the lbSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void lbSave_Click( object sender, EventArgs e )
        {
            if ( _group != null && _occurrence != null )
            {
                var rockContext = new RockContext();
                var attendanceService = new AttendanceService( rockContext );
                var personAliasService = new PersonAliasService( rockContext );
                var locationService = new LocationService( rockContext );

                bool dateAdjusted = false;

                DateTime startDate = _occurrence.Date;

                // If this is a manuall entered occurrence, check to see if date was changed
                if ( !_occurrence.ScheduleId.HasValue )
                {
                    DateTime? originalDate = PageParameter( "Date" ).AsDateTime();
                    if ( originalDate.HasValue && originalDate.Value.Date != startDate.Date )
                    {
                        startDate = originalDate.Value.Date;
                        dateAdjusted = true;
                    }
                }
                DateTime endDate = startDate.AddDays( 1 );

                var existingAttendees = attendanceService
                    .Queryable( "PersonAlias" )
                    .Where( a =>
                        a.GroupId == _group.Id &&
                        a.LocationId == _occurrence.LocationId &&
                        a.ScheduleId == _occurrence.ScheduleId &&
                        a.StartDateTime >= startDate &&
                        a.StartDateTime < endDate );

                if ( dateAdjusted )
                {
                    foreach ( var attendee in existingAttendees )
                    {
                        attendee.StartDateTime = _occurrence.Date;
                    }
                }

                // If did not meet was selected and this was a manually entered occurrence (not based on a schedule/location)
                // then just delete all the attendance records instead of tracking a 'did not meet' value
                if ( cbDidNotMeet.Checked && !_occurrence.ScheduleId.HasValue )
                {
                    foreach ( var attendance in existingAttendees )
                    {
                        attendanceService.Delete( attendance );
                    }
                }
                else
                {
                    int? campusId = locationService.GetCampusIdForLocation( _occurrence.LocationId );
                    if ( !campusId.HasValue )
                    {
                        campusId = _group.CampusId;
                    }
                    if ( !campusId.HasValue && _allowCampusFilter )
                    {
                        var campus = CampusCache.Read( bddlCampus.SelectedValueAsInt() ?? 0 );
                        if ( campus != null )
                        {
                            campusId = campus.Id;
                        }
                    }

                    if ( cbDidNotMeet.Checked )
                    {
                        // If the occurrence is based on a schedule, set the did not meet flags
                        foreach ( var attendance in existingAttendees )
                        {
                            attendance.DidAttend = null;
                            attendance.DidNotOccur = true;
                        }
                    }

                    foreach ( var attendee in _attendees )
                    {
                        var attendance = existingAttendees
                            .Where( a => a.PersonAlias.PersonId == attendee.PersonId )
                            .FirstOrDefault();

                        if ( attendance == null )
                        {
                            int? personAliasId = personAliasService.GetPrimaryAliasId( attendee.PersonId );
                            if ( personAliasId.HasValue )
                            {
                                attendance = new Attendance();
                                attendance.GroupId = _group.Id;
                                attendance.ScheduleId = _group.ScheduleId;
                                attendance.PersonAliasId = personAliasId;
                                attendance.StartDateTime = _occurrence.Date.Date.Add( _occurrence.StartTime );
                                attendance.LocationId = _occurrence.LocationId;
                                attendance.CampusId = campusId;
                                attendance.ScheduleId = _occurrence.ScheduleId;

                                // check that the attendance record is valid
                                cvAttendance.IsValid = attendance.IsValid;
                                if ( !cvAttendance.IsValid )
                                {
                                    cvAttendance.ErrorMessage = attendance.ValidationResults.Select( a => a.ErrorMessage ).ToList().AsDelimited( "<br />" );
                                    return;
                                }

                                attendanceService.Add( attendance );
                            }
                        }

                        if ( attendance != null )
                        {
                            if ( cbDidNotMeet.Checked )
                            {
                                attendance.DidAttend = null;
                                attendance.DidNotOccur = true;
                            }
                            else
                            {
                                attendance.DidAttend = attendee.Attended;
                                attendance.DidNotOccur = null;
                            }
                        }
                    }
                }

                if ( _occurrence.LocationId.HasValue )
                {
                    Rock.CheckIn.KioskLocationAttendance.Flush( _occurrence.LocationId.Value );
                }

                rockContext.SaveChanges();

                WorkflowType workflowType = null;
                Guid? workflowTypeGuid = GetAttributeValue( "Workflow" ).AsGuidOrNull();
                if ( workflowTypeGuid.HasValue )
                {
                    var workflowTypeService = new WorkflowTypeService( rockContext );
                    workflowType = workflowTypeService.Get( workflowTypeGuid.Value );
                    if ( workflowType != null )
                    {
                        try
                        {
                            var workflow = Workflow.Activate( workflowType, _group.Name );

                            workflow.SetAttributeValue( "StartDateTime", _occurrence.Date.ToString( "o" ) );
                            workflow.SetAttributeValue( "Schedule", _group.Schedule.Guid.ToString() );

                            List<string> workflowErrors;
                            new WorkflowService( rockContext ).Process( workflow, _group, out workflowErrors );
                        }
                        catch ( Exception ex )
                        {
                            ExceptionLogService.LogException( ex, this.Context );
                        }
                    }
                }

                var qryParams = new Dictionary<string, string> { { "GroupId", _group.Id.ToString() } };

                var groupTypeIds = PageParameter( "GroupTypeIds" );
                if ( !string.IsNullOrWhiteSpace( groupTypeIds ) )
                {
                    qryParams.Add( "GroupTypeIds", groupTypeIds );
                }

                NavigateToParentPage( qryParams );
            }
        }
        public void Insert(Attendance Attendances)
        {
            _context.DALContext.AttendancesDAL.Insert(Attendances);

            PrepareForEmail(Attendances);
        }