Ejemplo n.º 1
0
        public static EServicesSettingsModel ToModel(this EservicesSettings entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var model = new EServicesSettingsModel
            {
                ServiceProviderName = entity.ServiceProviderName,
                ServiceProviderBank = entity.ServiceProviderBank,
                ServiceProviderBic  = entity.ServiceProviderBic,
                ServiceProviderIban = entity.ServiceProviderIban,
                Currency            = entity.Currency,
                SeizedPropertyCertificateRequestExpirationDays = entity.SeizedPropertyCertificateRequestExpirationDays,
                SeizedPropertyCertificateFee              = entity.SeizedPropertyCertificateFee,
                SeizedPropertyCertificateReason           = entity.SeizedPropertyCertificateReason,
                SeizedPropertyReportRequestExpirationDays = entity.SeizedPropertyReportRequestExpirationDays,
                SeizedPropertyByOwnerReportFee            = entity.SeizedPropertyByOwnerReportFee,
                SeizedPropertyReportReason           = entity.SeizedPropertyReportReason,
                AdministrativeServiceNotificationUrl = entity.AdministrativeServiceNotificationUrl,
            };

            return(model);
        }
Ejemplo n.º 2
0
        public async Task <EServicesSettingsModel> LoadSettingsAsync()
        {
            EServicesSettingsModel entity = await _context.EservicesSettings
                                            .Select(x => x.ToModel())
                                            .FirstOrDefaultAsync();

            return(entity);
        }
        public async Task <EServicesSettingsModel> GetEServiceSettingsAsync()
        {
            EServicesSettingsModel settings = await _context.EservicesSettings
                                              .Select(x => x.ToModel())
                                              .FirstOrDefaultAsync();

            return(settings);
        }
Ejemplo n.º 4
0
        public async Task ChangeSettingsAsync(EServicesSettingsModel model)
        {
            EservicesSettings entity = await _context.EservicesSettings
                                       .FirstOrDefaultAsync();

            if (entity == null)
            {
                throw new ArgumentNullException(nameof(EservicesSettings), $"EservicesSettings not found for update!");
            }

            entity.Update(model);

            // TODO: updatedAt, updatedBy

            _context.EservicesSettings.Update(entity);
            await _context.SaveChangesAsync();
        }
Ejemplo n.º 5
0
        public static void Update(this EservicesSettings entity, EServicesSettingsModel model)
        {
            if (entity == null || model == null)
            {
                return;
            }

            entity.ServiceProviderName = model.ServiceProviderName;
            entity.ServiceProviderBank = model.ServiceProviderBank;
            entity.ServiceProviderBic  = model.ServiceProviderBic;
            entity.ServiceProviderIban = model.ServiceProviderIban;
            entity.Currency            = model.Currency;
            entity.SeizedPropertyCertificateRequestExpirationDays = model.SeizedPropertyCertificateRequestExpirationDays;
            entity.SeizedPropertyCertificateFee              = model.SeizedPropertyCertificateFee;
            entity.SeizedPropertyCertificateReason           = model.SeizedPropertyCertificateReason;
            entity.SeizedPropertyReportRequestExpirationDays = model.SeizedPropertyReportRequestExpirationDays;
            entity.SeizedPropertyByOwnerReportFee            = model.SeizedPropertyByOwnerReportFee;
            entity.SeizedPropertyReportReason           = model.SeizedPropertyReportReason;
            entity.AdministrativeServiceNotificationUrl = model.AdministrativeServiceNotificationUrl;

            return;
        }
Ejemplo n.º 6
0
        public async Task <EServicePaymentRequestCreateModel> GeneratePaymentRequestAsync(Shared.Enums.EServiceType serviceType, int requestId)
        {
            // Взима данни на заявителя.
            ApplicantData applicantData = await GetApplicantDataAsync(serviceType, requestId);

            // Взеима данните за доставчик на ЕАУ, в случая Министерство на правосъдието.
            EServicesSettingsModel settings = await _eServiceSettingsService.GetEServiceSettingsAsync();

            PaymentRequestModel paymentRequest = CreatePaymentRequest(serviceType, settings, applicantData);

            paymentRequest = await SavePaymentRequestAsync(paymentRequest);

            EServicePaymentRequestCreateModel servicePaymentRequest = new EServicePaymentRequestCreateModel();

            servicePaymentRequest.EserviceTypeCode = serviceType.ToString();
            if (serviceType == Shared.Enums.EServiceType.SEIZEDPROPERTYCERTIFICATE)
            {
                servicePaymentRequest.SeizedPropertyCertificateRequestId = requestId;
            }
            else if (serviceType == Shared.Enums.EServiceType.SEIZEDPROPERTYBYOWNERREPORT)
            {
                servicePaymentRequest.SeizedPropertyReportRequestId = requestId;
            }
            servicePaymentRequest.PaymentRequestId = paymentRequest.AisPaymentId;
            servicePaymentRequest.StatusCode       = Shared.Enums.PaymentRequestStatus.NEW.ToString();

            EservicePaymentRequest entity = servicePaymentRequest.ToEntity();

            await _context.EservicePaymentRequest.AddAsync(entity);

            await _context.SaveChangesAsync();

            await AddEServicePaymentRequestStatusHistory(entity.Id, entity.StatusCode, entity.CreatedAt, null, null);

            servicePaymentRequest.Id = entity.Id;
            return(servicePaymentRequest);
        }
Ejemplo n.º 7
0
        private PaymentRequestModel CreatePaymentRequest(Shared.Enums.EServiceType serviceType, EServicesSettingsModel settings, ApplicantData applicantData)
        {
            int     expirationDays = 0;
            decimal fee            = 0m;
            string  reason         = "";

            if (serviceType == Shared.Enums.EServiceType.SEIZEDPROPERTYCERTIFICATE)
            {
                expirationDays = settings.SeizedPropertyCertificateRequestExpirationDays.HasValue ? settings.SeizedPropertyCertificateRequestExpirationDays.Value : 0;
                fee            = settings.SeizedPropertyCertificateFee.HasValue ? settings.SeizedPropertyCertificateFee.Value : 0m;
                reason         = settings.SeizedPropertyCertificateReason;
            }
            else if (serviceType == Shared.Enums.EServiceType.SEIZEDPROPERTYBYOWNERREPORT)
            {
                expirationDays = settings.SeizedPropertyReportRequestExpirationDays.HasValue ? settings.SeizedPropertyReportRequestExpirationDays.Value : 0;
                fee            = settings.SeizedPropertyByOwnerReportFee.HasValue ? settings.SeizedPropertyByOwnerReportFee.Value : 0m;
                reason         = settings.SeizedPropertyReportReason;
            }

            PaymentRequestModel request = new PaymentRequestModel();

            request.ServiceProviderName                  = settings.ServiceProviderName;
            request.ServiceProviderBank                  = settings.ServiceProviderBank;
            request.ServiceProviderBic                   = settings.ServiceProviderBic;
            request.ServiceProviderIban                  = settings.ServiceProviderIban;
            request.Currency                             = settings.Currency;
            request.PaymentTypeCode                      = "1"; //Код на плащане. Да се разбере какъв може да бъде. Примерно "1"
            request.PaymentAmount                        = fee;
            request.PaymentReason                        = reason;
            request.ApplicantUinTypeId                   = (int)applicantData.applicantIdentifierType;
            request.ApplicantUin                         = applicantData.applicantIdentifier;
            request.ApplicantName                        = applicantData.applicantName;
            request.PaymentReferenceType                 = "1"; // Тип на документ (референтен документ за плащане). Да се разбере какъв може да бъде.
            request.PaymentReferenceNumber               = Guid.NewGuid().ToString();
            request.PaymentReferenceDate                 = DateTime.Now;
            request.ExpirationDate                       = DateTime.Now.AddDays(expirationDays);
            request.AdditionalInformation                = null;
            request.AdministrativeServiceUri             = null;
            request.AdministrativeServiceSupplierUri     = _settings.AdministrativeServiceSupplierUri;
            request.AdministrativeServiceNotificationUrl = string.IsNullOrWhiteSpace(settings.AdministrativeServiceNotificationUrl)
                ? _settings.AdministrativeServiceNotificationUrl
                : settings.AdministrativeServiceNotificationUrl;

            return(request);
        }