/// <summary>
        /// Saves the payment.
        /// </summary>
        /// <param name="providerPayment">The provider payment.</param>
        /// <returns></returns>
        public async Task <int> SavePayment(EntityProviderPayment providerPayment)
        {
            providerPayment.Id = UtilsService.GenerateId(providerPayment.Id);

            return(await Util.TryAsync(() => GetConnection().InsertOrReplaceAsync(providerPayment),
                                       failureMessage : "DataContext failed to load Towns"));
        }
        /// <summary>
        /// To the entity.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        internal static EntityProviderPayment ToEntity(this ModelProviderPayment model)
        {
            var entity = new EntityProviderPayment();

            entity.Id            = model.Id;
            entity.ProductId     = model.ProductId;
            entity.ProviderId    = model.ProviderId;
            entity.AmountPaid    = model.AmountPaid;
            entity.DatePaid      = model.DatePaid;
            entity.ReceiptNumber = model.ReceiptNumber;

            return(entity);
        }
        /// <summary>
        /// To the model.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        internal static ModelProviderPayment ToModel(this EntityProviderPayment entity)
        {
            var model = new ModelProviderPayment();

            model.Id            = entity.Id;
            model.ProductId     = entity.ProductId;
            model.ProviderId    = entity.ProviderId;
            model.AmountPaid    = entity.AmountPaid;
            model.DatePaid      = entity.DatePaid;
            model.ReceiptNumber = entity.ReceiptNumber;

            return(model);
        }