private async Task <string> GetText(string method, string fileKey)
        {
            string str = null;

            using (var conn = new AuthenticHubConnection1(_cfg))
            {
                conn.Error += ex => _log.Add(ex);
                try
                {
                    var hub = await conn.ConnectToHub(VersionKeeperHub.Name);

                    //str     = await hub.Invoke<string>(method, fileKey);
                    str = await hub.InvokeUntilOK <string>(conn, method, fileKey);
                }
                catch (Exception ex) { _log.Add(ex); }
            }
            if (str.IsBlank())
            {
                //throw Fault.BadArg(nameof(fileKey), fileKey);
                //_client2.SendException("GetText by FileKey", Fault.BadArg(nameof(fileKey), fileKey));
                await Loggly.Post(Fault.BadArg(nameof(fileKey), fileKey), "GetText by FileKey");
            }

            return(str);
        }
Example #2
0
        public override List<BillPenalty> ComputePenalties(LeaseDTO lse, DateTime date, decimal? previousBalance)
        {
            switch (lse.Rent.PenaltyRule)
            {
                case RentPenalty.DailySurcharge:
                    return new RentDailySurcharger()
                        .GetPenalties(lse, date, previousBalance);

                case RentPenalty.DailySurcharge_NoRoundOff:
                    return new RentDailySurchargerNoRoundOff()
                        .GetPenalties(lse, date, previousBalance);

                case RentPenalty.MonthlySurcharge:
                    return new RentMonthlySurcharger()
                        .GetPenalties(lse, date, previousBalance);

                case RentPenalty.ZeroSurcharge:
                    return new RentZeroSurcharger()
                        .GetPenalties(lse, date, previousBalance);

                case RentPenalty.ZeroBackrent:
                    return new RentZeroBackrent()
                        .GetPenalties(lse, date, previousBalance);

                default:
                    throw Fault.BadArg(nameof(lse.Rent.PenaltyRule), lse.Rent.PenaltyRule);
            }
        }
Example #3
0
        public override List <BillPenalty> ComputePenalties(LeaseDTO lse, DateTime date, decimal?previousBalance)
        {
            switch (lse.Rights.PenaltyRule)
            {
            case RightsPenalty.DailyAfter90Days:
                return(new RightsDailyAfter90Surcharger()
                       .GetPenalties(lse, date, previousBalance));

            default:
                throw Fault.BadArg(nameof(lse.Rights.PenaltyRule), lse.Rights.PenaltyRule);
            }
        }
Example #4
0
        private static DateTime AsDate(string fileName)
        {
            var fName   = Path.GetFileNameWithoutExtension(fileName);
            var dateStr = fName.Before("_");

            if (DateTime.TryParse(dateStr, out DateTime date))
            {
                return(date);
            }
            else
            {
                throw Fault.BadArg("date prefix", dateStr);
            }
        }
Example #5
0
        public IBillRowComposer GetBillComposer(BillCode billCode)
        {
            switch (billCode)
            {
            case BillCode.Rent: return(_rentComposr);

            case BillCode.Rights: return(_rightsComposr);

            case BillCode.Electric: return(_electricComposr);

            case BillCode.Water: return(_waterComposr);

            default:
                throw Fault.BadArg("BillCode", billCode);
            }
        }
Example #6
0
 private static SoaRowDTO GetSoaRowDTO(DateTime transactionDate,
                                       string subject, string description, decimal amount,
                                       string transactionRef, string txnType, decimal multiplier)
 {
     if (amount <= 0)
     {
         throw Fault.BadArg($"{txnType} Amount", amount);
     }
     return(new SoaRowDTO
     {
         DateOffset = transactionDate.SoaRowOffset(),
         Subject = subject,
         Description = description,
         Amount = amount * multiplier,
         TransactionRef = transactionRef
     });
 }
Example #7
0
        public override decimal ComputeClosingBalance(LeaseDTO lse, BillState billState, DateTime date)
        {
            switch (lse.Rent.PenaltyRule)
            {
                case RentPenalty.DailySurcharge:
                case RentPenalty.DailySurcharge_NoRoundOff:
                case RentPenalty.MonthlySurcharge:
                case RentPenalty.ZeroSurcharge:
                    return base.ComputeClosingBalance(lse, billState, date);

                case RentPenalty.ZeroBackrent:
                    return 0.0M;

                default:
                    throw Fault.BadArg(nameof(lse.Rent.PenaltyRule), lse.Rent.PenaltyRule);
            }
        }
Example #8
0
        public async Task <List <string> > GetRecords(string fileKey, long startId)
        {
            List <string> list   = null;
            var           method = nameof(IVersionKeeperServer.GetRecords);

            using (var conn = new AuthenticHubConnection1(_cfg))
            {
                conn.Error += ex => _log.Add(ex);
                try
                {
                    var hub = await conn.ConnectToHub(VersionKeeperHub.Name);

                    list = await hub.Invoke <List <string> >(method, fileKey, startId);
                }
                catch (Exception ex) { _log.Add(ex); }
            }
            if (list == null)
            {
                throw Fault.BadArg(nameof(fileKey), fileKey);
            }

            return(list);
        }
        private async Task <long> GetLong(string method, string fileKey)
        {
            long num = -1;

            using (var conn = new AuthenticHubConnection1(_cfg))
            {
                conn.Error += ex => _log.Add(ex);
                try
                {
                    var hub = await conn.ConnectToHub(VersionKeeperHub.Name);

                    num = await hub.Invoke <long>(method, fileKey);
                }
                catch (Exception ex) { _log.Add(ex); }
            }
            if (num < 0)
            {
                //throw Fault.BadArg(nameof(fileKey), fileKey);
                //_client2.SendException("GetLong by FileKey", Fault.BadArg(nameof(fileKey), fileKey));
                await Loggly.Post(Fault.BadArg(nameof(fileKey), fileKey), "GetLong by FileKey");
            }

            return(num);
        }