private void ValidateRequest_Update(InfoCustomerDTO input)
 {
     if (input == null)
     {
         throw new UserException(ErrorStatusReturn.REQUEST_NULL);
     }
 }
        private async Task <ConditionValidateDTO> ValidatePhoneWhenPLateFound(CarDTO carReturn, CheckInforCollectionDTO collectionInfo)
        {
            InfoCustomer inforCustomer = await GetInfoCustomerWithIdentityAndPhoneNumberIfHave(collectionInfo);

            if (inforCustomer == null)
            {
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_CAR, null, carReturn));
            }
            else
            {
                InfoCustomerDTO inforReturn = Mapper.Map <InfoCustomerDTO>(inforCustomer);
                SetStatusForCustomerInforReturn(collectionInfo, inforCustomer, inforReturn);

                if (string.IsNullOrEmpty(inforCustomer.IdentityNumber))
                {
                    if (inforReturn.TransactionCode == carReturn.TransactionCode && !string.IsNullOrEmpty(inforReturn.TransactionCode) && !string.IsNullOrEmpty(carReturn.TransactionCode))
                    {
                        return(new ConditionValidateDTO(StatusCondition.DENIED));
                    }
                    return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn));
                }
                else
                {
                    if (inforReturn.TransactionCode == carReturn.TransactionCode && !string.IsNullOrEmpty(inforReturn.TransactionCode) && !string.IsNullOrEmpty(carReturn.TransactionCode))
                    {
                        CollectionCarDetailDTO detailInsurance = GetCollectionCarDetailMappingWithCustomer(carReturn.Plate, inforReturn);
                        return(ValidateSecondConditionWithPlateAndPhone(carReturn, inforReturn, collectionInfo, detailInsurance));
                    }
                    else
                    {
                        return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn));
                    }
                }
            }
        }
Beispiel #3
0
 private void IsPlateNumberHaveCollectionInThreeYear(InfoCustomerDTO input)
 {
     //foreach (CarDTO car in input.Cars)
     //{
     //    string carPlate = car.Plate.ToString().ToUpper();
     //    Car carFound = _carRepository.FirstOrDefault(x => x.Plate.ToString().ToUpper() == carPlate);
     //    if (carFound != null)
     //    {
     //        CheckCarHaveCollectionInThreeYear(carFound, input);
     //    }
     //}
 }
 public ApiJsonResult UpdateInfoCustomerAndCar([FromBody] InfoCustomerDTO input)
 {
     try
     {
         ValidateRequest_Update(input);
         return(new ApiJsonResult(true, _inforCustomerService.Update(input)));
     }
     catch (Exception ex)
     {
         return(ProcessException(ex));
     }
 }
Beispiel #5
0
 private void CheckCarHaveCollectionInThreeYear(Car carFound, InfoCustomerDTO input)
 {
     //DateTime currentDate = DateTime.Now;
     //InfoCustomer inforTransaction = _inforCustomerRepository
     //    .FirstOrDefault(x => x.TransactionCode == carFound.TransactionCode && x.CustomerPhone == input.CustomerPhone);
     //if (inforTransaction != null)
     //{
     //    if ((currentDate.Year - inforTransaction.TransactionDate.Value.Year) <= 3)
     //    {
     //        throw new UserException(ErrorStatusReturn.PLATE_COLLECTED_IN_THREE_YEAR);
     //    }
     //}
 }
        private async Task <ConditionValidateDTO> ValidatePhoneWhenPLateNotFound(CheckInforCollectionDTO collectionInfo)
        {
            InfoCustomer inforCustomer = await GetInfoCustomerWithIdentityAndPhoneNumberIfHave(collectionInfo);

            if (inforCustomer == null)
            {
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_NEW));
            }

            InfoCustomerDTO inforReturn = Mapper.Map <InfoCustomerDTO>(inforCustomer);

            SetStatusForCustomerInforReturn(collectionInfo, inforCustomer, inforReturn);

            return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER, inforReturn));
        }
        private async Task <ConditionValidateDTO> ValidatePhoneAndIdentityWhenPLateNotFound(CheckInforCollectionDTO collectionInfo)
        {
            InfoCustomer infoCustomerByPhoneNumber = await GetInfoCustomerWithPhoneNumberIfHave(collectionInfo);

            InfoCustomer infoCustomerByIdentityNumber = await GetInfoCustomerWithIdentityNumberIfHave(collectionInfo);

            if (infoCustomerByIdentityNumber != null) // identity high priority
            {
                InfoCustomerDTO inforReturn = Mapper.Map <InfoCustomerDTO>(infoCustomerByIdentityNumber);
                SetStatusForCustomerInforReturn(collectionInfo, infoCustomerByIdentityNumber, inforReturn);
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER, inforReturn));
            }

            if (infoCustomerByPhoneNumber != null) // after that is phone number
            {
                InfoCustomerDTO inforReturn = Mapper.Map <InfoCustomerDTO>(infoCustomerByPhoneNumber);
                SetStatusForCustomerInforReturn(collectionInfo, infoCustomerByPhoneNumber, inforReturn);
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER, inforReturn));
            }

            return(new ConditionValidateDTO(StatusCondition.ACCEPT_NEW));
        }
        private async Task <ConditionValidateDTO> ValidatePhoneAndIdentityWhenPLateFound(CarDTO carReturn, CheckInforCollectionDTO collectionInfo)
        {
            InfoCustomer infoCustomerByPhoneNumber = await GetInfoCustomerWithPhoneNumberIfHave(collectionInfo);

            InfoCustomer infoCustomerByIdentityNumber = await GetInfoCustomerWithIdentityNumberIfHave(collectionInfo);

            InfoCustomer infoCustomerByPhoneAndIdentity = await GetInfoCustomerWithIdentityAndPhoneNumberIfHave(collectionInfo);

            if (infoCustomerByPhoneNumber != null && infoCustomerByIdentityNumber != null)
            {
                if (infoCustomerByPhoneAndIdentity.TransactionCode == carReturn.TransactionCode &&
                    !string.IsNullOrEmpty(infoCustomerByPhoneAndIdentity.TransactionCode) && !string.IsNullOrEmpty(carReturn.TransactionCode))
                {
                    return(new ConditionValidateDTO(StatusCondition.DENIED));
                }
            }

            if (infoCustomerByIdentityNumber != null)
            {
                InfoCustomerDTO inforReturn = Mapper.Map <InfoCustomerDTO>(infoCustomerByIdentityNumber);
                SetStatusForCustomerInforReturn(collectionInfo, infoCustomerByIdentityNumber, inforReturn);
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn));
            }

            if (infoCustomerByPhoneNumber != null)
            {
                InfoCustomerDTO inforReturn = Mapper.Map <InfoCustomerDTO>(infoCustomerByPhoneNumber);
                SetStatusForCustomerInforReturn(collectionInfo, infoCustomerByPhoneNumber, inforReturn);
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn));
            }

            if (infoCustomerByIdentityNumber == null && infoCustomerByPhoneNumber == null)
            {
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_CAR, null, carReturn));
            }

            return(new ConditionValidateDTO(StatusCondition.ACCEPT_NEW));
        }
        public InfoCustomerDTO Update(InfoCustomerDTO input)
        {
            //var infocustome = Mapper.Map<InfoCustomerDTO, InfoCustomer>(input);
            // _inforCustomerRepository.Update(infocustome);
            //if (input.Cars != null)
            //{
            //    var oldCarItem = _carRepository.FindAll().Where(n => n.TransactionCode == input.TransactionCode);
            //    if (oldCarItem != null && oldCarItem.Any())
            //        foreach (var item in oldCarItem)
            //        {
            //             _carRepository.Remove(item);
            //        }

            //    foreach (var item in input.Cars)
            //    {
            //        item.InforCustomerId = input.OrgId;
            //        item.TransactionCode = input.TransactionCode;
            //        var CarDomain = Mapper.Map<CarDTO, Car>(item);
            //         _carRepository.Add(CarDomain);
            //    }
            //}
            return(input);
        }
Beispiel #10
0
        private ConditionValidateDTO ValidateSecondConditionWithPlateAndIdentity(CarDTO carReturn, InfoCustomerDTO inforReturn, CheckInforCollectionDTO collectionInfo, CollectionCarDetailDTO detailInsurance)
        {
            CollectionCar sheetCar = _collectionCarRepository.FindAll().OrderByDescending(x => x.CreatedDate)
                                     .FirstOrDefault(x => x.CollectionSheet.InfoCustomerId == inforReturn.Id);

            if (sheetCar == null)
            {
                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn, detailInsurance));
            }

            DateTime currentDate = DateTime.Now;

            if ((currentDate.Year - sheetCar.CollectionSheet.TransactionDate.Value.Year) <= 3)
            {
                return(new ConditionValidateDTO(StatusCondition.DENIED));
            }
            else
            {
                if (detailInsurance == null)
                {
                    return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn));
                }

                return(new ConditionValidateDTO(StatusCondition.ACCEPT_RE_NEW_BRIEF_INFOCUSTOMER_AND_CAR, inforReturn, carReturn, detailInsurance));
            }
        }
        private CollectionCarDetailDTO GetCollectionCarDetailMappingWithCustomer(string plate, InfoCustomerDTO inforReturn)
        {
            IQueryable <InfoCustomerWithInsuranceInfoDTO> insuranceInfos = GetInfoCustomerAndInsuranceInfoCollectWithPlate(plate);
            InfoCustomerWithInsuranceInfoDTO inforFound = insuranceInfos.FirstOrDefault(x => x.InfoCustomer.Id == inforReturn.Id);

            if (inforFound != null)
            {
                return(CheckInsuranceDateExpiredAndReturn(inforFound));
            }
            return(null);
        }
 private void SetStatusForCustomerInforReturn(CheckInforCollectionDTO collectionInfo, InfoCustomer inforCustomer, InfoCustomerDTO inforReturn)
 {
     if (inforCustomer.Id > 0)
     {
         inforReturn.IsGetDataFromPTI = false;
         inforReturn.IsGetDataFromIC  = true;
     }
     else
     {
         inforReturn.IsGetDataFromPTI = true;
         inforReturn.IsGetDataFromIC  = false;
     }
     if (string.IsNullOrEmpty(collectionInfo.IdentityNumber))
     {
         inforReturn.IdentityNumber = null;
     }
 }