public IHttpActionResult PostCheckinDetail(UserAttendanceViewModel login) { LogInData logR = new LogInData(); var userdetails = generic.GetUserDetail(login.UserId); var Ipdata = db.IpMasters.Where(c => c.UserId == userdetails.SubscriberId).ToList(); var finalipMatch = Ipdata.Where(c => c.LatitudeFrom <= login.Latitude && c.LatitudeTo >= login.Latitude && c.LongitudeFrom <= login.Longitude && c.LongitudeTo >= login.Longitude).FirstOrDefault(); TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE); var getcheckindetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == login.UserId && c.CheckInDate == indianTime.Date).FirstOrDefault(); if (finalipMatch != null) { if (getcheckindetails != null) { var getcheckoutdetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == login.UserId && c.CheckOutDate == indianTime.Date).FirstOrDefault(); if (getcheckoutdetails != null) { logR.CheckedStatus = 2; // checkin / checkout done logR.CheckOutTime = getcheckindetails.CheckOutTime; logR.CheckInTime = getcheckindetails.CheckInTime; //mj logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.LocationStatus = 1; //Inside of premises } else { logR.CheckedStatus = 1; // Only checked in logR.CheckInTime = getcheckindetails.CheckInTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.LocationStatus = 1;//Inside of premises } } else { logR.CheckedStatus = 0; //No checkin /checkout found logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.LocationStatus = 1;//Inside of premises } } else { logR.LocationStatus = 0;//outside of premises logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; } return(new LogInResult(logR, Request)); }
public IHttpActionResult GetUserAttendance([FromUri] int id) { Exception ex = null; UserAttendanceViewModel result = null; try { var userAttendance = _dataProvider.GetEntity <UserAttendance>(id); result = new UserAttendanceViewModel(userAttendance); result.AddLink(new Link(Request.RequestUri, HttpMethod.Get, RelValues.Self, ActionValues.Refresh, "UserAttendances/" + id)); result.AddLink(new Link(Request.RequestUri, HttpMethod.Put, RelValues.Self, ActionValues.Save, "UserAttendances/" + id)); result.AddLink(new Link(Request.RequestUri, HttpMethod.Delete, RelValues.Self, ActionValues.Delete, "UserAttendances/" + id)); } catch (Exception e) { ex = e; } return(GetHttpActionResult(ex)); }
public IHttpActionResult Post(UserAttendanceViewModel login) { LogInData logR = new LogInData(); TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE); DateTime date = DateTime.Now.Date; ApplicationUser userExists = UserManager.FindByEmail(login.Email); if (userExists != null) { var user = UserManager.Find(userExists.UserName, login.Password); var userDetail = generic.GetUserDetail(user.Id); if (user != null) { string name = null; if (userDetail.Role == "Admin") { name = db.CorporateProfile.Where(c => c.CorporateId == user.Id).FirstOrDefault().Name; } else { name = db.EmployeeBasicDetails.Where(e => e.UserId == user.Id).FirstOrDefault().Name; } var deviceinfo = db.DeviceDetail.Where(c => c.UserId == user.Id).FirstOrDefault(); if (deviceinfo == null) { pms.AddDeviceInfromation(user.Id, login.AndroidId, login.AndroidDeviceName); var getcheckindetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == user.Id && c.CheckInDate == date).FirstOrDefault(); if (getcheckindetails != null) { var getcheckoutdetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == user.Id && c.CheckOutDate == date).FirstOrDefault(); if (getcheckoutdetails != null) { logR.CheckedStatus = 2; logR.CheckOutTime = getcheckindetails.CheckOutTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.Status = 2; logR.Message = "LogIn Successful"; logR.BearerCode = logintoken(login.Email, login.Password); logR.UserName = name; logR.Phonenumber = user.PhoneNumber; logR.UserId = user.Id; } else { logR.CheckedStatus = 1; logR.CheckInTime = getcheckindetails.CheckInTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.Status = 2; logR.Message = "LogIn Successful"; logR.BearerCode = logintoken(login.Email, login.Password); logR.UserName = name; logR.Phonenumber = user.PhoneNumber; logR.UserId = user.Id; } } else { logR.CheckedStatus = 0; logR.CheckInTime = getcheckindetails.CheckInTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.Status = 2; logR.Message = "LogIn Successful"; logR.BearerCode = logintoken(login.Email, login.Password); logR.UserName = name; // user.UserName; logR.Phonenumber = user.PhoneNumber; logR.UserId = user.Id; } } else { if (deviceinfo.DeviceId == login.AndroidId) { var getcheckindetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == user.Id && c.CheckInDate == date).FirstOrDefault(); if (getcheckindetails != null) { var getcheckoutdetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == user.Id && c.CheckOutDate == date).FirstOrDefault(); if (getcheckoutdetails != null) { logR.CheckedStatus = 2; logR.CheckOutTime = getcheckindetails.CheckOutTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.Status = 2; logR.Message = "LogIn Successful"; logR.BearerCode = logintoken(login.Email, login.Password); logR.UserName = name; logR.Phonenumber = user.PhoneNumber; logR.UserId = user.Id; } else { logR.CheckedStatus = 1; logR.CheckInTime = getcheckindetails.CheckInTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.Status = 2; logR.Message = "LogIn Successful"; logR.BearerCode = logintoken(login.Email, login.Password); logR.UserName = name; logR.Phonenumber = user.PhoneNumber; logR.UserId = user.Id; } } else { logR.CheckedStatus = 0; //logR.CheckInTime = getcheckindetails.CheckInTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; logR.Status = 2; logR.Message = "LogIn Successful"; logR.BearerCode = logintoken(login.Email, login.Password); logR.UserName = name; logR.Phonenumber = user.PhoneNumber; logR.UserId = user.Id; } } else { logR.Status = 3; logR.Message = "Device is not registered"; logR.DeviceName = deviceinfo.DeviceName; logR.UserId = user.Id; } } //for valid login } else { // for invalid password logR.Status = 1; logR.Message = "Invalid Password"; } } else { logR.Status = 0; //Invalid Email or User doesn't exists logR.Message = "Invalid Email"; } return(new LogInResult(logR, Request)); }
public IHttpActionResult PostCheckInCheckOut(UserAttendanceViewModel login) { LogInData logR = new LogInData(); string status = "NoMatch"; var userdetails = generic.GetUserDetail(login.UserId); Int64 branchId = db.EmpJoiningDetail.Where(e => e.UserId == userdetails.UserId).FirstOrDefault().BranchId; var Ipdata = db.IpMasters.Where(c => c.UserId == userdetails.SubscriberId && c.BranchId == branchId).ToList(); TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE); DateTime currentDate = indianTime.Date; TimeSpan CurrentTime = indianTime.TimeOfDay; if (Ipdata != null) { var branchlocation = Ipdata.FirstOrDefault(); if (branchlocation.Authenticate == 1) { if (login.LoggedInIp == branchlocation.IPAddressFrom || login.LoggedInIp == branchlocation.IPAddressTo) { status = submitAttendance(login.UserId, userdetails.SubscriberId, login.LoggedInIp, login.Latitude, login.Longitude, currentDate, CurrentTime); } } else if (branchlocation.Authenticate == 2) { if (login.Latitude >= branchlocation.LatitudeFrom && login.Latitude <= branchlocation.LatitudeTo && login.Longitude >= branchlocation.LongitudeFrom && login.Longitude <= branchlocation.LongitudeTo) { status = submitAttendance(login.UserId, userdetails.SubscriberId, login.LoggedInIp, login.Latitude, login.Longitude, currentDate, CurrentTime); } } else if (branchlocation.Authenticate == 3) { if ((login.LoggedInIp == branchlocation.IPAddressFrom || login.LoggedInIp == branchlocation.IPAddressTo) && (login.Latitude >= branchlocation.LatitudeFrom && login.Latitude <= branchlocation.LatitudeTo && login.Longitude >= branchlocation.LongitudeFrom && login.Longitude <= branchlocation.LongitudeTo)) { status = submitAttendance(login.UserId, userdetails.SubscriberId, login.LoggedInIp, login.Latitude, login.Longitude, currentDate, CurrentTime); } } if (status == "CheckedIn") { logR.CheckedStatus = 1;//checked in logR.CheckInTime = CurrentTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = CurrentTime; logR.LocationStatus = 1; } else { logR.CheckedStatus = 2; //checked Out logR.CheckInTime = db.BiometricCheckInCheckOut.Where(c => c.UserId == login.UserId && c.CheckInDate == indianTime.Date).FirstOrDefault().CheckInTime; logR.CheckOutTime = CurrentTime; logR.CurrentDate = indianTime.Date; logR.ServerTime = CurrentTime; logR.LocationStatus = 1; } } else { logR.LocationStatus = 0; logR.CurrentDate = indianTime.Date; logR.ServerTime = indianTime.TimeOfDay; } //var userdetails = generic.GetUserDetail(login.UserId); //var Ipdata = db.IpMasters.Where(c => c.UserId == userdetails.SubscriberId).ToList(); //TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); //DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE); //if (Ipdata != null) //{ // var finalipMatch = Ipdata.Where(c => c.LatitudeFrom <= login.Latitude && c.LatitudeTo >= login.Latitude && c.LongitudeFrom <= login.Longitude && c.LongitudeTo >= login.Longitude).FirstOrDefault(); // //var finalipMatch = Ipdata.Where(c => c.IPAddressFrom == IpRangeofUser || c.IPAddressTo == IpRangeofUser).FirstOrDefault(); // if (finalipMatch != null) // { // var getcheckindetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == login.UserId && c.CheckInDate == indianTime.Date).FirstOrDefault(); // if (getcheckindetails == null) // { // //Default 0 fro adding new record // Int64 BiometricId = 0; // DateTime checkindate = indianTime.Date; // TimeSpan CheckInTime = indianTime.TimeOfDay; // Int64 ShiftId = 1; // bool result = admin.AddEmployeeCheckinCheckout(BiometricId, login.UserId, checkindate, CheckInTime, null, null, login.LoggedInIp, userdetails.SubscriberId, ShiftId); // logR.CheckedStatus = 1;//checked in // logR.CheckInTime = CheckInTime; // logR.CurrentDate = checkindate; // logR.ServerTime = indianTime.TimeOfDay; // logR.LocationStatus = 1; // } // else // { // var BiometricDetails = db.BiometricCheckInCheckOut.Where(c => c.UserId == login.UserId).ToList().OrderByDescending(d => d.CheckInDate).FirstOrDefault(); // //DateTime? checkoutdate = DateTime.Now.Date; // //TimeSpan? CheckoutTime = DateTime.Now.TimeOfDay; // DateTime checkoutdate = indianTime.Date; // TimeSpan CheckoutTime = indianTime.TimeOfDay; // Int64 ShiftId = 1; // bool res = admin.AddEmployeeCheckinCheckout(BiometricDetails.BiometricId, login.UserId, BiometricDetails.CheckInDate, BiometricDetails.CheckInTime, checkoutdate, CheckoutTime, login.LoggedInIp, BiometricDetails.SubscriberId, ShiftId); // logR.CheckedStatus = 2; //checked Out // logR.CheckInTime = getcheckindetails.CheckInTime; // logR.CheckOutTime = CheckoutTime; // logR.CurrentDate = checkoutdate; // logR.ServerTime = indianTime.TimeOfDay; // logR.LocationStatus = 1; // } // } // else // { // logR.LocationStatus = 0; // logR.CurrentDate = indianTime.Date; // logR.ServerTime = indianTime.TimeOfDay; // } //} return(new LogInResult(logR, Request)); }