public void SendPaySMS(DataContext _db, int card_id) { RentSMSInfo rentSMS = SendSMSPay(_db, card_id); RentSMSData rentSMSData = new RentSMSData(_db); CardDetailData _card = rentSMSData.returnCardDetailData(card_id); if (rentSMS.onPayMsg != null) { Task.Run(async() => { await Utils.Utils.sendMessage(_card.Card.Customer.Phone1, rentSMS.onPayMsg); }).Wait(); Task.Run(async() => { await Utils.Utils.sendMessage("598733767", "ijaris gadaxda " + _card.Card.AbonentNum); }).Wait(); Task.Run(async() => { await Utils.Utils.sendMessage("571711305", "ijaris gadaxda " + _card.Card.AbonentNum); }).Wait(); } }
public void saveRentFinisheDate(CardDetailData _card) { try { _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); SendOSD sendOSD = new SendOSD(); sendOSD.SendOSDCard(_db, _card); } catch { } }
public void RentSavePayment() { RentData rentData = new RentData(resultRent._db); var cards = rentData.returnCard(resultRent.pay_data); RentSmsInfo rentSmS = new RentSmsInfo(); List <Payment> payments = new List <Payment>(); List <PayType> _payTypes = rentData.returnPayTypes(); CardDetailData _cardAmount = rentData.returnCardDetailData(cards.Select(s => s.Id).FirstOrDefault()); foreach (Card _card in cards) { var paym = new Payment { CardId = _card.Id, UserId = resultRent.user_id, Tdate = DateTime.Now, FileAttach = "", Amount = 0, PayRent = resultRent.pay_data.RentAmount, LogCard = _card.Customer.Name + " " + _card.Customer.LastName + " ის ბარათზე - " + _card.CardNum, LogCardNum = _card.CardNum, LogPayType = _payTypes.FirstOrDefault(p => p.Id == resultRent.pay_data.PayType).Name, PayTypeId = resultRent.pay_data.PayType }; if (_cardAmount.Amount < 0) { if ((_cardAmount.Amount + resultRent.pay_data.RentAmount) > 0) { paym.PayRent = (_cardAmount.Amount + resultRent.pay_data.RentAmount); paym.Amount = (_cardAmount.Amount) * (-1); _cardAmount.Amount = (_cardAmount.Amount) * (-1); } else { paym.Amount = resultRent.pay_data.RentAmount; paym.PayRent = 0; } } payments.Add(paym); } rentData.SavePayments(payments.Select(s => s).FirstOrDefault(), rentData.SavePayTransaction(resultRent.pay_data, resultRent.fromPay)); if (_cardAmount.Amount >= 0) { SetFinishDate(payments.Select(s => s.CardId).FirstOrDefault()); } }
public void SendOSDCard(DataContext _db, CardDetailData _card) { var _params = _db.Params.ToList(); string[] address = _params.Where(c => c.Name == "CASAddress").Select(c => c.Value).First().Split(':'); CASSocket _socket = new CASSocket() { IP = address[0], Port = int.Parse(address[1]) }; _socket.Connect(); if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), new short[1] { 9 }, DateTime.Now.AddHours(-4), _card.Card.RentFinishDate.AddHours(-4), true)) { //throw new Exception(DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss" + "ვერ მოხერხდა ბარათის სტატუსის შეცვლა: " + Utils.Utils.GetEnumDescription(_card.Card.CardStatus) + " , " + _card.Card.AbonentNum)); } _socket.Disconnect(); }
public void SaveRentAccruals(CardDetailData _card) { try { var ren_amount = decimal.Parse(_db.Params.First(p => p.Name == "Rent").Value); int service_days = int.Parse(_db.Params.First(c => c.Name == "ServiceDays").Value); _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, RentAmount = Math.Round((decimal)ren_amount / service_days, 2), Tdate = DateTime.Now, Status = CardChargeStatus.PenDaily }); _card.Card.CardStatus = CardStatus.Rent; _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); } catch { } }
public RentSMSInfo SendSMSPay(DataContext _db, int card_id) { MessageTemplate msg = null; RentSMSInfo rentSmsInfo = new RentSMSInfo(); RentSMSData rentSMSData = new RentSMSData(_db); CardDetailData _card = rentSMSData.returnCardDetailData(card_id); if ((_card.Card.CardStatus == CardStatus.Rent) || _card.Card.CardStatus == CardStatus.Active) { msg = rentSMSData.OnPayRent(); if (msg != null) { rentSmsInfo.onPayMsg = String.Format(msg.Desc, _card.Card.AbonentNum, Math.Round(rentSMSData.PaymentAmount(card_id), 2), _card.Card.RentFinishDate.ToString("dd/MM/yyyy")); } rentSmsInfo.phone = _card.Card.Customer.Phone1; } if ((_card.Card.CardStatus == CardStatus.Closed && rentSMSData.returnPayment(card_id) <= _card.RentAmount)) { msg = rentSMSData.OnPayRentNotAmount(); if (msg != null) { rentSmsInfo.onPayMsg = String.Format(msg.Desc, _card.Card.AbonentNum, Math.Round(rentSMSData.PaymentAmount(card_id), 2), Math.Round(_card.RentAmount - rentSMSData.returnPayment(card_id), 2)); } rentSmsInfo.phone = _card.Card.Customer.Phone1; } if (_card.Card.CardStatus == CardStatus.Paused) { msg = rentSMSData.OnPayRentPaused(); if (msg != null) { rentSmsInfo.onPayMsg = String.Format(msg.Desc, _card.Card.AbonentNum, Math.Round(rentSMSData.returnPayment(card_id), 2), _card.Card.PauseDate.ToString("dd/MM/yyyy")); } rentSmsInfo.phone = _card.Card.Customer.Phone1; } rentSmsInfo.phone = _card.Card.Customer.Phone1; return(rentSmsInfo); }
public void MiniSMSDelete() { using (DataContext _db = new DataContext()) { try { Task.Run(async() => { await Utils.Utils.sendMessage("598733767", "MiniSMS დაწყება - " + DateTime.Now.ToString()); }).Wait(); var __cards = _db.Cards.Include("Customer").Include("Subscribtions.SubscriptionPackages.Package").Where(c => c.CardStatus != CardStatus.Canceled && (c.CardStatus == CardStatus.Closed)).ToList(); var _Card = __cards.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Price == 12)).Select(c => c).ToList(); __cards = __cards.Except(_Card).ToList(); string[] address = _db.Params.Where(p => p.Name == "CASAddress").Select(c => c.Value).First().Split(':'); int count = 0, error = 0; foreach (var item in __cards) { CardDetailData cardDetailData = new CardDetailData(); cardDetailData.CasIds = item.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Select(sp => (short)sp.Package.CasId); for (int i = 1; i <= 30; i++) { CASSocket _socket = new CASSocket() { IP = address[0], Port = int.Parse(address[1]) }; _socket.Connect(); if (!_socket.SendEntitlementRequest(Convert.ToInt32(item.CardNum), cardDetailData.CasIds.ToArray(), item.FinishDate.AddHours(-4).AddDays(i), item.FinishDate.AddHours(-4).AddDays(i), false)) { error++; } _socket.Disconnect(); } count++; } Task.Run(async() => { await Utils.Utils.sendMessage("598733767", "MiniSMS ერორი " + error + " - " + DateTime.Now.ToString()); }).Wait(); } catch (Exception ex) { var xx = ex; } } }
public DateTime?SetFinishDate(int card_id) { RentData rentData = new RentData(resultRent._db); CardDetailData _card = rentData.returnCardDetailData(card_id); if (_card != null) { decimal balance = Math.Round(_card.PaymentAmount - _card.ChargeAmount, 2); decimal amount = (decimal)_card.RentAmount; int day = 0; if (amount == 0) { return(null); } int service_days = rentData.serviceDay(); while (true) { int coeff = service_days; decimal dayly_amount = amount / coeff; dayly_amount -= (dayly_amount * (decimal)_card.Card.Discount / 100); if (balance < dayly_amount) { break; } balance -= dayly_amount; day++; } FinishDate finishDate = new FinishDate(); _card.Card.RentFinishDate = finishDate.GenerateFinishDate(_card.CahrgeTime).AddDays(day); rentData.saveRentFinisheDate(_card); return(_card.Card.FinishDate); } return(null); }
public void saveRentFinisheDate(CardDetailData _card) { try { decimal balance = Math.Round(_card.PaymentAmount - _card.ChargeAmount, 2); decimal amount = (decimal)_card.RentAmount; if ((_card.Amount >= 0 && _card.Card.CardStatus == CardStatus.Rent && balance >= amount) || (_card.Amount >= 0 && _card.Card.CardStatus == CardStatus.Closed && balance >= amount) || (_card.Amount >= 0 && _card.Card.CardStatus == CardStatus.Blocked && balance >= amount)) { _card.Card.CardStatus = CardStatus.Rent; _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); SendOSD sendOSD = new SendOSD(); sendOSD.SendOSDCard(_db, _card); } else { _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); } } catch { } }
public void SaveRentAccruals(DataContext _db, CardDetailData _card) { RentAccrualsData rentAccrualsData = new RentAccrualsData(_db); rentAccrualsData.SaveRentAccruals(_card); }
public void Execute(IJobExecutionContext context) { //context.Trigger.JobDataMap.GetString(""); using (DataContext _db = new DataContext()) { _db.Database.CommandTimeout = 6000; using (DbContextTransaction tran = _db.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //SELECT DATEDIFF(minute, GETDATE(), '2006-01-01 00:00:00.0000000'); //string sql = @"SELECT cr.id FROM book.Cards AS cr INNER JOIN book.Customers AS c ON c.id=cr.customer_id WHERE cr.status=0 AND DATEDIFF(day,Convert(varchar(10), getdate(), 126)+' 23:59:0.000',cr.finish_date)=2"; //string sql = @"SELECT cr.id FROM book.Cards AS cr INNER JOIN book.Customers AS c ON c.id=cr.customer_id where DATEDIFF(second, GETDATE(), cr.finish_date)<=60 AND DATEDIFF(second, GETDATE(), cr.finish_date)>=30"; //string sql = @"SELECT cr.id FROM book.Cards as cr WHERE cr.card_num = '38067026'"; string sql = @"SELECT cr.id FROM book.Cards AS cr INNER JOIN book.Customers AS c ON c.id=cr.customer_id where DATEDIFF(day, '" + DateTime.Now + "', cr.finish_date)=0"; //string sql = @"SELECT cr.id FROM book.Cards AS cr INNER JOIN book.Customers AS c ON c.id=cr.customer_id where abonent_num='9105560' or abonent_num='1086681'"; List <Param> Params = _db.Params.ToList(); string[] address = Params.Where(c => c.Name == "CASAddress").Select(c => c.Value).First().Split(':'); string username = Params.First(p => p.Name == "SMSPassword").Value; string password = Params.First(p => p.Name == "SMSUsername").Value; int osd_duration = int.Parse(Params.First(c => c.Name == "OSDDuration").Value); List <Card> cards; MessageTemplate message; // = _db.AutoMessageTemplates.Where(m => m.Name == "ReportDisabling").FirstOrDefault(); MessageTemplate message_geo; // = _db.AutoMessageTemplates.Where(m => m.Name == "ReportDisabling_GEO").FirstOrDefault(); int[] ids = _db.Database.SqlQuery <int>(sql).ToArray(); //original source //cards = _db.Cards.Include("Customer")//.Include("Receiver").Include("Tower") // .Where(c => c.CardStatus == CardStatus.Active && c.Customer.Type != CustomerType.Technic) // .Where(c => ids.Contains(c.Id)) // .Select(c => c).ToList(); cards = _db.Cards.Where(c => ids.Contains(c.Id)).Where(c => c.CardStatus == CardStatus.Active && c.Customer.Type != CustomerType.Technic).ToList(); foreach (Card card in cards) { message = _db.MessageTemplates.Where(m => m.Name == "OnShare8Active").FirstOrDefault(); message_geo = _db.MessageTemplates.Where(m => m.Name == "OnShare8Active_GEO").FirstOrDefault(); Subscribtion curr_sb = _db.Subscribtions.Where(s => s.CardId == card.Id && s.Status == true).First(); List <SubscriptionPackage> sbp = _db.SubscriptionPackages.Where(s => s.SubscriptionId == curr_sb.Id).ToList(); List <Package> curr_packs = new List <Package>(); foreach (var sbs in sbp) { List <Package> package = _db.Packages.Where(p => p.Id == sbs.PackageId).ToList(); //if (package.RentType != RentType.block) //{ // curr_packs.Add(package); //} if (package.Any(p => p.Id == 304085)) { CardDetailData _cardt = _db.Cards.Where(c => c.Id == card.Id).Select(c => new CardDetailData { PaymentAmount = c.Payments.Select(s => (decimal?)s.Amount).Sum() ?? 0, ChargeAmount = c.CardCharges.Select(s => (decimal?)s.Amount).Sum() ?? 0, Card = c, IsBudget = c.Customer.IsBudget, CustomerType = c.Customer.Type, SubscribAmount = c.Subscribtions.Where(s => s.Status).FirstOrDefault().Amount, CasIds = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Select(sp => (short)sp.Package.CasId), MinPrice = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Sum(p => p.Package.MinPrice), CardLogs = c.CardLogs.ToList() }).FirstOrDefault(); double balance = Math.Round((double)Utils.Utils.GetBalance(_cardt.PaymentAmount, _cardt.ChargeAmount), 2); string messageText = String.Format(message.Desc, card.AbonentNum); string messageText_Geo = message_geo.Desc;// String.Format(message_geo.MessageText, card.FinishDate.ToString("dd/MM/yyyy"), card.AbonentNum); CASSocket _socket = new CASSocket() { IP = address[0], Port = int.Parse(address[1]) }; _socket.Connect(); if (!_socket.SendOSDRequest(int.Parse(card.CardNum), messageText_Geo, DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc), osd_duration)) { //_db.MessageNotSendLogs.Add(new MessageNotSendLog //{ // CardId = card.Id, // MessageId = message_geo.Id, // MessageType = MessageType.OSD, //}); } _socket.Disconnect(); //_db.SaveChanges(); string phoneto = _db.Customers.Where(cs => cs.Id == card.CustomerId).Select(cu => cu.Phone1).FirstOrDefault(); Task.Run(async() => { await Utils.Utils.sendMessage(phoneto, messageText); }).Wait(); _db.MessageLoggings.Add(new MessageLogging() { card_id = card.Id, tdate = DateTime.Now, status = MessageLoggingStatus.OnShare8Active, message_id = message.Id }); _db.SaveChanges(); break; } } //message.MessageText = String.Format(message.MessageText, card.FinishDate.ToString("dd/MM/yyyy"), card.AbonentNum); //message_geo.MessageText = String.Format(message_geo.MessageText, card.FinishDate.ToString("dd/MM/yyyy"), card.AbonentNum); } Task.Run(async() => { await Utils.Utils.sendMessage("598733767", "დამთავრდა სმს გაგზავნა გათიშვის დღეს 8-₾ აბონენტებისთვის"); }).Wait(); Task.Run(async() => { await Utils.Utils.sendMessage("593668668", "დამთავრდა სმს გაგზავნა გათიშვის დღეს 8-₾ აბონენტებისთვის"); }).Wait(); Task.Run(async() => { await Utils.Utils.sendMessage("571711305", "დამთავრდა სმს გაგზავნა გათიშვის დღეს 8-₾ აბონენტებისთვის"); }).Wait(); } catch (Exception ex) { tran.Rollback(); } } } }
public void Execute(IJobExecutionContext context) { List <int> OneTicketMessed = new List <int>(); RandomMessed(OneTicketMessed); try { using (DataContext _db = new DataContext()) { var Invoce_Code = _db.InvoiceLoggings.Select(s => s.invoce_code).ToList(); if (Invoce_Code != null) // განმეორებადი კოდის გამორიცხვა { OneTicketMessed = OneTicketMessed.Except(Invoce_Code).ToList(); } string _Image = ImageConvert(); DateTime dateFrom = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0); //ViewBag.FilePath = _db.Params.Where(p => p.Name == "FTPHost").Select(p => p.Value).First() + "invoce/"; var _CustumerI = _db.Customers.Include("Cards").Include("CustomerSellAttachments").Where(c => c.Type == CustomerType.Juridical).ToList(); InvoicesList _invoce = new InvoicesList(); List <DisruptInvoice> Disrupt = new List <DisruptInvoice>(); //Task<CardInfo> _info; foreach (var item in _CustumerI) { decimal balanceSum = 0; bool send_invoce = false; foreach (var card_item in item.Cards) { _card = _db.Cards.Where(c => c.Id == card_item.Id).Include("Customer").Include("Subscribtions.SubscriptionPackages.Package").Select(c => new CardDetailData { PaymentAmount = c.Payments.Sum(p => (decimal?)p.Amount) ?? 0, ChargeAmount = c.CardCharges.Select(s => (decimal?)s.Amount).Sum() ?? 0, Card = c, CustomerType = c.Customer.Type, IsBudget = c.Customer.IsBudget, SubscribAmount = c.Subscribtions.Where(s => s.Status).FirstOrDefault().Amount, MinPrice = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Sum(p => p.Package.MinPrice), CasIds = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Select(sp => (short)sp.Package.CasId) }).FirstOrDefault(); decimal balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); if (/*_info.Balances.Select(s => s.CurrentBalance).LastOrDefault()*/ balance < 0) { DisruptInvoice _disrup_invoice = new DisruptInvoice(); _disrup_invoice.Debts = balance; _disrup_invoice.abonent_number = card_item.AbonentNum; _disrup_invoice.Invoices_Code = _card.Card.Customer.Code; _disrup_invoice.CompanyName = item.Name; Disrupt.Add(_disrup_invoice); balanceSum += balance; } } if (balanceSum < 0) { //var ID = item.Cards.Select(s => s.Id).FirstOrDefault(); //var pack = _db.Subscribtions.Include("SubscriptionPackages").Where(c => c.CardId == ID).Select(ss => ss).ToList(); ////var card_packages = pack.Where(c => c.CardId == ID).SelectMany(s => s.SubscriptionPackages).ToList(); JuridicalInvoicesList juridical_invoice = new JuridicalInvoicesList() { Name = item.Name, dateFrom = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0), dateTo = DateTime.Now,//, _attachment = item.CustomerSellAttachments.Select(s => s).ToList(), balance = Math.Abs(balanceSum), Count = item.Cards.Count(), Invoices_Code = _card.Card.Customer.Code, PackagesPrice = _card.SubscribAmount, Ramdom_Generator = OneTicketMessed[0], Image = _Image, Phone = item.Phone1 }; var SellAttachments = _db.SellAttachments.ToList(); var result = AutoInvoice(juridical_invoice); var _result = DisruptAutoInvoice(Disrupt); Disrupt.Clear(); bool send_sms = false; bool send_email = SendMail(item.Email, juridical_invoice.Name, _db.Params.Where(c => c.Name == "SystemEmail").Select(s => s.Value).FirstOrDefault(), _db.Params.Where(c => c.Name == "SystemEmailPassword").Select(s => s.Value).FirstOrDefault(), juridical_invoice.Invoices_Code); bool _send_email_Accounting = SendMail("*****@*****.**", juridical_invoice.Name, _db.Params.Where(c => c.Name == "SystemEmail").Select(s => s.Value).FirstOrDefault(), _db.Params.Where(c => c.Name == "SystemEmailPassword").Select(s => s.Value).FirstOrDefault(), juridical_invoice.Invoices_Code); bool _send_email_aprove = SendMail(_db.Params.Where(c => c.Name == "SystemEmail").Select(s => s.Value).FirstOrDefault(), juridical_invoice.Name, _db.Params.Where(c => c.Name == "SystemEmail").Select(s => s.Value).FirstOrDefault(), _db.Params.Where(c => c.Name == "SystemEmailPassword").Select(s => s.Value).FirstOrDefault(), juridical_invoice.Invoices_Code); bool _send_email_disrupt = Disrupt_SendMail("*****@*****.**", juridical_invoice.Name, _db.Params.Where(c => c.Name == "SystemEmail").Select(s => s.Value).FirstOrDefault(), _db.Params.Where(c => c.Name == "SystemEmailPassword").Select(s => s.Value).FirstOrDefault(), juridical_invoice.Invoices_Code); if (item.Email != null) { send_sms = SendSms("568304304"); send_sms = SendSms(item.Phone1); } var _invoice = new InvoceLogging { tdate = DateTime.Now, custumer_id = item.Id, name = item.Name, invoce_code = OneTicketMessed[0], send_email = send_email, send_sms = send_sms }; _db.InvoiceLoggings.Add(_invoice); _db.SaveChanges(); OneTicketMessed.Remove(OneTicketMessed[0]); Thread.Sleep(60000); } } } } catch (Exception ex) { Utils.Utils.ErrorLogging(ex, @"C:\DigitalTV\InvoiceLog\log.txt"); } }
public void Execute(IJobExecutionContext context) { using (DataContext _db = new DataContext()) { _db.Database.CommandTimeout = 6000; using (DbContextTransaction tran = _db.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { string sql = @"SELECT cr.card_id FROM [dbo].[PromoCahngePack] AS cr where DATEDIFF(day, '" + DateTime.Now + "', cr.tdate)=0"; List <Param> Params = _db.Params.ToList(); string[] address = Params.Where(c => c.Name == "CASAddress").Select(c => c.Value).First().Split(':'); string username = Params.First(p => p.Name == "SMSPassword").Value; string password = Params.First(p => p.Name == "SMSUsername").Value; int osd_duration = int.Parse(Params.First(c => c.Name == "OSDDuration").Value); List <Card> cards; string messageText = ""; MessageTemplate message = new MessageTemplate(); // = _db.AutoMessageTemplates.Where(m => m.Name == "ReportDisabling").FirstOrDefault(); MessageTemplate message_geo; // = _db.AutoMessageTemplates.Where(m => m.Name == "ReportDisabling_GEO").FirstOrDefault(); int[] ids = _db.Database.SqlQuery <int>(sql).ToArray(); cards = _db.Cards.Where(c => ids.Contains(c.Id)).Where(c => c.Customer.Type != CustomerType.Technic).ToList(); foreach (Card card in cards) { Subscribtion curr_sb = _db.Subscribtions.Where(s => s.CardId == card.Id && s.Status == true).First(); List <SubscriptionPackage> sbp = _db.SubscriptionPackages.Where(s => s.SubscriptionId == curr_sb.Id).ToList(); List <Package> curr_packs = new List <Package>(); foreach (var sbs in sbp) { List <Package> package = _db.Packages.Where(p => p.Id == sbs.PackageId).ToList(); if (package.Any(p => p.Id == 304086)) { if (card.CardStatus == CardStatus.Closed) { CardDetailData _cardt = _db.Cards.Where(c => c.Id == card.Id).Select(c => new CardDetailData { PaymentAmount = c.Payments.Select(s => (decimal?)s.Amount).Sum() ?? 0, ChargeAmount = c.CardCharges.Select(s => (decimal?)s.Amount).Sum() ?? 0, Card = c, IsBudget = c.Customer.IsBudget, CustomerType = c.Customer.Type, SubscribAmount = c.Subscribtions.Where(s => s.Status).FirstOrDefault().Amount, CasIds = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Select(sp => (short)sp.Package.CasId), MinPrice = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Sum(p => p.Package.MinPrice), CardLogs = c.CardLogs.ToList() }).FirstOrDefault(); double balance = Math.Round((double)Utils.Utils.GetBalance(_cardt.PaymentAmount, _cardt.ChargeAmount), 2); if (balance <= 0) { balance = balance - package.FirstOrDefault().MinPrice; } if (balance > 0 && balance < package.FirstOrDefault().MinPrice) { balance = package.FirstOrDefault().MinPrice - balance; } message = _db.MessageTemplates.Where(m => m.Name == "Promo_Change_Active8_false").FirstOrDefault(); messageText = String.Format(message.Desc, balance); string phoneto = _db.Customers.Where(cs => cs.Id == card.CustomerId).Select(cu => cu.Phone1).FirstOrDefault(); Task.Run(async() => { await Utils.Utils.sendMessage(phoneto, messageText); }).Wait(); _db.MessageLoggings.Add(new MessageLogging() { card_id = card.Id, tdate = DateTime.Now, status = MessageLoggingStatus.PromoCahngeActive8, message_id = message.Id }); _db.SaveChanges(); } if (card.CardStatus == CardStatus.Active) { message = _db.MessageTemplates.Where(m => m.Name == "Promo_Change_Active8").FirstOrDefault(); messageText = String.Format(message.Desc, card.FinishDate); string phonetos = _db.Customers.Where(cs => cs.Id == card.CustomerId).Select(cu => cu.Phone1).FirstOrDefault(); Task.Run(async() => { await Utils.Utils.sendMessage(phonetos, messageText); }).Wait(); _db.MessageLoggings.Add(new MessageLogging() { card_id = card.Id, tdate = DateTime.Now, status = MessageLoggingStatus.PromoCahngeClosed8, message_id = message.Id }); _db.SaveChanges(); SendOSDRequesSMS sendOSDReques = new SendOSDRequesSMS(); sendOSDReques.SendOSD(card.CardNum, String.Format(_db.MessageTemplates.Where(m => m.Name == "Promo_Change_Active8_Geo").FirstOrDefault().Desc, card.FinishDate.ToString("dd/MM/yyyy")), _db.Params.ToList()); //message_geo = _db.MessageTemplates.Where(m => m.Name == "OnShare8Active_GEO").FirstOrDefault(); } } } } Task.Run(async() => { await Utils.Utils.sendMessage("598733767", "დამთავრდა სმს გაგზავნა პრომოსთვის" + ""); }).Wait(); } catch { } } } }
public void RentFinishDat(CardDetailData _card) { RentAccrualsLogic accrualsLogic = new RentAccrualsLogic(); accrualsLogic.SetFinishDate(_db, _card.Card.Id); }
public void CardAccruals(CardDetailData _card) { RentAccrualsLogic accrualsLogic = new RentAccrualsLogic(); accrualsLogic.SaveRentAccruals(_db, _card); }