public IActionResult Post(PersonAccessDto p)
        {
            if ((p.BuildingId == 0) || (p.TranDate.Year == 1))
            {
                return(BadRequest());
            }

            var lastPerson = _personTrackingService.GetLastPersonTracking(p.BuildingId);

            var person = new PersonAccess
            {
                BuildingId  = p.BuildingId,
                NumberFail  = p.Failed,
                NumberPass  = p.Total - p.Failed,
                NumberTotal = p.Total,
                RemainFail  = p.Failed,
                RemainPass  = p.Total - p.Failed,
                TranDate    = p.TranDate
            };

            if ((lastPerson != null) && (lastPerson.Equals(person)))
            {
                _logger.LogWarning($"Equal previous record BuildingId:{p.BuildingId},NumberPass:{p.Total - p.Failed},NumberFail:{p.Failed},TranDate:{person.TranDate.ToLongDateString()}");
            }
            else
            {
                _logger.LogInformation($"Insert BuildingId:{p.BuildingId},NumberPass:{p.Total - p.Failed},NumberFail:{p.Failed},TranDate:{person.TranDate.ToLongDateString()}");
                _personTrackingService.InsertPersonTracking(person);
            }
            return(NoContent());
        }
Beispiel #2
0
 private void UpdatePersonAccess(int buildingId, int total, int failed, PersonAccess personTran)
 {
     personTran.NumberFail  = failed;
     personTran.NumberPass  = total - failed;
     personTran.NumberTotal = total;
     _personTrackingService.UpdatePersonTracking(personTran);
     log.Info($"Update BuildingId:{buildingId},NumberPass:{total - failed},NumberFail:{failed},TranDate:{personTran.TranDate.ToShortTimeString()}");
 }
Beispiel #3
0
 /// <summary>
 /// Marks person as deleted
 /// </summary>
 /// <param name="person">PersonTracking</param>
 public virtual void DeletePersonTracking(PersonAccess person)
 {
     if (person == null)
     {
         throw new ArgumentNullException(nameof(person));
     }
     _personRepository.Delete(person);
 }
Beispiel #4
0
        public User MapToEntity(UserModel model, User entity)
        {
            var t = _mapper.Map <UserModel>(entity);


            // Save the user access
            foreach (var accessModel in model.Access)
            {
                PersonAccess accessObj = null;
                if (accessModel.Id != Guid.Empty)
                {
                    accessObj = entity.Person.Access.FirstOrDefault(x => x.Id == accessModel.Id);
                }

                if (accessObj == null)
                {
                    accessObj = new PersonAccess()
                    {
                        Id       = SequentialGuid.NewGuid(),
                        PersonId = entity.PersonId,
                    };
                    entity.Person.Access.Add(accessObj);
                }

                //Mapper.Map(accessModel, accessObj);
            }

            //// Save the roles
            foreach (var roleModel in model.Roles)
            {
                PersonRole roleObj = null;
                if (roleModel.Id != Guid.Empty)
                {
                    roleObj = entity.Person.Roles.FirstOrDefault(x => x.Id == roleModel.Id);
                }

                if (roleObj == null)
                {
                    roleObj = new PersonRole
                    {
                        Id       = SequentialGuid.NewGuid(),
                        PersonId = entity.PersonId
                    };
                    entity.Person.Roles.Add(roleObj);
                }

                roleObj.RoleId  = roleModel.RoleId;
                roleObj.Deleted = roleModel.Deleted;
            }

            return(entity);
        }
Beispiel #5
0
        private async Task <PersonAccess> GetPersonTrackingByTranDate(int buildingId, string tranDate)
        {
            string              path     = $"{ConfigurationManager.AppSettings["BaseAddress"]}/api/PersonTracking/{buildingId}/{tranDate}";
            PersonAccess        person   = null;
            HttpResponseMessage response = await client.GetAsync(path);

            if (response.IsSuccessStatusCode && !response.ReasonPhrase.Equals("No Content"))
            {
                string json = await response.Content.ReadAsStringAsync();

                person = JsonConvert.DeserializeObject <PersonAccess>(json);
            }

            return(person);
        }
Beispiel #6
0
        private async Task <PersonAccess> UpdatePersonAccessAsync(PersonAccess p)
        {
            string uri = $"{ConfigurationManager.AppSettings["BaseAddress"]}/api/PersonTracking";
            HttpResponseMessage response = await client
                                           .PutAsync(uri, new StringContent(JsonConvert.SerializeObject(p), Encoding.UTF8, "application/json"));

            response.EnsureSuccessStatusCode();
            PersonAccess person = null;

            if (response.IsSuccessStatusCode && !response.ReasonPhrase.Equals("No Content"))
            {
                string json = await response.Content.ReadAsStringAsync();

                person = JsonConvert.DeserializeObject <PersonAccess>(json);
            }
            return(person);
        }
        public ActionResult <PersonAccess> Put(PersonAccess p)
        {
            if ((p.BuildingId == 0) || (p.NumberTotal == 0) || (p.TranDate.Year == 1))
            {
                return(BadRequest());
            }
            var p1 = _personTrackingService.GetPersonTrackingByTranDate(p.BuildingId.Value, p.TranDate);

            if (p1 == null)
            {
                _logger.LogInformation($"Update Not found BuildingId:{p.BuildingId},TranDate:{p.TranDate.ToLongDateString()}");
            }

            _personTrackingService.UpdatePersonTracking(p);
            _logger.LogInformation($"Update BuildingId:{p.BuildingId},NumberPass:{p.NumberTotal - p.NumberFail},NumberFail:{p.NumberFail},TranDate:{p.TranDate.ToLongDateString()}");

            return(p);
        }
Beispiel #8
0
        private void InsertPersonAccess(int buildingId, int total, int failed, DateTime tranDate)
        {
            var lastPerson = _personTrackingService.GetLastPersonTracking(buildingId);

            int remainFail;
            int remainPass;
            int remainTotal;

            if (lastPerson != null)
            {
                if (total > lastPerson.NumberTotal)
                {
                    remainTotal = total - lastPerson.NumberTotal;
                    remainFail  = failed - lastPerson.NumberPass;
                    remainPass  = remainTotal - remainFail;
                }
                else
                {
                    remainTotal = total;
                    remainFail  = failed;
                    remainPass  = remainTotal - remainFail;
                }
            }
            else
            {
                remainPass = total - failed;
                remainFail = failed;
            }

            var person = new PersonAccess
            {
                BuildingId  = buildingId,
                NumberFail  = failed,
                NumberPass  = total - failed,
                NumberTotal = total,
                RemainFail  = remainFail,
                RemainPass  = remainPass,
                TranDate    = tranDate
            };

            log.Info($"Insert BuildingId:{buildingId},NumberPass:{total - failed},NumberFail:{failed},TranDate:{person.TranDate.ToShortTimeString()}");
            _personTrackingService.InsertPersonTracking(person);
        }