Exemplo n.º 1
0
        public ActionResult Search(string SerialNumber)
        {
            int rc;

            if (SerialNumber != null)
            {
                CashCard[] cashCards = CashCard.GetCashCards(new CashCardParameters {
                    SerialNumber = SerialNumber
                }, out rc);
                ViewBag.cashCards = cashCards;
            }
            return(View());
        }
Exemplo n.º 2
0
 public ActionResult RequestOTP(string MeterId, int?Amount, string SerialNUM)
 {
     if (Session["employee"] == null)
     {
         return(RedirectToAction("index", "Employees"));
     }
     else
     {
         int   rc;
         Topup topup = new Topup();
         if (SerialNUM != null)
         {
             CashCard[] cashCard = CashCard.GetCashCards(new CashCardParameters {
                 SerialNumber = SerialNUM
             }, out rc);
             topup = new Topup(MeterId, Amount, cashCard[0].SerialNumber);
         }
         return(View(topup));
     }
 }
        public ActionResult RequestOTP(string MeterId, int?Amount, string SerialNumber, int customerid)
        //this should reach the website button which request OTP

        {
            int      rc;
            Customer customer = new Customer(customerid);

            Meter[] meters = Meter.GetMeters(new MeterParameters {
                Meterid = MeterId
            }, out rc);                                                                         //user of meter
            if (meters.Length == 0)
            {
                return(Content(JsonConvert.SerializeObject(new { result = "invalid-meter" })));
            }

            CashCard[] cashCards = CashCard.GetCashCards(new CashCardParameters {
                SerialNumber = SerialNumber
            }, out rc);                                                                                                  //cash card information
            if (cashCards.Length == 0)
            {
                return(Content(JsonConvert.SerializeObject(new { result = "invalid-cashcard" })));
            }

            Customer customer1 = null;

            if (meters != null)
            {
                customer1 = new Customer(meters[0].UserId.Value); //user id of meter id entered
            }

            if (customer.Id == meters[0].UserId && customer.CardId == cashCards[0].Id)//for himself from his card
            {
                SMS sms = new SMS();
                sms.To_number = customer.Telephone;
                sms.Msg       = $"أهلا وسهلا بك أنت تقوم بشحن {Amount} الى عدادك الان";
                string status = sms.Send();

                if (status == "OK")
                {
                    Topup topup = new Topup(null, MeterId, Amount, cashCards[0].SerialNumber);

                    int result;
                    result = topup.SaveDataForAPP();
                    if (result == 1)
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "success", data = topup })));
                    }
                    else
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "insuffecient-balance", data = cashCards[0].Amount })));
                    }
                }
            }

            else if (customer.Id == meters[0].UserId && customer.CardId != cashCards[0].Id) //for himself from another card
            {
                Customer[] customer2 = Customer.GetCustomers(new CustomerParameters {
                    CardId = cashCards[0].Id
                }, out rc);
                SMS sms = new SMS();
                sms.To_number = customer2[0].Telephone;
                sms.Msg       = $" يحاول {customer.Name} شحن عداده باستخدام البطاقة الخاصة بك بقيمة {Amount}";
                string status = sms.Send();

                if (status == "OK")
                {
                    Topup topup = new Topup(null, MeterId, Amount, cashCards[0].SerialNumber);
                    int   result;
                    result = topup.SaveDataForAPP();
                    if (result == 1)
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "success", data = topup })));
                    }
                    else
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "insuffecient-balance", data = cashCards[0].Amount })));
                    }
                }
            }

            else if (customer.Id != meters[0].UserId && customer.CardId == cashCards[0].Id)//for another from his card
            {
                SMS sms = new SMS();
                sms.To_number = customer1.Telephone;
                sms.Msg       = $"يحاول {customer.Name} شحن عدادك بقيمة {Amount}";
                string status = sms.Send();


                SMS sms1 = new SMS();
                sms1.To_number = customer.Telephone;
                sms1.Msg       = $"يحاول {customer1.Name} شحن عداده باستخدام بطاقتك بقيمة {Amount}";
                string status1 = sms1.Send();

                if (status == "OK" && status1 == "OK")
                {
                    Topup topup = new Topup(null, MeterId, Amount, cashCards[0].SerialNumber);
                    int   result;
                    result = topup.SaveDataForAPP();
                    if (result == 1)
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "success", data = topup })));
                    }
                    else
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "insuffecient-balance", data = cashCards[0].Amount })));
                    }
                }
            }


            else if (customer.Id != meters[0].UserId && customer.CardId != cashCards[0].Id && customer1.CardId != cashCards[0].Id)//for another from another card
            {
                int        rrc;
                Customer[] customer2 = Customer.GetCustomers(new CustomerParameters {
                    CardId = cashCards[0].Id
                }, out rrc);

                SMS sms = new SMS();
                sms.To_number = customer2[0].Telephone;
                sms.Msg       = $"يحاول {customer1.Name} شحن عداده بقيمة {Amount} باستخدام بطاقتك";
                string status = sms.Send();


                SMS sms1 = new SMS();
                sms1.To_number = customer1.Telephone;
                sms1.Msg       = $"يحاول {customer.Name} شحن عدادك بقيمة {Amount} باستخدام بطاقة {customer2[0].Name}";
                string status1 = sms1.Send();

                if (status == "OK" && status1 == "OK")
                {
                    Topup topup = new Topup(null, MeterId, Amount, cashCards[0].SerialNumber);
                    int   result;
                    result = topup.SaveDataForAPP();
                    if (result == 1)
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "success", data = topup })));
                    }
                    else
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "insuffecient-balance", data = cashCards[0].Amount })));
                    }
                }
            }
            else if (customer.Id != meters[0].UserId && customer.CardId != cashCards[0].Id && customer1.CardId == cashCards[0].Id)//for another from the another card
            {
                SMS sms = new SMS();
                sms.To_number = customer1.Telephone;
                sms.Msg       = $"يحاول {customer.Name} شحن عدادك باستخدام بطاقتك";
                string status = sms.Send();


                SMS sms1 = new SMS();
                sms1.To_number = customer.Telephone;
                sms1.Msg       = $"أهلا وسهلا بك أنت تحاول الان شحن عداد {customer1.Name} باستخدام بطاقته {customer1.CardId}";
                string status1 = sms1.Send();



                if (status == "OK" && status1 == "OK")
                {
                    Topup topup = new Topup(null, MeterId, Amount, cashCards[0].SerialNumber);
                    int   result;
                    result = topup.SaveDataForAPP();
                    if (result == 1)
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "success", data = topup })));
                    }
                    else
                    {
                        return(Content(JsonConvert.SerializeObject(new { result = "insuffecient-balance", data = cashCards[0].Amount })));
                    }
                }
            }

            return(Content(JsonConvert.SerializeObject(new { result = "error" })));
        }
        public ActionResult Save(int?id, string meterId, decimal?amount, string SerialNUM)
        {
            int rc;

            Meter[] meter = Meter.GetMeters(new MeterParameters {
                Meterid = meterId
            }, out rc);                                                                        //user of meter
            Customer customer = (Session["customer"] as Customer);

            CashCard [] cashCards = CashCard.GetCashCards(new CashCardParameters {
                SerialNumber = SerialNUM
            }, out rc);
            CashCard cashCard = new CashCard(cashCards[0].Id);

            Customer customer1 = new Customer(meter[0].UserId.Value);

            if (Session["customer"] != null)
            {
                if (customer.Id == meter[0].UserId && customer.CardId == cashCard.Id)//for himself from his card
                {
                    SMS sms = new SMS();
                    sms.To_number = customer.Telephone;
                    sms.Msg       = $"أهلا وسهلا بك أنت تقوم بشحن {amount} الى عدادك الان";
                    string status = sms.Send();
                    sms.SaveData();
                    if (status == "OK")
                    {
                        Topup topup = new Topup(id, meterId, amount, SerialNUM);
                        int   result;
                        result         = topup.SaveData();
                        ViewBag.result = result;
                    }
                    else
                    {
                        return(RedirectToAction("Save", "Tpoups"));
                    }
                }

                else if (customer.Id == meter[0].UserId && customer.CardId != cashCard.Id) //for himself from another card
                {
                    Customer[] customer2 = Customer.GetCustomers(new CustomerParameters {
                        CardId = cashCard.Id
                    }, out rc);
                    SMS sms = new SMS();
                    sms.To_number = customer2[0].Telephone;
                    sms.Msg       = $" يحاول {customer.Name} شحن عداده باستخدام البطاقة الخاصة بك بقيمة {amount}";
                    string status = sms.Send();
                    sms.SaveData();
                    if (status == "OK")
                    {
                        Topup topup = new Topup(id, meterId, amount, SerialNUM);
                        int   result;
                        result         = topup.SaveData();
                        ViewBag.result = result;
                    }
                    else
                    {
                        return(RedirectToAction("Save", "Topups"));
                    }
                }

                else if (customer.Id != meter[0].UserId && customer.CardId == cashCard.Id)//for another from his card
                {
                    SMS sms = new SMS();
                    sms.To_number = customer1.Telephone;
                    sms.Msg       = $"يحاول {customer.Name} شحن عدادك بقيمة {amount}";
                    string status = sms.Send();
                    sms.SaveData();

                    SMS sms1 = new SMS();
                    sms1.To_number = customer.Telephone;
                    sms1.Msg       = $"يحاول {customer1.Name} شحن عداده باستخدام بطاقتك بقيمة {amount}";
                    string status1 = sms1.Send();
                    sms1.SaveData();

                    if (status == "OK" && status1 == "OK")
                    {
                        Topup topup = new Topup(id, meterId, amount, SerialNUM);
                        int   result;
                        result         = topup.SaveData();
                        ViewBag.result = result;
                    }
                    else
                    {
                        return(RedirectToAction("Save", "Topups"));
                    }
                }


                else if (customer.Id != meter[0].UserId && customer.CardId != cashCard.Id && customer1.CardId != cashCard.Id)//for another from another card
                {
                    int        rrc;
                    Customer[] customer2 = Customer.GetCustomers(new CustomerParameters {
                        CardId = cashCard.Id
                    }, out rrc);

                    SMS sms = new SMS();
                    sms.To_number = customer2[0].Telephone;
                    sms.Msg       = $"يحاول {customer1.Name} شحن عداده بقيمة {amount} باستخدام بطاقتك";
                    string status = sms.Send();
                    sms.SaveData();

                    SMS sms1 = new SMS();
                    sms1.To_number = customer1.Telephone;
                    sms1.Msg       = $"يحاول {customer.Name} شحن عدادك بقيمة {amount} باستخدام بطاقة {customer2[0].Name}";
                    string status1 = sms1.Send();
                    sms1.SaveData();
                    if (status == "OK" && status1 == "OK")
                    {
                        Topup topup = new Topup(id, meterId, amount, SerialNUM);
                        int   result;
                        result         = topup.SaveData();
                        ViewBag.result = result;
                    }
                    else
                    {
                        return(RedirectToAction("Save", "Topups"));
                    }
                }
                else if (customer.Id != meter[0].UserId && customer.CardId != cashCard.Id && customer1.CardId == cashCard.Id)//for another from the another card
                {
                    SMS sms = new SMS();
                    sms.To_number = customer1.Telephone;
                    sms.Msg       = $"يحاول {customer.Name} شحن عدادك باستخدام بطاقتك";
                    string status = sms.Send();
                    sms.SaveData();

                    SMS sms1 = new SMS();
                    sms1.To_number = customer.Telephone;
                    sms1.Msg       = $"أهلا وسهلا بك أنت تحاول الان شحن عداد {customer1.Name} باستخدام بطاقته {customer1.CardId}";
                    string status1 = sms1.Send();
                    sms1.SaveData();

                    if (status == "OK" && status1 == "OK")
                    {
                        Topup topup = new Topup(id, meterId, amount, SerialNUM);
                        int   result;
                        result         = topup.SaveData();
                        ViewBag.result = result;
                    }
                    else
                    {
                        return(RedirectToAction("Save", "Topups"));
                    }
                }
                return(View());
            }
            else
            {
                return(RedirectToAction("Save", "Topups"));
            }
        }