camera change
@@ -348,16 +348,12 @@ public class AccountApplication : IAccountApplication
|
||||
_accountRepository.SaveChanges();
|
||||
_smsService.LoginSend(phone, r);
|
||||
|
||||
TimeSpan delay = TimeSpan.FromSeconds(130);
|
||||
await Task.Delay(delay);
|
||||
|
||||
account.SetVerifyCode("");
|
||||
_accountRepository.SaveChanges();
|
||||
//TimeSpan delay = TimeSpan.FromSeconds(30);
|
||||
|
||||
await _accountRepository.RemoveCode(id);
|
||||
|
||||
return operation.Succcedded();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ public class AccountRepository : RepositoryBase<long, Account>, IAccountReposito
|
||||
|
||||
public async Task RemoveCode(long id)
|
||||
{
|
||||
TimeSpan delay = TimeSpan.FromSeconds(10);
|
||||
TimeSpan delay = TimeSpan.FromSeconds(30);
|
||||
await Task.Delay(delay);
|
||||
var acc = Get(id);
|
||||
acc.VerifyCode = "";
|
||||
|
||||
@@ -17,4 +17,5 @@ public interface IPersonnelCodeRepository : IRepository<long, PersonnelCodeDomai
|
||||
PersonnelCodeViewModel GetPersonnelCodeViewModel(PersonnelCodeSearchModel searchModel);
|
||||
|
||||
long GetPSCodeByWorkshopIdAndEmployeeId(long workshopId, long employeeId);
|
||||
long GetEmployeeIdByPersonelCode(long personleCode, long workshopId);
|
||||
}
|
||||
@@ -15,5 +15,6 @@ public interface IPersonnelCodeApplication
|
||||
|
||||
List<PersonnelCodeViewModel> Search(PersonnelCodeSearchModel searchModel);
|
||||
PersonnelCodeViewModel GetPersonnelCodeViewModel(PersonnelCodeSearchModel searchModel);
|
||||
long GetEmployeeIdByPersonelCode(long personleCode, long workshopId);
|
||||
|
||||
}
|
||||
@@ -71,4 +71,9 @@ public class PersonnelCodeApplication : IPersonnelCodeApplication
|
||||
{
|
||||
return _personnelCodeRepository.GetPersonnelCodeViewModel(searchModel);
|
||||
}
|
||||
|
||||
public long GetEmployeeIdByPersonelCode(long personleCode, long workshopId)
|
||||
{
|
||||
return _personnelCodeRepository.GetEmployeeIdByPersonelCode(personleCode, workshopId);
|
||||
}
|
||||
}
|
||||
@@ -49,7 +49,7 @@ public class PersonnelCodeRepository : RepositoryBase<long, PersonnelCodeDomain>
|
||||
{
|
||||
query = query.Where(x => x.WorkshopId == searchModel.WorkshopId);
|
||||
}
|
||||
|
||||
|
||||
return query.OrderByDescending(x => x.Id).ToList();
|
||||
}
|
||||
public PersonnelCodeViewModel GetPersonnelCodeViewModel(PersonnelCodeSearchModel searchModel)
|
||||
@@ -82,4 +82,12 @@ public class PersonnelCodeRepository : RepositoryBase<long, PersonnelCodeDomain>
|
||||
{
|
||||
return _context.PersonnelCodeSet.FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId)!.PersonnelCode;
|
||||
}
|
||||
|
||||
public long GetEmployeeIdByPersonelCode(long personleCode, long workshopId)
|
||||
{
|
||||
var res =_context.PersonnelCodeSet.FirstOrDefault(x => x.PersonnelCode == personleCode && x.WorkshopId == workshopId);
|
||||
if(res != null)
|
||||
return res.EmployeeId;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1,430 +1,430 @@
|
||||
@model AccountManagement.Application.Contracts.Account.AccountLeftWorkViewModel
|
||||
@Html.AntiForgeryToken()
|
||||
@{
|
||||
<style>
|
||||
.modal-dialog {
|
||||
width: 60% !important;
|
||||
}
|
||||
.box{
|
||||
|
||||
background-color: #cee8d9;
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.box2{
|
||||
|
||||
background-color: #d8f1f1;
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
|
||||
|
||||
}
|
||||
.newWorkshop {
|
||||
background-color: #bdf7c5;
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.deactiveWorkshop {
|
||||
background-color: rgb(195,195,195);
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.mess {
|
||||
height: 580px;
|
||||
overflow-y: scroll;
|
||||
background: aliceblue;
|
||||
box-shadow: 0px 1px 15px 0 #b4c0b2;
|
||||
border-radius: 20px;
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
font-size: 12px;
|
||||
|
||||
}
|
||||
.date{
|
||||
background-color: #fafafa;
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
font-size: 14px;
|
||||
border: 1px solid #c7c7c7 !important;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid #eee;
|
||||
box-shadow: none;
|
||||
text-align : center;
|
||||
width: 98%
|
||||
}
|
||||
.select {
|
||||
background-color: #fafafa;
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
font-size: 14px;
|
||||
border: 1px solid #c7c7c7 !important;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid #eee;
|
||||
box-shadow: none;
|
||||
text-align: center;
|
||||
}
|
||||
.mess::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.mess::-webkit-scrollbar-track {
|
||||
background-color: #8bd8ed42;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.mess::-webkit-scrollbar-thumb {
|
||||
background-color: #3159adb8;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 4%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.mess::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #aaa;
|
||||
}
|
||||
|
||||
.errored {
|
||||
animation: shake 300ms;
|
||||
box-shadow: inset 0 0 2px #eb3434, 0 0 5px #eb3434 !important;
|
||||
border: 1px solid #eb3434 !important;
|
||||
}
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 22%;
|
||||
}
|
||||
@@media screen and (max-width: 1920px) {
|
||||
.modal-dialog {
|
||||
width: 60% !important;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 22%;
|
||||
}
|
||||
}
|
||||
|
||||
@@media screen and (max-width: 1440px) {
|
||||
.modal-dialog {
|
||||
width: 60% !important;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 22%;
|
||||
}
|
||||
}
|
||||
|
||||
@@media screen and (max-width: 1360px) {
|
||||
.modal-dialog {
|
||||
width: 70% !important;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 5%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 18%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@media screen and (max-width: 992px) {
|
||||
.modal-dialog {
|
||||
width: 90% !important;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 5%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
|
||||
}
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 15%;
|
||||
}
|
||||
}
|
||||
|
||||
@@media screen and (max-width: 767px) {
|
||||
.modal-dialog {
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.workshopName {
|
||||
margin-top: 10px;
|
||||
background: #deebe3;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 12%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: inherit;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.checkbox-wrapper-26 * {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
outline: none;
|
||||
}
|
||||
.modal-dialog {
|
||||
width: 60% !important;
|
||||
}
|
||||
.box{
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
background-color: #cee8d9;
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 label {
|
||||
--size: 21px;
|
||||
--shadow: calc(var(--size) * .07) calc(var(--size) * .1);
|
||||
position: relative;
|
||||
display: block;
|
||||
width: var(--size);
|
||||
height: var(--size);
|
||||
margin: 0 auto;
|
||||
background-color: #8db5d7;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
transition: 0.2s ease transform, 0.2s ease background-color, 0.2s ease box-shadow;
|
||||
overflow: hidden;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 label:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
left: 0;
|
||||
width: calc(var(--size) * .7);
|
||||
height: calc(var(--size) * .7);
|
||||
margin: 0 auto;
|
||||
background-color: #fff;
|
||||
transform: translateY(-50%);
|
||||
border-radius: 50%;
|
||||
|
||||
transition: 0.2s ease width, 0.2s ease height;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 label:hover:before {
|
||||
width: calc(var(--size) * .55);
|
||||
height: calc(var(--size) * .55);
|
||||
.box2{
|
||||
|
||||
background-color: #d8f1f1;
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 label:active {
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 .tick_mark {
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
right: 0;
|
||||
left: calc(var(--size) * -.05);
|
||||
width: calc(var(--size) * .6);
|
||||
height: calc(var(--size) * .6);
|
||||
margin: 0 auto;
|
||||
margin-left: calc(var(--size) * .14);
|
||||
transform: rotateZ(-40deg);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 .tick_mark:before,
|
||||
.checkbox-wrapper-26 .tick_mark:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
opacity: 0;
|
||||
transition: 0.2s ease transform, 0.2s ease opacity;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 .tick_mark:before {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: calc(var(--size) * .1);
|
||||
height: calc(var(--size) * .3);
|
||||
box-shadow: -2px 0 5px rgba(0, 0, 0, 0.23);
|
||||
transform: translateY(calc(var(--size) * -.68));
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 .tick_mark:after {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: calc(var(--size) * .1);
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.23);
|
||||
transform: translateX(calc(var(--size) * .78));
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label {
|
||||
background-color: #07d410;
|
||||
box-shadow: 0 var(--shadow) #92ff97;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label:before {
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label .tick_mark:before,
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label .tick_mark:after {
|
||||
transform: translate(0);
|
||||
opacity: 1;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.checkbox-wrapper-10 .tgl {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl,
|
||||
.checkbox-wrapper-10 .tgl:after,
|
||||
.checkbox-wrapper-10 .tgl:before,
|
||||
.checkbox-wrapper-10 .tgl *,
|
||||
.checkbox-wrapper-10 .tgl *:after,
|
||||
.checkbox-wrapper-10 .tgl *:before,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl:after::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl:before::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl *::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl *:after::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl *:before::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl::selection,
|
||||
.checkbox-wrapper-10 .tgl:after::selection,
|
||||
.checkbox-wrapper-10 .tgl:before::selection,
|
||||
.checkbox-wrapper-10 .tgl *::selection,
|
||||
.checkbox-wrapper-10 .tgl *:after::selection,
|
||||
.checkbox-wrapper-10 .tgl *:before::selection,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn::selection {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn {
|
||||
outline: 0;
|
||||
display: block;
|
||||
width: 4em;
|
||||
height: 2em;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:after,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:before {
|
||||
position: relative;
|
||||
display: block;
|
||||
content: "";
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:after {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl:checked + .tgl-btn:after {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn {
|
||||
padding: 2px;
|
||||
transition: all 0.2s ease;
|
||||
font-family: sans-serif;
|
||||
perspective: 100px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:after,
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:before {
|
||||
display: inline-block;
|
||||
transition: all 0.4s ease;
|
||||
width: 100%;
|
||||
.newWorkshop {
|
||||
background-color: #bdf7c5;
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.deactiveWorkshop {
|
||||
background-color: rgb(195,195,195);
|
||||
align-items: center;
|
||||
padding: 7px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.mess {
|
||||
height: 580px;
|
||||
overflow-y: scroll;
|
||||
background: aliceblue;
|
||||
box-shadow: 0px 1px 15px 0 #b4c0b2;
|
||||
border-radius: 20px;
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
font-size: 12px;
|
||||
|
||||
}
|
||||
.date{
|
||||
background-color: #fafafa;
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
font-size: 14px;
|
||||
border: 1px solid #c7c7c7 !important;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid #eee;
|
||||
box-shadow: none;
|
||||
text-align : center;
|
||||
width: 98%
|
||||
}
|
||||
.select {
|
||||
background-color: #fafafa;
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
font-size: 14px;
|
||||
border: 1px solid #c7c7c7 !important;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid #eee;
|
||||
box-shadow: none;
|
||||
text-align: center;
|
||||
}
|
||||
.mess::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.mess::-webkit-scrollbar-track {
|
||||
background-color: #8bd8ed42;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.mess::-webkit-scrollbar-thumb {
|
||||
background-color: #3159adb8;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 4%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.mess::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #aaa;
|
||||
}
|
||||
|
||||
.errored {
|
||||
animation: shake 300ms;
|
||||
box-shadow: inset 0 0 2px #eb3434, 0 0 5px #eb3434 !important;
|
||||
border: 1px solid #eb3434 !important;
|
||||
}
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 22%;
|
||||
}
|
||||
@@media screen and (max-width: 1920px) {
|
||||
.modal-dialog {
|
||||
width: 60% !important;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 22%;
|
||||
}
|
||||
}
|
||||
|
||||
@@media screen and (max-width: 1440px) {
|
||||
.modal-dialog {
|
||||
width: 60% !important;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 22%;
|
||||
}
|
||||
}
|
||||
|
||||
@@media screen and (max-width: 1360px) {
|
||||
.modal-dialog {
|
||||
width: 70% !important;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 5%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 18%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@media screen and (max-width: 992px) {
|
||||
.modal-dialog {
|
||||
width: 90% !important;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 5%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
|
||||
}
|
||||
.checkbox-wrapper-10 {
|
||||
position: relative;
|
||||
right: 15%;
|
||||
}
|
||||
}
|
||||
|
||||
@@media screen and (max-width: 767px) {
|
||||
.modal-dialog {
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.workshopName {
|
||||
margin-top: 10px;
|
||||
background: #deebe3;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.personleName {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
right: 12%;
|
||||
background-color: #d4d9d9;
|
||||
padding: 0px 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 {
|
||||
position: inherit;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.checkbox-wrapper-26 * {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 label {
|
||||
--size: 21px;
|
||||
--shadow: calc(var(--size) * .07) calc(var(--size) * .1);
|
||||
position: relative;
|
||||
display: block;
|
||||
width: var(--size);
|
||||
height: var(--size);
|
||||
margin: 0 auto;
|
||||
background-color: #8db5d7;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
transition: 0.2s ease transform, 0.2s ease background-color, 0.2s ease box-shadow;
|
||||
overflow: hidden;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 label:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
line-height: 2em;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
left: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
border-radius: 4px;
|
||||
width: calc(var(--size) * .7);
|
||||
height: calc(var(--size) * .7);
|
||||
margin: 0 auto;
|
||||
background-color: #fff;
|
||||
transform: translateY(-50%);
|
||||
border-radius: 50%;
|
||||
|
||||
transition: 0.2s ease width, 0.2s ease height;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:after {
|
||||
content: attr(data-tg-on);
|
||||
background: #02C66F;
|
||||
transform: rotateY(-180deg);
|
||||
.checkbox-wrapper-26 label:hover:before {
|
||||
width: calc(var(--size) * .55);
|
||||
height: calc(var(--size) * .55);
|
||||
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:before {
|
||||
background: #FF3A19;
|
||||
content: attr(data-tg-off);
|
||||
.checkbox-wrapper-26 label:active {
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:active:before {
|
||||
transform: rotateY(-20deg);
|
||||
.checkbox-wrapper-26 .tick_mark {
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
right: 0;
|
||||
left: calc(var(--size) * -.05);
|
||||
width: calc(var(--size) * .6);
|
||||
height: calc(var(--size) * .6);
|
||||
margin: 0 auto;
|
||||
margin-left: calc(var(--size) * .14);
|
||||
transform: rotateZ(-40deg);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip:checked + .tgl-btn:before {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
.checkbox-wrapper-26 .tick_mark:before,
|
||||
.checkbox-wrapper-26 .tick_mark:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
border-radius: 2px;
|
||||
opacity: 0;
|
||||
transition: 0.2s ease transform, 0.2s ease opacity;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip:checked + .tgl-btn:after {
|
||||
transform: rotateY(0);
|
||||
left: 0;
|
||||
background: #7FC6A6;
|
||||
}
|
||||
.checkbox-wrapper-26 .tick_mark:before {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: calc(var(--size) * .1);
|
||||
height: calc(var(--size) * .3);
|
||||
box-shadow: -2px 0 5px rgba(0, 0, 0, 0.23);
|
||||
transform: translateY(calc(var(--size) * -.68));
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip:checked + .tgl-btn:active:after {
|
||||
transform: rotateY(20deg);
|
||||
}
|
||||
</style>
|
||||
.checkbox-wrapper-26 .tick_mark:after {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: calc(var(--size) * .1);
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.23);
|
||||
transform: translateX(calc(var(--size) * .78));
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label {
|
||||
background-color: #07d410;
|
||||
box-shadow: 0 var(--shadow) #92ff97;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label:before {
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label .tick_mark:before,
|
||||
.checkbox-wrapper-26 input[type="checkbox"]:checked + label .tick_mark:after {
|
||||
transform: translate(0);
|
||||
opacity: 1;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.checkbox-wrapper-10 .tgl {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl,
|
||||
.checkbox-wrapper-10 .tgl:after,
|
||||
.checkbox-wrapper-10 .tgl:before,
|
||||
.checkbox-wrapper-10 .tgl *,
|
||||
.checkbox-wrapper-10 .tgl *:after,
|
||||
.checkbox-wrapper-10 .tgl *:before,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl:after::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl:before::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl *::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl *:after::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl *:before::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn::-moz-selection,
|
||||
.checkbox-wrapper-10 .tgl::selection,
|
||||
.checkbox-wrapper-10 .tgl:after::selection,
|
||||
.checkbox-wrapper-10 .tgl:before::selection,
|
||||
.checkbox-wrapper-10 .tgl *::selection,
|
||||
.checkbox-wrapper-10 .tgl *:after::selection,
|
||||
.checkbox-wrapper-10 .tgl *:before::selection,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn::selection {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn {
|
||||
outline: 0;
|
||||
display: block;
|
||||
width: 4em;
|
||||
height: 2em;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:after,
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:before {
|
||||
position: relative;
|
||||
display: block;
|
||||
content: "";
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:after {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl + .tgl-btn:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl:checked + .tgl-btn:after {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn {
|
||||
padding: 2px;
|
||||
transition: all 0.2s ease;
|
||||
font-family: sans-serif;
|
||||
perspective: 100px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:after,
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:before {
|
||||
display: inline-block;
|
||||
transition: all 0.4s ease;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
line-height: 2em;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:after {
|
||||
content: attr(data-tg-on);
|
||||
background: #02C66F;
|
||||
transform: rotateY(-180deg);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:before {
|
||||
background: #FF3A19;
|
||||
content: attr(data-tg-off);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip + .tgl-btn:active:before {
|
||||
transform: rotateY(-20deg);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip:checked + .tgl-btn:before {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip:checked + .tgl-btn:after {
|
||||
transform: rotateY(0);
|
||||
left: 0;
|
||||
background: #7FC6A6;
|
||||
}
|
||||
|
||||
.checkbox-wrapper-10 .tgl-flip:checked + .tgl-btn:active:after {
|
||||
transform: rotateY(20deg);
|
||||
}
|
||||
</style>
|
||||
}
|
||||
<div class="modal-header" style="border-bottom: unset">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="right: 1%;">×</button>
|
||||
@@ -852,7 +852,7 @@
|
||||
workshopAccountlist.Insurance = insuranceStr;
|
||||
workshopAccountlist.Tax = taxStr;
|
||||
workshopAccountlist.IsActiveSting = isActiveSt;
|
||||
|
||||
var test = [{id:12,workshopAccolist :[]}]
|
||||
workshopAccountlistViewModel.push(workshopAccountlist);
|
||||
});
|
||||
if (ajaxSend) {
|
||||
|
||||
@@ -1,149 +1,155 @@
|
||||
@page
|
||||
@model ServiceHost.Areas.Camera.Pages.IndexModel
|
||||
@using System.Diagnostics
|
||||
@using Version = _0_Framework.Application.Version
|
||||
|
||||
@{
|
||||
var watch = new Stopwatch();
|
||||
Layout = "Shared/_Layout";
|
||||
ViewData["Title"] = " - " + "حضور غیاب";
|
||||
<style>
|
||||
body {
|
||||
background-color: #222831
|
||||
}
|
||||
<style>
|
||||
body {
|
||||
background-color: #222831
|
||||
}
|
||||
|
||||
#btnName {
|
||||
font-size: 64px;
|
||||
border-radius: 13px;
|
||||
background-color: #37ad4f;
|
||||
border-color: #339380;
|
||||
margin: 7px;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
#btnName {
|
||||
font-size: 64px;
|
||||
border-radius: 13px;
|
||||
background-color: #37ad4f;
|
||||
border-color: #339380;
|
||||
margin: 7px;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.btnAction {
|
||||
font-size: 64px;
|
||||
border-radius: 13px;
|
||||
margin: 7px;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.btnAction {
|
||||
font-size: 64px;
|
||||
border-radius: 13px;
|
||||
margin: 7px;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
canvas {
|
||||
position: absolute;
|
||||
// top: 0px;
|
||||
right: 0px;
|
||||
display: inline-block;
|
||||
direction: ltr;
|
||||
width: 1400px;
|
||||
height: 1400px;
|
||||
// width: 1800px;
|
||||
// height: 1800px;
|
||||
}
|
||||
canvas {
|
||||
position: absolute;
|
||||
// top: 0px;
|
||||
right: 0px;
|
||||
display: inline-block;
|
||||
direction: ltr;
|
||||
width: 1400px;
|
||||
height: 1400px;
|
||||
// width: 1800px;
|
||||
// height: 1800px;
|
||||
}
|
||||
|
||||
.hiddenCanvas {
|
||||
position: unset;
|
||||
}
|
||||
.hiddenCanvas {
|
||||
position: unset;
|
||||
}
|
||||
|
||||
#video {
|
||||
// border: 7px solid #797979;
|
||||
border-radius: 100%;
|
||||
display: inline-block;
|
||||
// width: 1800px;
|
||||
// height: 1800px;
|
||||
width: 1400px;
|
||||
height: 1400px;
|
||||
}
|
||||
#video {
|
||||
// border: 7px solid #797979;
|
||||
border-radius: 100%;
|
||||
display: inline-block;
|
||||
// width: 1800px;
|
||||
// height: 1800px;
|
||||
width: 1400px;
|
||||
height: 1400px;
|
||||
}
|
||||
|
||||
.btn-start {
|
||||
font-size: 64px;
|
||||
width: 1000px !important;
|
||||
display: block;
|
||||
}
|
||||
.btn-start {
|
||||
font-size: 64px;
|
||||
width: 1000px !important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.btn-incom {
|
||||
font-size: 64px;
|
||||
width: 1000px !important;
|
||||
display: block;
|
||||
}
|
||||
.btn-incom {
|
||||
font-size: 64px;
|
||||
width: 1000px !important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.btn-exit {
|
||||
font-size: 64px;
|
||||
width: 1000px !important;
|
||||
display: block;
|
||||
}
|
||||
.btn-exit {
|
||||
font-size: 64px;
|
||||
width: 1000px !important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#btnOutOrIn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
#btnOutOrIn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#reAnalyz {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
// position: fixed;
|
||||
// top: 600px;
|
||||
// margin-right: 7px;
|
||||
}
|
||||
#reAnalyz {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
// position: fixed;
|
||||
// top: 600px;
|
||||
// margin-right: 7px;
|
||||
}
|
||||
|
||||
@@media only screen and (max-width : 992px) {
|
||||
// #reAnalyz {
|
||||
// top: 600px;
|
||||
// margin-right: 3px;
|
||||
// }
|
||||
@@media only screen and (max-width : 992px) {
|
||||
// #reAnalyz {
|
||||
// top: 600px;
|
||||
// margin-right: 3px;
|
||||
//
|
||||
}
|
||||
|
||||
// #waiting {
|
||||
// color: #ffffff;
|
||||
// position: absolute;
|
||||
// top: 600px;
|
||||
// }
|
||||
// #waiting {
|
||||
// color: #ffffff;
|
||||
// position: absolute;
|
||||
// top: 600px;
|
||||
//
|
||||
}
|
||||
|
||||
// #recognizing {
|
||||
// color: #ffffff;
|
||||
// position: absolute;
|
||||
// top: 230px;
|
||||
// }
|
||||
canvas {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
display: inline-block;
|
||||
direction: ltr;
|
||||
width: 1400px;
|
||||
height: 1400px;
|
||||
}
|
||||
}
|
||||
// #recognizing {
|
||||
// color: #ffffff;
|
||||
// position: absolute;
|
||||
// top: 230px;
|
||||
//
|
||||
}
|
||||
|
||||
.div-logout {
|
||||
position: fixed;
|
||||
right: -130px;
|
||||
top: 110px;
|
||||
}
|
||||
</style>
|
||||
canvas {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
display: inline-block;
|
||||
direction: ltr;
|
||||
width: 1400px;
|
||||
height: 1400px;
|
||||
}
|
||||
}
|
||||
|
||||
.div-logout {
|
||||
position: fixed;
|
||||
right: -130px;
|
||||
top: 110px;
|
||||
}
|
||||
</style>
|
||||
}
|
||||
|
||||
@section Styles
|
||||
@@ -151,12 +157,12 @@
|
||||
<link rel="stylesheet" href="~/AssetsClient/css/webcam.css?ver=@Version.CameraVersion">
|
||||
<style>
|
||||
/* #my_camera,
|
||||
#my_camera video {
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
min-width: 100%;
|
||||
min-height: 500px;
|
||||
} */
|
||||
#my_camera video {
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
min-width: 100%;
|
||||
min-height: 500px;
|
||||
} */
|
||||
|
||||
#video {
|
||||
width: 1400px !important;
|
||||
@@ -222,17 +228,17 @@
|
||||
<div class="mx-auto">
|
||||
<div class="div-logout">
|
||||
<a asp-area="" asp-page="/Index" asp-page-handler="Logout">
|
||||
<svg width="120" height="120" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="6" cy="6" rx="6" ry="6" transform="matrix(4.37114e-08 -1 -1 -4.37114e-08 20 18)" fill="#2dbbbb" fill-opacity="0.50" />
|
||||
<path d="M7.7 12C7.7 8.52061 10.5206 5.7 14 5.7C17.4794 5.7 20.3 8.52061 20.3 12C20.3 15.4794 17.4794 18.3 14 18.3C10.5206 18.3 7.7 15.4794 7.7 12Z" stroke="#2dbbbb" stroke-opacity="0.50" stroke-width="0.6" />
|
||||
<path d="M8 18.9282C9.21615 19.6303 10.5957 20 12 20C13.4043 20 14.7838 19.6303 16 18.9282C17.2162 18.2261 18.2261 17.2162 18.9282 16C19.6303 14.7838 20 13.4043 20 12C20 10.5957 19.6303 9.21615 18.9282 8C18.2261 6.78385 17.2162 5.77394 16 5.0718C14.7838 4.36965 13.4043 4 12 4C10.5957 4 9.21615 4.36965 8 5.0718" stroke="#ef4444" stroke-width="1.2" stroke-linecap="round" />
|
||||
<path d="M6 7L2 12M2 12L6 17M2 12H11" stroke="#ef4444" stroke-width="1.2" stroke-linecap="round" />
|
||||
</svg>
|
||||
<p style="font-size: 50px; color: #ffffff">خاموش</p>
|
||||
<svg width="120" height="120" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="6" cy="6" rx="6" ry="6" transform="matrix(4.37114e-08 -1 -1 -4.37114e-08 20 18)" fill="#2dbbbb" fill-opacity="0.50" />
|
||||
<path d="M7.7 12C7.7 8.52061 10.5206 5.7 14 5.7C17.4794 5.7 20.3 8.52061 20.3 12C20.3 15.4794 17.4794 18.3 14 18.3C10.5206 18.3 7.7 15.4794 7.7 12Z" stroke="#2dbbbb" stroke-opacity="0.50" stroke-width="0.6" />
|
||||
<path d="M8 18.9282C9.21615 19.6303 10.5957 20 12 20C13.4043 20 14.7838 19.6303 16 18.9282C17.2162 18.2261 18.2261 17.2162 18.9282 16C19.6303 14.7838 20 13.4043 20 12C20 10.5957 19.6303 9.21615 18.9282 8C18.2261 6.78385 17.2162 5.77394 16 5.0718C14.7838 4.36965 13.4043 4 12 4C10.5957 4 9.21615 4.36965 8 5.0718" stroke="#ef4444" stroke-width="1.2" stroke-linecap="round" />
|
||||
<path d="M6 7L2 12M2 12L6 17M2 12H11" stroke="#ef4444" stroke-width="1.2" stroke-linecap="round" />
|
||||
</svg>
|
||||
<p style="font-size: 50px; color: #ffffff">خاموش</p>
|
||||
</a>
|
||||
</div>
|
||||
<div style="margin: 50px 0 50px 0;">
|
||||
<svg width="180px" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 621.6 721.91">
|
||||
<svg width="180px" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 621.6 721.91">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
@@ -269,8 +275,8 @@
|
||||
<img src="~/AssetsClient/images/face.png" style="position: absolute;top: 0;right: 0;width: 1400px;transform: scale(1.006);border-radius: 100%;" />
|
||||
</div>
|
||||
@* <div id="display" style="position: relative;width: 1400px;height: 1400px;padding: 735px;display: flex;align-items: center;justify-content: center;">
|
||||
<video style="object-fit: cover" id="video" width="1000" height="1000" autoplay></video>
|
||||
<img src="~/AssetsClient/images/face.png" style="position: absolute;top: 35px;width: 1400px;border-radius: 1400px;transform: scale(1.006);" />
|
||||
<video style="object-fit: cover" id="video" width="1000" height="1000" autoplay></video>
|
||||
<img src="~/AssetsClient/images/face.png" style="position: absolute;top: 35px;width: 1400px;border-radius: 1400px;transform: scale(1.006);" />
|
||||
</div> *@
|
||||
<p id="notFound" class="mt-2 text-white" style="font-size: 70px;display: none;">شناسایی نشد!</p>
|
||||
<div id="users" class="mt-2 text-white" style="font-size: 70px;top: 30px;position: relative;"></div>
|
||||
@@ -282,7 +288,8 @@
|
||||
<input type="hidden" id="workshopId" asp-for="@Model.WorkshopId" value="@Model.WorkshopId" />
|
||||
<div style="display: block;font-size: 64px;width: 1345px;">
|
||||
<div id="reAnalyz" style="">
|
||||
<a id="reloadRec" class="btn-start" style="display: none;">شروع شناسایی</a>
|
||||
<a id="reloadRec" class="btn-start">شروع شناسایی</a>
|
||||
<a onclick="sendPersonelCodeToGetEmployeeId(23)" class="btn-start">تایید کد پرسنلی</a>
|
||||
<!--<a id="reloadRec" class="btn btn-primary" style="border-radius: 15px;display: none;">شروع شناسایی </a>
|
||||
<a id="notFound" class="btn btn-warning" style="border-radius: 15px;display: none;"> شناسایی نشد </a>-->
|
||||
</div>
|
||||
@@ -294,7 +301,7 @@
|
||||
</div>
|
||||
<div id="btnOutOrIn">
|
||||
</div>
|
||||
@* <div id="users" style="">
|
||||
@* <div id="users" style="">
|
||||
</div> *@
|
||||
</div>
|
||||
|
||||
@@ -331,12 +338,13 @@
|
||||
</div>
|
||||
</div> *@
|
||||
|
||||
<div id="imageData">
|
||||
@* <div id="imageData">
|
||||
@foreach (var item in @Model.ImageDataList)
|
||||
{
|
||||
<img style="display: none" class="imageData" data-imageId="@item.Id@item.ImageNumber" src="data:image/jpeg;base64,@item.ImagePath" />
|
||||
}
|
||||
</div>
|
||||
|
||||
</div> *@
|
||||
|
||||
@section Script
|
||||
{
|
||||
@@ -402,12 +410,11 @@
|
||||
const recognizing = document.getElementById("recognizing");
|
||||
const reloadRec = document.getElementById("reloadRec");
|
||||
const notFound = document.getElementById("notFound");
|
||||
var personIds = [];
|
||||
@foreach (var item in Model.PersonelIds)
|
||||
{
|
||||
@:personIds.push(`${@item}`);
|
||||
}
|
||||
// let modelsUrl = "https://raw.githubusercontent.com/justadudewhohacks/face-api.js/master/weights/";
|
||||
const workshopId = Number('@Model.WorkshopId');
|
||||
const urlPath = "@Model.UrlPath";
|
||||
|
||||
|
||||
// let modelsUrl = "https://raw.githubusercontent.com/justadudewhohacks/face-api.js/master/weights/";
|
||||
|
||||
const run = async () => {
|
||||
|
||||
@@ -425,12 +432,26 @@
|
||||
// faceapi.nets.ssdMobilenetv1.loadFromDisk(modelPath),
|
||||
// faceapi.nets.faceRecognitionNet.loadFromDisk(modelPath),
|
||||
// faceapi.nets.faceLandmark68Net.loadFromDisk(modelPath)
|
||||
]).then(startWebcam);
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
run();
|
||||
|
||||
var personIds = [];
|
||||
var urls = [];
|
||||
function addPic() {
|
||||
for (let i = 0; i < personIds.length; i++) {
|
||||
urls.push({ id: personIds[i], listUrls: [] })
|
||||
for (let j = 1; j <= 2; j++) {
|
||||
const a = `${urlPath}/Camera?handler=ShowPicture&index=${j}&workshopId=${workshopId}&label=${personIds[i]}`;
|
||||
urls[i].listUrls.push(a);
|
||||
}
|
||||
|
||||
}
|
||||
startWebcam();
|
||||
}
|
||||
function startWebcam() {
|
||||
|
||||
navigator.mediaDevices
|
||||
.getUserMedia({
|
||||
video: true,
|
||||
@@ -444,36 +465,47 @@
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
function stopWebcam() {
|
||||
window.location.reload();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var stop = false;
|
||||
var getImages = document.getElementById("imageData");
|
||||
// var getImages = document.getElementById("imageData");
|
||||
function getLabeledFaceDescriptions() {
|
||||
return Promise.all(
|
||||
personIds.map(async (label) => {
|
||||
urls.map(async (url) => {
|
||||
let startDate = new Date().getTime();
|
||||
let descriptions = [];
|
||||
for (let i = 1; i <= 2; i++) {
|
||||
url.listUrls.forEach(async function (path) {
|
||||
|
||||
// var a = `\\Faces\\${workshopId}\\${label}\\${i}.jpg`;
|
||||
var mix = `${label}${i}`;
|
||||
let img = getImages.querySelector(".imageData[data-imageId='" + mix + "']");
|
||||
console.log(img);
|
||||
// if (!img) {
|
||||
// console.error(`No image found for ${mix}`);
|
||||
// continue;
|
||||
// }
|
||||
// let img = await faceapi.fetchImage(im);
|
||||
|
||||
// var mix = `${label}${i}`;
|
||||
// let img = getImages.querySelector(".imageData[data-imageId='" + mix + "']");
|
||||
console.log(`${url.id} ${path}`)
|
||||
const img = await faceapi.fetchImage(path);
|
||||
|
||||
const detections = await faceapi.detectSingleFace(img).withFaceLandmarks().withFaceDescriptor();
|
||||
// if (!detections) {
|
||||
// console.error(`No face detected in image ${mix}`);
|
||||
// continue;
|
||||
// }
|
||||
|
||||
|
||||
descriptions.push(detections.descriptor);
|
||||
|
||||
}
|
||||
return new faceapi.LabeledFaceDescriptors(label, descriptions);
|
||||
});
|
||||
let endDate = new Date().getTime();
|
||||
let elapsed = (endDate - startDate) / 1000;
|
||||
console.log(`time forloop elapsed is ${elapsed}`);
|
||||
console.log(url.id);
|
||||
console.log(descriptions);
|
||||
return new faceapi.LabeledFaceDescriptors(url.id, descriptions);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
var cacheName = [];
|
||||
var unknown = [];
|
||||
var endOfRecognition = true;
|
||||
@@ -493,13 +525,14 @@
|
||||
// cacheName = []; // خالی کردن لیست شناسایی شده ها
|
||||
|
||||
// }
|
||||
|
||||
reloadRec.style.display = "none";
|
||||
reloadRec.addEventListener("click",
|
||||
function () {
|
||||
// let oldName = document.getElementById("btnName");
|
||||
// if (oldName != null) {
|
||||
// oldName.remove(); // حذف نام قبلی
|
||||
// }
|
||||
|
||||
$('#users').html('');
|
||||
//$('#testDistance').html('');
|
||||
endOfRecognition = false; // خاموشی پایان شناسایی
|
||||
@@ -510,28 +543,36 @@
|
||||
notFound.style.display = "none"; // مخفی شدن دکمه شناسایی
|
||||
cacheName = []; // خالی کردن لیست شناسایی شده ها
|
||||
unknown = [];
|
||||
|
||||
});
|
||||
var interId;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
video.addEventListener("play",
|
||||
async () => {
|
||||
const labeledFaceDescriptors = await getLabeledFaceDescriptions();
|
||||
const faceMatcher = new faceapi.FaceMatcher(labeledFaceDescriptors);
|
||||
|
||||
const labeledFaceDescriptors = await getLabeledFaceDescriptions();
|
||||
|
||||
const faceMatcher = new faceapi.FaceMatcher(labeledFaceDescriptors);
|
||||
|
||||
|
||||
const canvas = faceapi.createCanvasFromMedia(video);
|
||||
display.append(canvas);
|
||||
|
||||
const displaySize = { width: video.width, height: video.height };
|
||||
faceapi.matchDimensions(canvas, displaySize);
|
||||
|
||||
|
||||
interId = setInterval(async () => {
|
||||
if (!stop) {
|
||||
|
||||
waiting.style.display = "none";
|
||||
if (!reloadActionControl) {
|
||||
reloadRec.style.display = "block";
|
||||
}
|
||||
if (endOfRecognition === false) {
|
||||
|
||||
waiting.style.display = "none";
|
||||
reloadActionControl = true;
|
||||
recognizing.style.display = "block";
|
||||
@@ -584,7 +625,7 @@
|
||||
reloadRec.style.display = "none";
|
||||
|
||||
// t.addClass('.hiddenCanvas');
|
||||
|
||||
|
||||
getPersonel(result.label);
|
||||
endOfRecognition = true;
|
||||
stop = true;
|
||||
@@ -601,55 +642,31 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
},100);
|
||||
}, 100);
|
||||
});
|
||||
|
||||
|
||||
function getPersonel(employeeId) {
|
||||
//// AjAx to get EmployeeId with personnel code
|
||||
function sendPersonelCodeToGetEmployeeId(personelCode) {
|
||||
const workshopId = $('#workshopId').val();
|
||||
let users = document.getElementById("users");
|
||||
let user1 = $('#users');
|
||||
let btnOutOrIn = $('#btnOutOrIn')
|
||||
$.ajax({
|
||||
async: false,
|
||||
//contentType: 'application/json',
|
||||
//dataType: 'data',
|
||||
// contentType: 'application/json',
|
||||
// dataType: 'data',
|
||||
type: 'GET',
|
||||
url: '@Url.Page("./Index", "EmployeeFlag")',
|
||||
data: { "employeeId": Number(employeeId), "workshopId": Number(workshopId) },
|
||||
url: '@Url.Page("./Index", "SendPersonelCodeToGetEmployeeId")',
|
||||
data: { "personelCode": Number(personelCode), "workshopId": Number(workshopId) },
|
||||
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
|
||||
success: function (response) {
|
||||
console.log(response)
|
||||
if (response.flag > 0) {
|
||||
|
||||
let e = document.createElement('span');
|
||||
e.innerHTML = response.employeeName;
|
||||
// e.id = "btnName";
|
||||
// e.className += "btn ";
|
||||
// e.className += "btn-primary";
|
||||
|
||||
|
||||
// const out = `<button type="button" id="out" class="btn btn-warning btnAction" onclick="out(${response.flag})">ثبت خروج</button>`;
|
||||
const out = `<button type="button" id="out" class="btn-exit" onclick="out(${response.flag})">ثبت خروج</button>`;
|
||||
user1.html('');
|
||||
btnOutOrIn.html('');
|
||||
users.append(e);
|
||||
btnOutOrIn.append(out);
|
||||
if (response.isSuccess) {
|
||||
personIds = [];
|
||||
personIds.push(response.personId);
|
||||
addPic();
|
||||
|
||||
endOfRecognition = false;
|
||||
} else {
|
||||
|
||||
let e = document.createElement('span');
|
||||
e.innerHTML = response.employeeName;
|
||||
// e.id = "btnName";
|
||||
// e.className += "btn ";
|
||||
// e.className += "btn-primary";
|
||||
|
||||
|
||||
// const incom = `<button type="button" id="incom" class="btn btn-info btnAction" onclick="inCom(${employeeId})">ثبت ورود</button>`;
|
||||
const incom = `<button type="button" id="incom" class="btn-incom" onclick="inCom(${employeeId})">ثبت ورود</button>`;
|
||||
user1.html('');
|
||||
btnOutOrIn.html('');
|
||||
users.appendChild(e);
|
||||
btnOutOrIn.append(incom);
|
||||
alert(response.message);
|
||||
|
||||
}
|
||||
},
|
||||
@@ -660,7 +677,65 @@
|
||||
});
|
||||
}
|
||||
|
||||
function getPersonel(employeeId) {
|
||||
const workshopId = $('#workshopId').val();
|
||||
let users = document.getElementById("users");
|
||||
let user1 = $('#users');
|
||||
let btnOutOrIn = $('#btnOutOrIn')
|
||||
let employeeIdNumber = Number(employeeId)
|
||||
if (employeeIdNumber > 0) {
|
||||
$.ajax({
|
||||
async: false,
|
||||
//contentType: 'application/json',
|
||||
//dataType: 'data',
|
||||
type: 'GET',
|
||||
url: '@Url.Page("./Index", "EmployeeFlag")',
|
||||
data: { "employeeId": employeeIdNumber, "workshopId": Number(workshopId) },
|
||||
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
|
||||
success: function (response) {
|
||||
console.log(response)
|
||||
if (response.flag > 0) {
|
||||
|
||||
let e = document.createElement('span');
|
||||
e.innerHTML = response.employeeName;
|
||||
// e.id = "btnName";
|
||||
// e.className += "btn ";
|
||||
// e.className += "btn-primary";
|
||||
|
||||
|
||||
// const out = `<button type="button" id="out" class="btn btn-warning btnAction" onclick="out(${response.flag})">ثبت خروج</button>`;
|
||||
const out = `<button type="button" id="out" class="btn-exit" onclick="out(${response.flag})">ثبت خروج</button>`;
|
||||
user1.html('');
|
||||
btnOutOrIn.html('');
|
||||
users.append(e);
|
||||
btnOutOrIn.append(out);
|
||||
} else {
|
||||
|
||||
let e = document.createElement('span');
|
||||
e.innerHTML = response.employeeName;
|
||||
// e.id = "btnName";
|
||||
// e.className += "btn ";
|
||||
// e.className += "btn-primary";
|
||||
|
||||
|
||||
// const incom = `<button type="button" id="incom" class="btn btn-info btnAction" onclick="inCom(${employeeId})">ثبت ورود</button>`;
|
||||
const incom = `<button type="button" id="incom" class="btn-incom" onclick="inCom(${employeeId})">ثبت ورود</button>`;
|
||||
user1.html('');
|
||||
btnOutOrIn.html('');
|
||||
users.appendChild(e);
|
||||
btnOutOrIn.append(incom);
|
||||
|
||||
}
|
||||
},
|
||||
failure: function (response) {
|
||||
console.log(5, response);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
//ثبت خروج
|
||||
function out(flagId) {
|
||||
|
||||
$.ajax({
|
||||
@@ -679,6 +754,8 @@
|
||||
$('#btnOutOrIn').html('');
|
||||
reloadRec.style.display = "block";
|
||||
reloadActionControl = false;
|
||||
endOfRecognition = true;
|
||||
stopWebcam();
|
||||
|
||||
} else {
|
||||
// $.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "خطا در ثبت اطلاعات");
|
||||
@@ -691,7 +768,7 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//ثبت ورود
|
||||
function inCom(employeeId) {
|
||||
const workshopId = $('#workshopId').val();
|
||||
$.ajax({
|
||||
@@ -710,6 +787,8 @@
|
||||
$('#btnOutOrIn').html('');
|
||||
reloadRec.style.display = "block";
|
||||
reloadActionControl = false;
|
||||
endOfRecognition = true;
|
||||
stopWebcam();
|
||||
} else {
|
||||
|
||||
// $.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "خطا در ثبت اطلاعات");
|
||||
@@ -723,6 +802,7 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics;
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.Employee;
|
||||
using CompanyManagment.App.Contracts.RollCall;
|
||||
@@ -6,6 +6,8 @@ using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using System.IO;
|
||||
using AccountManagement.Domain.TaskAgg;
|
||||
using CompanyManagment.App.Contracts.PersonnleCode;
|
||||
using CompanyManagment.App.Contracts.RollCallEmployee;
|
||||
using CompanyManagment.App.Contracts.RollCallService;
|
||||
|
||||
@@ -21,11 +23,13 @@ public class IndexModel : PageModel
|
||||
private readonly IRollCallServiceApplication _rollCallServiceApplication;
|
||||
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
|
||||
private readonly IAuthHelper _authHelper;
|
||||
private readonly IPersonnelCodeApplication _personnelCodeApplication;
|
||||
public long WorkshopId;
|
||||
public string UrlPath { get; set; }
|
||||
public List<ImageData> ImageDataList;
|
||||
public List<long> PersonelIds;
|
||||
|
||||
public IndexModel(IWebHostEnvironment webHostEnvironment, IConfiguration configuration, IEmployeeApplication employeeApplication, IRollCallApplication rollCallApplication, IAuthHelper authHelper, IRollCallServiceApplication rollCallServiceApplication, IRollCallEmployeeApplication rollCallEmployeeApplication)
|
||||
public IndexModel(IWebHostEnvironment webHostEnvironment, IConfiguration configuration, IEmployeeApplication employeeApplication, IRollCallApplication rollCallApplication, IAuthHelper authHelper, IRollCallServiceApplication rollCallServiceApplication, IRollCallEmployeeApplication rollCallEmployeeApplication, IPersonnelCodeApplication personnelCodeApplication)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_configuration = configuration;
|
||||
@@ -34,12 +38,14 @@ public class IndexModel : PageModel
|
||||
_authHelper = authHelper;
|
||||
_rollCallServiceApplication = rollCallServiceApplication;
|
||||
_rollCallEmployeeApplication = rollCallEmployeeApplication;
|
||||
_personnelCodeApplication = personnelCodeApplication;
|
||||
}
|
||||
|
||||
public IActionResult OnGet()
|
||||
{
|
||||
var cameraAccount = _authHelper.CameraAccountInfo();
|
||||
WorkshopId = cameraAccount.WorkshopId;
|
||||
UrlPath = $"{Request.Scheme}://{Request.Host}";
|
||||
var service = _rollCallServiceApplication.GetActiveServiceByWorkshopId(cameraAccount.WorkshopId);
|
||||
if (service != null && service.IsActiveString == "true")
|
||||
{
|
||||
@@ -58,21 +64,21 @@ public class IndexModel : PageModel
|
||||
PersonelIds = personnelIdsList.ToList();
|
||||
}
|
||||
|
||||
var imageData = new List<ImageData>();
|
||||
foreach (var personId in PersonelIds)
|
||||
{
|
||||
for (int i = 1; i <= 2; i++)
|
||||
{
|
||||
byte[] fileContent = System.IO.File.ReadAllBytes($"{_webHostEnvironment.ContentRootPath}\\Faces\\{WorkshopId}\\{personId}\\{i}.jpg");
|
||||
imageData.Add(new ImageData()
|
||||
{
|
||||
ImagePath = Convert.ToBase64String(fileContent),
|
||||
ImageNumber = i,
|
||||
Id = personId
|
||||
});
|
||||
}
|
||||
}
|
||||
ImageDataList = imageData;
|
||||
//var imageData = new List<ImageData>();
|
||||
//foreach (var personId in PersonelIds)
|
||||
//{
|
||||
// for (int i = 1; i <= 2; i++)
|
||||
// {
|
||||
// byte[] fileContent = System.IO.File.ReadAllBytes($"{_webHostEnvironment.ContentRootPath}\\Faces\\{WorkshopId}\\{personId}\\{i}.jpg");
|
||||
// imageData.Add(new ImageData()
|
||||
// {
|
||||
// ImagePath = Convert.ToBase64String(fileContent),
|
||||
// ImageNumber = i,
|
||||
// Id = personId
|
||||
// });
|
||||
// }
|
||||
//}
|
||||
//ImageDataList = imageData;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -89,6 +95,32 @@ public class IndexModel : PageModel
|
||||
return Page();
|
||||
}
|
||||
|
||||
public IActionResult OnGetSendPersonelCodeToGetEmployeeId(long personelCode, long workshopId)
|
||||
{
|
||||
|
||||
var employeeId = _personnelCodeApplication.GetEmployeeIdByPersonelCode(personelCode, workshopId);
|
||||
if (employeeId == 0)
|
||||
{
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccess = false,
|
||||
message = "کد پرسنلی یافت نشد",
|
||||
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccess = true,
|
||||
message = "",
|
||||
personId = $"{employeeId}",
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
public IActionResult OnGetEmployeeFlag(long employeeId, long workshopId)
|
||||
{
|
||||
var employeeFullName = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId).EmployeeFullName;
|
||||
@@ -149,6 +181,28 @@ public class IndexModel : PageModel
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public IActionResult OnGetShowPicture(int index,long workshopId,long label)
|
||||
{
|
||||
Console.WriteLine(index);
|
||||
var filePath = $"\\Faces\\{workshopId}\\{label}\\{index}.jpg";
|
||||
|
||||
if (string.IsNullOrEmpty(filePath))
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
var serverRoot = $"{_webHostEnvironment.ContentRootPath}{filePath}";
|
||||
|
||||
|
||||
if (!System.IO.File.Exists(serverRoot))
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
var contentType = "image/jpeg";
|
||||
return PhysicalFile(serverRoot, contentType);
|
||||
}
|
||||
}
|
||||
|
||||
public class ImageData
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 287 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 292 KiB |
|
Before Width: | Height: | Size: 450 KiB After Width: | Height: | Size: 394 KiB |
|
Before Width: | Height: | Size: 445 KiB After Width: | Height: | Size: 381 KiB |
|
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 486 KiB After Width: | Height: | Size: 367 KiB |
BIN
ServiceHost/Faces/11/3857/1.jpg
Normal file
|
After Width: | Height: | Size: 361 KiB |
BIN
ServiceHost/Faces/11/3857/2.jpg
Normal file
|
After Width: | Height: | Size: 362 KiB |
|
Before Width: | Height: | Size: 560 KiB After Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 520 KiB After Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 480 KiB After Width: | Height: | Size: 449 KiB |
|
Before Width: | Height: | Size: 478 KiB After Width: | Height: | Size: 388 KiB |
BIN
ServiceHost/Faces/11/42203/1.jpg
Normal file
|
After Width: | Height: | Size: 389 KiB |
BIN
ServiceHost/Faces/11/42203/2.jpg
Normal file
|
After Width: | Height: | Size: 404 KiB |
BIN
ServiceHost/Faces/11/42326/1.jpg
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
ServiceHost/Faces/11/42326/2.jpg
Normal file
|
After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 320 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 319 KiB |
BIN
ServiceHost/Faces/11/42962/1.jpg
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
ServiceHost/Faces/11/42962/2.jpg
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
ServiceHost/Faces/11/42964/1.jpg
Normal file
|
After Width: | Height: | Size: 358 KiB |
BIN
ServiceHost/Faces/11/42964/2.jpg
Normal file
|
After Width: | Height: | Size: 354 KiB |
BIN
ServiceHost/Faces/11/42966/1.jpg
Normal file
|
After Width: | Height: | Size: 383 KiB |
BIN
ServiceHost/Faces/11/42966/2.jpg
Normal file
|
After Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 266 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 287 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 508 KiB After Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 484 KiB After Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 481 KiB After Width: | Height: | Size: 318 KiB |
|
Before Width: | Height: | Size: 480 KiB After Width: | Height: | Size: 320 KiB |
@@ -678,7 +678,7 @@
|
||||
$('.loading').show();
|
||||
setTimeout(function () {
|
||||
$.ajax({
|
||||
async: false,
|
||||
|
||||
dataType: 'json',
|
||||
type: 'POST',
|
||||
url: '@Url.Page("./Index", "WithMobile")',
|
||||
|
||||
@@ -200,11 +200,11 @@ namespace ServiceHost.Pages
|
||||
|
||||
public IActionResult OnPostWithMobile(string code, string phone)
|
||||
{
|
||||
bool captchaResult = true;
|
||||
if (!_webHostEnvironment.IsDevelopment())
|
||||
captchaResult = _googleRecaptcha.IsSatisfy(CaptchaResponse).Result;
|
||||
if (captchaResult)
|
||||
{
|
||||
//bool captchaResult = true;
|
||||
//if (!_webHostEnvironment.IsDevelopment())
|
||||
// captchaResult = _googleRecaptcha.IsSatisfy(CaptchaResponse).Result;
|
||||
//if (captchaResult)
|
||||
//{
|
||||
var verfiyResult = _accountApplication.GetByVerifyCode(code, phone);
|
||||
if (verfiyResult != null)
|
||||
{
|
||||
@@ -230,11 +230,11 @@ namespace ServiceHost.Pages
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Mess = "دستگاه شما ربات تشخیص داده شد";
|
||||
}
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// Mess = "دستگاه شما ربات تشخیص داده شد";
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
//"MesbahDb": "Data Source=DESKTOP-NUE119G\\MSNEW;Initial Catalog=Mesbah_db;Integrated Security=True"
|
||||
|
||||
//server
|
||||
"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
|
||||
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
|
||||
|
||||
//local
|
||||
//"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
|
||||
"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
|
||||
},
|
||||
"GoogleRecaptchaV3": {
|
||||
"SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH",
|
||||
|
||||