public string UpdateInformation(UpdateRechargeInfoDto updateRechargeInfoDto)
 {
     return(_rechargeRepository.UpdateInformation(updateRechargeInfoDto));
 }
Пример #2
0
        public string UpdateInformation(UpdateRechargeInfoDto updateRechargeInfoDto)
        {
            try
            {
                var meterUser = Db_MeterUser.Where(x => x.MeterNumber == updateRechargeInfoDto.MeterNumber).FirstOrDefault();

                if (meterUser == null)
                {
                    return("invalid meterNumber");
                }

                var meterReadingInfo = Db_MeterReading.Where(x => x.MeterNumber == updateRechargeInfoDto.MeterNumber).FirstOrDefault();
                if (meterReadingInfo == null)
                {
                    MeterReading meterReading = new MeterReading();
                    meterReading.MeterNumber = updateRechargeInfoDto.MeterNumber;
                    meterReading.ReadingVolt = 0;
                    meterReading.ReadingWatt = 0;
                    meterReading.Date        = DateTime.Now;
                    meterReading.IsActive    = true;
                    Db_MeterReading.Add(meterReading);
                }

                var rechargeInfo = DbSet.Where(x => x.UserId == meterUser.UserId).FirstOrDefault();
                if (rechargeInfo == null)
                {
                    Recharge newRecharge = new Recharge();
                    newRecharge.Amount    = updateRechargeInfoDto.Amount;
                    newRecharge.IsActive  = true;
                    newRecharge.Status    = "done";
                    newRecharge.UserId    = meterUser.UserId;
                    newRecharge.Date      = DateTime.Now;
                    newRecharge.StartDate = DateTime.Now;

                    Add(newRecharge);
                }
                else
                {
                    if (rechargeInfo.Amount == 0)
                    {
                        rechargeInfo.StartDate = DateTime.Now;
                    }

                    rechargeInfo.Amount = updateRechargeInfoDto.Amount;

                    Update(rechargeInfo);
                }

                var result = SaveChanges();
                if (result > 0)
                {
                    if (meterReadingInfo == null)
                    {
                        meterReadingInfo = Db_MeterReading.Where(x => x.MeterNumber == updateRechargeInfoDto.MeterNumber).FirstOrDefault();
                    }

                    meterReadingInfo.ReadingVolt = updateRechargeInfoDto.ReadingVolt;
                    meterReadingInfo.ReadingWatt = updateRechargeInfoDto.ReadingWatt;
                    meterReadingInfo.Date        = DateTime.Now;
                    Db_MeterReading.Update(meterReadingInfo);
                    return(SaveChanges() == 1 ? "*1#" : "*0#");
                }
            }catch (Exception ex)
            {
                return($"error {ex.Message}");
            }
            return("*0#");
        }