public ActionResult UpdateBaseQuota(string state)
        {
            using (var db = new EchoContext())
            {
                IEnumerable <Quota> quotas = db.Quotas.Where(x => x.Quota_Type_Cd.Equals("B"));
                string user_no             = Session["User_No"].ToString();
                foreach (var item in quotas)
                {
                    string fv = Request.Form["Quota_Freq_Val_" + item.Quota_Cd];
                    string dv = Request.Form["Quota_Dur_Val_" + item.Quota_Cd];

                    try
                    {
                        item.Quota_Freq_Val  = Convert.ToByte(fv);
                        item.Quota_Dur_Val   = Convert.ToByte(dv);
                        item.Updated_By      = user_no;
                        item.Updated_Dttm    = DateTime.Now;
                        db.Entry(item).State = EntityState.Modified;
                    }
                    catch
                    {
                        return(View(quotas));
                    }
                }
                db.SaveChanges();
                FreebieEvent.UserUpdateEvent(Permission.base_quota_page_id, "A04");
                return(RedirectToAction("BaseQuota"));
            }
        }
        //private static EchoContext db = new EchoContext();

        public static bool is_service_disabled()
        {
            using (var val_db = new EchoContext())
            {
                bool result           = false;
                AdminConfiguration ac = val_db.AdminConfigurations.SingleOrDefault();
                if (ac == null)
                {
                    ac = new AdminConfiguration();
                }

                DateTime utc_now = DateTime.UtcNow;
                //TimeZoneInfo bkk = TimeZoneInfo.FindSystemTimeZoneById("S.E. Asia Standard Time");
                DateTime now            = utc_now.AddHours(7);
                TimeSpan disabled_start = (TimeSpan)ac.Regist_Disable_StartTime;
                TimeSpan disabled_end   = (TimeSpan)ac.Regist_Disable_EndTime;
                if (disabled_end < disabled_start)
                {
                    disabled_end = disabled_end.Add(new TimeSpan(24, 0, 0));
                }
                TimeSpan disabled_span = disabled_end - disabled_start;
                DateTime start_at      = new DateTime(now.Year, now.Month, now.Day, disabled_start.Hours, disabled_start.Minutes, disabled_start.Seconds);
                DateTime end_at        = start_at.Add(disabled_span);

                if (start_at <= now && now <= end_at)
                {
                    result = true;
                }

                return(result);
            }
        }
        public ActionResult UpdateActivationLimit()
        {
            using (var db = new EchoContext())
            {
                ActivationLimit al = new ActivationLimit();

                var date = DateTime.Now.Date;

                AccountActivation aa = db.AccountActivations.Where(x => x.Date.Equals(date)).SingleOrDefault();

                if (aa == null)
                {
                    aa = new AccountActivation();
                }

                AdminConfiguration ac = db.AdminConfigurations.SingleOrDefault();

                if (ac == null)
                {
                    ac = new AdminConfiguration();
                }

                al.no_activation             = aa.No_Activation;
                al.no_activation_pending     = aa.No_Activation_Pending;
                al.no_activation_acc         = aa.No_Activation_Acc;
                al.no_activation_limit_total = ac.No_Activation_Limit_Total;
                al.no_activation_limit_daily = ac.No_Activation_Limit_Daily;


                return(View(al));
            }
        }
        public ActionResult FreeTrialQuota()
        {
            using (var db = new EchoContext())
            {
                TrialQuota tq = new TrialQuota();

                var          today       = DateTime.Now.Date;
                AccountTrial today_acctt = db.AccountTrials.SingleOrDefault(x => x.Date.Equals(today));


                if (today_acctt == null)
                {
                    today_acctt = new AccountTrial();
                }

                AdminConfiguration ac = db.AdminConfigurations.SingleOrDefault();

                if (ac == null)
                {
                    ac = new AdminConfiguration();
                }

                tq.no_trial_used     = today_acctt.No_Trial_Used;
                tq.no_trial_acc      = today_acctt.No_Trial_Used_Acc;
                tq.trial_limit_total = ac.Trial_Limit_Total;
                tq.trial_dur_val     = ac.Trial_Dur_Val;
                tq.trial_enable_flag = ac.Trial_Enable_Flag;

                return(View(tq));
            }
        }
Exemple #5
0
        public static void AccountCreateEvent(Account new_account, string mobile_no, byte?page_id)
        {
            using (var db = new EchoContext())
            {
                string event_action = "A03";
                string account_no   = null;
                string user_no      = null;
                if (HttpContext.Current.Session["Account_No"] != null)
                {
                    account_no = HttpContext.Current.Session["Account_No"].ToString();
                }
                if (HttpContext.Current.Session["User_No"] != null)
                {
                    user_no = HttpContext.Current.Session["User_No"].ToString();
                }

                EventLog log = new EventLog();
                log.Action_Cd             = event_action;
                log.Identification_Number = new_account.Identification_Number;
                log.Mobile_Number         = mobile_no;
                log.Account_Status_Cd     = new_account.Status_Cd;
                log.Account_No            = new_account.Account_No;
                log.User_No = user_no;
                if (page_id != null)
                {
                    log.Page_Id = page_id;
                }
                db.EventLogs.Add(log);
                db.SaveChanges();
            }
        }
        public static string[] SP_Insert_Interact_Profile(int account_id)
        {
            //return new string[2] { "0", "-"};
            var    db       = new EchoContext();
            string conn_str = db.Database.Connection.ConnectionString;

            using (SqlConnection conn = new SqlConnection(conn_str))
            {
                conn.Open();
                using (var cmd = conn.CreateCommand())
                {
                    string storeProceduce = @"[echo].[dbo].[SP_Insert_Interact_Profile]";
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.CommandText = storeProceduce;
                    cmd.Parameters.Add(new SqlParameter("Account_ID", account_id));

                    var      r            = cmd.ExecuteReader();
                    string[] returnResult = new string[2];
                    while (r.Read())
                    {
                        returnResult[0] = r.GetString(0);
                        returnResult[1] = r.GetString(1);
                    }
                    return(returnResult);
                }
            }
        }
Exemple #7
0
        public void TestBuildContextEncapsulationRoundTrip(string file)
        {
            var directMessage = MimeMessage.Load(file);
            var context       = directMessage.DirectContext();

            //
            // Metadata
            //
            Assert.Equal("1.0", context.Metadata.Version);
            Assert.Equal("<*****@*****.**>", context.Metadata.Id);
            Assert.Equal("hl7v2", context.Metadata.Encapsulation.Type);

            var encapsulations = Enumerable.ToList(directMessage.SelectEncapulations());

            Assert.Equal(1, encapsulations.Count());
            Assert.Equal(@"MSH |^ ~\&| SENDING_APPLICATION | SENDING_FACILITY | RECEIVING_APPLICATION | RECEIVING_FACILITY | 20110613083617 || ADT ^ A01 | 934576120110613083617 | P | 2.3 ||||
EVN | A01 | 20110613083617 |||
PID | 1 || 135769 || MOUSE ^ MICKEY ^|| 19281118 | M ||| 123 Main St.^^ Lake Buena Vista ^ FL ^ 32830 || (407)939 - 1289 ^^^ [email protected] ||||| 1719 | 99999999 ||||||||||||||||||||
PV1 | 1 | O |||||^^^^^^^^|^^^^^^^^",
                         encapsulations.Single().DecodeBody());

            var echoMessage    = EchoContext.Process(directMessage);
            var messageRebuilt = echoMessage.DirectContext();

            AssertEqual(context, messageRebuilt);
            AssertEqual(Enumerable.ToList(directMessage.SelectEncapulations()), Enumerable.ToList(echoMessage.SelectEncapulations()));
        }
Exemple #8
0
        public static void UpdateMobile(Account account, string mobile_no, string action, byte?page_id)
        {
            using (var db = new EchoContext())
            {
                string account_no = null;
                string user_no    = null;
                if (HttpContext.Current.Session["Account_No"] != null)
                {
                    account_no = HttpContext.Current.Session["Account_No"].ToString();
                }
                if (HttpContext.Current.Session["User_No"] != null)
                {
                    user_no = HttpContext.Current.Session["User_No"].ToString();
                }

                string   event_action = action;
                EventLog log          = new EventLog();
                log.Account_No    = account.Account_No;
                log.User_No       = user_no;
                log.Mobile_Number = mobile_no;
                log.Action_Cd     = event_action;
                if (page_id != null)
                {
                    log.Page_Id = page_id;
                }

                db.EventLogs.Add(log);
                db.SaveChanges();
            }
        }
        public static int ValidateEmail(string email)
        {
            if (string.IsNullOrEmpty(email))
            {
                return(0);
            }

            string strPattern = EmailRegEx();

            if (!System.Text.RegularExpressions.Regex.IsMatch(email, strPattern))
            {
                return(2);
            }

            using (var val_db = new EchoContext())
            {
                var check_email = val_db.Accounts.SingleOrDefault(a => a.User_Name == email);
                if (check_email == null)
                {
                    return(3);
                }
            }

            return(1);
        }
 public ActionResult UpdateBaseQuota()
 {
     using (var db = new EchoContext())
     {
         IEnumerable <Quota> quotas = db.Quotas.Where(x => x.Quota_Type_Cd.Equals("B"));
         return(View(quotas.ToList()));
     }
 }
Exemple #11
0
 public static void AddCustomError(string err_str, byte page_id)
 {
     using (var db = new EchoContext())
     {
         string   event_action = "A06";
         EventLog error_log    = new EventLog();
         error_log.Error_Msg = err_str;
         error_log.Action_Cd = event_action;
         error_log.Page_Id   = page_id;
         db.EventLogs.Add(error_log);
         db.SaveChanges();
     }
 }
Exemple #12
0
        public bool Receive(ISmtpMessage data)
        {
            var message = data.GetEnvelope().Message;

            if (message.IsDSN())
            {
                Log.For <LoopBackContext>().Debug("Ignore DSN");

                return(true);
            }

            if (message.IsMDN())
            {
                Log.For <LoopBackContext>().Debug("Ignore MDN");

                return(true);
            }

            var directMessage = MimeMessage.Load(message.ToString().ToStream());

            try
            {
                if (!directMessage.ContainsDirectContext())
                {
                    Log.For <LoopBackContext>()
                    .Warn($"Message does not contain context.  MessageId={directMessage.MessageId}");

                    var dsnMessage = ReturnNoContextMessage(directMessage, @"No Context found");
                    DropMessage(dsnMessage);

                    return(true);
                }

                var pongMessage = EchoContext.Process(directMessage);
                DropMessage(pongMessage);

                Log.For <LoopBackContext>()
                .Info($"Message context pong response.  MessageId={pongMessage.MessageId} RelatesToMessageId={message.ID}");
            }
            catch (Exception ex)
            {
                Log.For <LoopBackContext>()
                .Error($"Message exception.  MessageId={message.ID} :: Exception: {ex}");

                var dsnMessage = ReturnNoContextMessage(directMessage, ex.Message);
                DropMessage(dsnMessage);
            }

            return(true);
        }
Exemple #13
0
 // account login/logout
 public static void AccountEvent(Account account, string action, byte?page_id)
 {
     using (var db = new EchoContext())
     {
         string   event_action = action;
         EventLog log          = new EventLog();
         log.Account_No = account.Account_No;
         log.Action_Cd  = event_action;
         if (page_id != null)
         {
             log.Page_Id = page_id;
         }
         db.EventLogs.Add(log);
         db.SaveChanges();
     }
 }
        public static int ValidateOTP(string phone_number, string otp_pwd)
        {
            /* returning value
             *  0 - pass
             *  1 - failed, try again
             *  2 - failed, start over
             *  3 - expired, start over
             */
            long number = Convert.ToInt64(phone_number);

            using (var db = new EchoContext())
            {
                OTP otp = db.OTPs.SingleOrDefault(x => x.PhoneNumber.Equals(phone_number));

                if (otp == null)
                {
                    return(2);
                }
                if (otp.Counter >= 3)
                {
                    return(2);
                }
                int cmp = DateTime.Compare(DateTime.Now, otp.Expired_Dttm);

                if (cmp > 0)
                {
                    return(3);
                }

                string check_otp = GenerateOTP(otp.Secret, number);
                if (check_otp.Equals(otp_pwd))
                {
                    return(0);
                }
                else
                {
                    otp.Counter        += 1;
                    db.Entry(otp).State = EntityState.Modified;
                    db.SaveChanges();
                    if (otp.Counter >= 3)
                    {
                        return(2);
                    }
                    return(1);
                }
            }
        }
        public ActionResult UpdateActivationLimit(ActivationLimit al)
        {
            using (var db = new EchoContext())
            {
                AdminConfiguration ac      = db.AdminConfigurations.SingleOrDefault();
                string             user_no = Session["User_No"].ToString();
                ac.No_Activation_Limit_Total = Convert.ToInt32(al.no_activation_limit_total);
                ac.No_Activation_Limit_Daily = Convert.ToInt32(al.no_activation_limit_daily);
                ac.Updated_By   = user_no;
                ac.Updated_Dttm = DateTime.Now;

                db.Entry(ac).State = EntityState.Modified;
                db.SaveChanges();
                FreebieEvent.UserUpdateEvent(Permission.activation_page_id, "A04");
                return(RedirectToAction("ActivationLimit"));
            }
        }
Exemple #16
0
        public static void AccountUpdateEvent(Account account, string new_value, string type, byte?page_id)
        {
            using (var db = new EchoContext())
            {
                string event_action = "A04";
                string account_no   = null;
                string user_no      = null;
                if (HttpContext.Current.Session["Account_No"] != null)
                {
                    account_no = HttpContext.Current.Session["Account_No"].ToString();
                }
                if (HttpContext.Current.Session["User_No"] != null)
                {
                    user_no = HttpContext.Current.Session["User_No"].ToString();
                }


                EventLog log = new EventLog();
                log.Action_Cd = event_action;

                if (type != null)
                {
                    if (type.Equals("Status"))
                    {
                        log.Account_Status_Cd = new_value;
                    }

                    if (type.Equals("Idcard"))
                    {
                        log.Identification_Number = new_value;
                    }
                }


                log.Account_No = account.Account_No;
                log.User_No    = user_no;
                if (page_id != null)
                {
                    log.Page_Id = page_id;
                }

                db.EventLogs.Add(log);
                db.SaveChanges();
            }
        }
        public ActionResult Logout()
        {
            using (var db = new EchoContext())
            {
                if (Session["User_No"] != null)
                {
                    string user_no      = Session["User_No"].ToString();
                    User   current_user = db.Users.SingleOrDefault(x => x.User_No.Equals(user_no));
                    HttpRuntime.Cache.Remove(user_no.Trim());
                    FormsAuthentication.SignOut();
                    RemoveCoookie("freebie");
                    Session.Clear();
                    FreebieEvent.UserEvent(current_user, "A02", Permission.staff_home_page_id);
                }

                return(View("Login"));
            }
        }
Exemple #18
0
        public void TestBuildContextRoundTrip(string file)
        {
            var directMessage = MimeMessage.Load(file);
            var context       = directMessage.DirectContext();

            var message = EchoContext.Process(directMessage);

            var directMessageRebuilt = MimeMessage.Load(message.ToString().ToStream());
            var contextRebuilt       = directMessageRebuilt.DirectContext();

            AssertEqual(context, contextRebuilt);

            Assert.StartsWith("<", contextRebuilt.Headers[ContextStandard.ContentIdHeader]);
            Assert.EndsWith(">", contextRebuilt.Headers[ContextStandard.ContentIdHeader]);

            Assert.StartsWith("<", directMessageRebuilt.Headers[MailStandard.Headers.DirectContext]);
            Assert.EndsWith(">", directMessageRebuilt.Headers[MailStandard.Headers.DirectContext]);
        }
        public ActionResult UpdateFreeTrialQuota(TrialQuota tq)
        {
            using (var db = new EchoContext())
            {
                AdminConfiguration ac      = db.AdminConfigurations.SingleOrDefault();
                string             user_no = Session["User_No"].ToString();
                ac.Trial_Limit_Total = Convert.ToInt32(tq.trial_limit_total);
                ac.Trial_Dur_Val     = Convert.ToInt32(tq.trial_dur_val);
                ac.Trial_Enable_Flag = Convert.ToBoolean(tq.trial_enable_flag);
                ac.Updated_By        = user_no;
                ac.Updated_Dttm      = DateTime.Now;

                db.Entry(ac).State = EntityState.Modified;
                db.SaveChanges();
                FreebieEvent.UserUpdateEvent(Permission.free_trial_page_id, "A04");
                return(RedirectToAction("FreeTrialQuota"));
            }
        }
Exemple #20
0
        public static void UserUpdateEvent(byte page_id, string action)
        {
            using (var db = new EchoContext())
            {
                string user_no = null;
                if (HttpContext.Current.Session["User_No"] != null)
                {
                    user_no = HttpContext.Current.Session["User_No"].ToString();
                }
                EventLog log = new EventLog();
                log.Action_Cd = action;
                log.User_No   = user_no;
                log.Page_Id   = page_id;

                db.EventLogs.Add(log);
                db.SaveChanges();
            }
        }
        public static int ValidateUsername(string email, string cfm_email, string pwd, string cfm_pwd)
        {
            // Missing some value
            if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(pwd) || string.IsNullOrEmpty(cfm_email) || string.IsNullOrEmpty(cfm_pwd))
            {
                return(0);
            }

            //Format
            string strPattern = EmailRegEx();

            if (!System.Text.RegularExpressions.Regex.IsMatch(email, strPattern))
            {
                return(2);
            }

            if (pwd.Length < 6 || pwd.Length > 15)
            {
                return(3);
            }

            using (var val_db = new EchoContext())
            {
                //Existance
                var check_email = val_db.Accounts.SingleOrDefault(a => a.User_Name == email);
                if (check_email != null)
                {
                    return(4);
                }

                // Value match
                if (email.ToLower() != cfm_email.ToLower())
                {
                    return(5);
                }
                if (pwd != cfm_pwd)
                {
                    return(6);
                }
            }


            return(1);
        }
        //private static EchoContext db = new EchoContext();

        public static void AfterCreateAccount(Account ac, string[] interests)
        {
            using (var db = new EchoContext())
            {
                ac.Created_By   = ac.Account_No;
                ac.Updated_By   = ac.Account_No;
                ac.Created_Dttm = DateTime.Now;
                ac.Updated_Dttm = DateTime.Now;

                //db.Entry(ac).State = EntityState.Modified;

                AccountMobile am = new AccountMobile();
                am.Mobile_Number = ac.First_Mobile_Number;
                am.Account_Id    = ac.Account_Id;
                am.Status_Cd     = FreebieStatus.MobileActive();
                am.Primary_Flag  = true;
                am.Created_By    = ac.Account_No;
                am.Updated_By    = ac.Account_No;
                db.AccountMobiles.Add(am);

                AccountInterest aci = new AccountInterest();
                aci.Account_Id             = ac.Account_Id;
                aci.I01_Food_Dining        = interests.Contains("I01");
                aci.I02_Night_Life         = interests.Contains("I02");
                aci.I03_Entertainment      = interests.Contains("I03");
                aci.I04_Music_Movie        = interests.Contains("I04");
                aci.I05_Sports_Fitness     = interests.Contains("I05");
                aci.I06_Shopping_Fashion   = interests.Contains("I06");
                aci.I07_Health_Beauty      = interests.Contains("I07");
                aci.I08_Travel             = interests.Contains("I08");
                aci.I09_Pets               = interests.Contains("I09");
                aci.I10_Kids_Children      = interests.Contains("I10");
                aci.I11_Home_Living        = interests.Contains("I11");
                aci.I12_Finance_Investment = interests.Contains("I12");
                aci.I13_Technology_Gadget  = interests.Contains("I13");
                aci.I14_Auto               = interests.Contains("I14");
                aci.Created_By             = ac.Account_No;
                aci.Updated_By             = ac.Account_No;
                db.AccountInterests.Add(aci);

                db.SaveChanges();
            }
        }
Exemple #23
0
        public static bool can_update_this_staff(User u)
        {
            // can CRUD this stff

            bool result = true;

            using (var db = new EchoContext())
            {
                string user_no      = HttpContext.Current.Session["User_No"].ToString();
                User   current_user = db.Users.SingleOrDefault(x => x.User_No.Equals(user_no));

                if (!current_user.Role_Cd.Equals("AM"))
                {
                    if (current_user.Role_Cd.Equals("SU"))
                    {
                        if (u.Role_Cd.Equals("ST"))
                        {
                            if ((u.Group_Id != current_user.Group_Id) || (!u.Dept_Cd.Equals(current_user.Dept_Cd)))
                            {
                                result = false; // only staff in user's group/dept
                            }
                        }
                        else
                        {
                            if (!u.User_No.Equals(current_user.User_No))
                            {
                                result = false;  // self edit only
                            }
                        }
                    }

                    if (current_user.Role_Cd.Equals("ST"))
                    {
                        if (!u.User_No.Equals(current_user.User_No))
                        {
                            result = false; // self edit only
                        }
                    }
                }
            }

            return(result);
        }
Exemple #24
0
        // for test
        //public static void seed_data(int num)
        //{
        //    using (var db = new EchoContext())
        //    {

        //        for (int i = 1; i <= num; i++)
        //        {
        //            Account a = new Account();
        //            a.First_Name = PasswordGenerator.Get();
        //            a.Last_Name = PasswordGenerator.Get();
        //            a.Day_Of_Birth = 1;
        //            a.Month_Of_Birth = 2;
        //            a.Year_Of_Birth = 1990;
        //            a.Gender_Cd = "M";
        //            a.Dummy_Flag = "0";
        //            a.Activation_Dttm = DateTime.Now;
        //            a.Status_Cd = "AC";
        //            db.Accounts.Add(a);

        //            AccountMobile pn = new AccountMobile();
        //            pn.Account = a;
        //            pn.Mobile_Number = "08" + i.ToString() + "100" + string.Format("{0:0000}", i);
        //            pn.Primary_Flag = true;
        //            pn.Status_Cd = "AC";

        //            db.AccountMobiles.Add(pn);

        //            AccountMobile sn = new AccountMobile();
        //            sn.Account = a;
        //            sn.Mobile_Number = "09" + i.ToString() + "100" + string.Format("{0:0000}", i);
        //            sn.Primary_Flag = false;
        //            sn.Status_Cd = "AC";

        //            db.AccountMobiles.Add(sn);
        //            db.SaveChanges();
        //        }

        //        for (int j = 1; j <= num; j++)
        //        {
        //            Account a = new Account();
        //            a.First_Name = PasswordGenerator.Get();
        //            a.Last_Name = PasswordGenerator.Get();
        //            a.Day_Of_Birth = 1;
        //            a.Month_Of_Birth = 2;
        //            a.Year_Of_Birth = 1990;
        //            a.Gender_Cd = "M";
        //            a.Dummy_Flag = "0";
        //            a.Activation_Dttm = DateTime.Now.AddDays(-1);
        //            a.Status_Cd = "AC";

        //            db.Accounts.Add(a);

        //            AccountMobile pn = new AccountMobile();
        //            pn.Account = a;
        //            pn.Mobile_Number = "08" + j.ToString() + "110" + string.Format("{0:0000}", j);
        //            pn.Primary_Flag = true;
        //            pn.Status_Cd = "AC";

        //            db.AccountMobiles.Add(pn);

        //            AccountMobile sn = new AccountMobile();
        //            sn.Account = a;
        //            sn.Mobile_Number = "09" + j.ToString() + "110" + string.Format("{0:0000}", j);
        //            sn.Primary_Flag = false;
        //            sn.Status_Cd = "AC";

        //            db.AccountMobiles.Add(sn);

        //            db.SaveChanges();
        //        }

        //    }

        //}

        public static IEnumerable <AccountSMS> get_accounts()
        {
            var today    = DateTime.Today;
            var tomorrow = today.AddDays(1);


            IEnumerable <AccountSMS> accounts;
            var db = new EchoContext();

            accounts = from am in db.AccountMobiles
                       join a in db.Accounts on am.Account_Id equals a.Account_Id
                       where am.Primary_Flag && a.Activation_Dttm != null && (a.Registration_Dttm != a.Activation_Dttm) && (a.Activation_Dttm >= today && a.Activation_Dttm < tomorrow)
                       select new AccountSMS
            {
                Account_Id      = a.Account_Id,
                Activation_Dttm = a.Activation_Dttm,
                Mobile_Number   = am.Mobile_Number
            };

            return(accounts);
        }
Exemple #25
0
        public static void SendUsername(string phone_number)
        {
            using (var db = new EchoContext())
            {
                AccountMobile am       = db.AccountMobiles.Where(x => x.Mobile_Number.Equals(phone_number)).Where(x => x.Status_Cd.Equals("AC")).SingleOrDefault();
                string        username = "";

                if (am != null)
                {
                    Account ac = db.Accounts.SingleOrDefault(x => x.Account_Id == am.Account_Id);
                    if (ac != null)
                    {
                        username = ac.User_Name;
                        string message = System.Configuration.ConfigurationManager.AppSettings["SMS_MESSAGE_FORGOT_USERNAME"];
                        message = message.Replace("{username}", username);
                        OtpLog log    = new OtpLog();
                        string result = fire(phone_number, message, log);
                    }
                }
            }
        }
        public void init_dropdwon(string select_dept, int select_group, string user_no)
        {
            string role_cd         = Session["Role"].ToString();
            string current_user_no = Session["User_No"].ToString();

            var  db           = new EchoContext();
            User current_user = db.Users.SingleOrDefault(x => x.User_No.Equals(current_user_no));



            var all_item = new SelectListItem()
            {
                Text     = "ทั้งหมด",
                Value    = "0",
                Selected = false
            };

            IEnumerable <Dept> all_depts = db.Depts.OrderBy(s => s.Dept_Cd);

            if (role_cd.Equals("AM"))
            {
                depts.Add(all_item);
            }


            if (!role_cd.Equals("AM"))
            {
                all_depts = all_depts.Where(x => x.Dept_Cd.Equals(current_user.Dept_Cd));
            }

            foreach (var d in all_depts)
            {
                var dept = new SelectListItem()
                {
                    Text     = d.Dept_Name_En,
                    Value    = d.Dept_Cd,
                    Selected = (d.Dept_Cd.Equals(select_dept))
                };
                depts.Add(dept);
            }

            var depts_selectable = depts;

            ViewBag.Dept_Cd = depts_selectable;

            if (!role_cd.Equals("ST"))
            {
                users.Add(all_item);
            }


            if (role_cd.Equals("AM"))
            {
                groups.Add(all_item);
            }
            IEnumerable <User> free_users = db.Users.OrderBy(x => x.User_No);

            if (role_cd.Equals("SU"))
            {
                free_users = free_users.Where(x => x.Dept_Cd.Equals(current_user.Dept_Cd)).Where(x => x.Group_Id == current_user.Group_Id);
            }
            else
            {
                if (role_cd.Equals("ST"))
                {
                    free_users = free_users.Where(x => x.User_Id == current_user.User_Id);
                }
            }
            foreach (var u in free_users)
            {
                var user = new SelectListItem()
                {
                    Text     = u.User_No,
                    Value    = u.User_No,
                    Selected = (u.User_No == user_no)
                };
                users.Add(user);
            }
            ViewBag.User_No = users;

            for (int i = 1; i <= 20; i++)
            {
                var item = new SelectListItem()
                {
                    Text     = i.ToString(),
                    Value    = i.ToString(),
                    Selected = (select_group == i)
                };
                if (role_cd.Equals("AM"))
                {
                    groups.Add(item);
                }
                else
                {
                    if ((role_cd.Equals("SU") || role_cd.Equals("ST")) && i == current_user.Group_Id)
                    {
                        groups.Add(item);
                    }
                }
            }
            ViewBag.Group_Id = groups;
        }
        public ActionResult SalesPerfReportResult()
        {
            string dept            = Request.Form["Dept_cd"];
            string current_user_no = Session["User_No"].ToString();

            var  db           = new EchoContext();
            User current_user = db.Users.SingleOrDefault(x => x.User_No.Equals(current_user_no));

            string role_cd = Session["Role"].ToString();

            string start_date_rq = Request.Form["start_date"];
            string end_date_rq   = Request.Form["end_date"];

            var start_date = DateTime.Now;
            var end_date   = DateTime.Now;

            try
            {
                if (!string.IsNullOrEmpty(start_date_rq))
                {
                    start_date = DateTime.ParseExact(start_date_rq, @"d/M/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                }

                if (!string.IsNullOrEmpty(end_date_rq))
                {
                    end_date = DateTime.ParseExact(end_date_rq, @"d/M/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                }
            }
            catch (Exception)
            {
                start_date = DateTime.Now;
                end_date   = DateTime.Now;
            }


            ViewBag.start_date = String.Format("{0:dd/MM/yyyy}", start_date);
            ViewBag.end_date   = String.Format("{0:dd/MM/yyyy}", end_date);

            if (string.IsNullOrEmpty(dept))
            {
                dept = "AA";
            }

            string user_no   = Request.Form["User_No"];
            string where_str = "";

            if (dept.Equals("0"))
            {
                where_str = String.Format("where u.Dept_Cd != '{0}'", dept);
            }
            else
            {
                where_str = String.Format("where u.Dept_Cd = '{0}' ", dept);
            }



            int group_id = Convert.ToInt16(Request.Form["Group_id"]);

            if (group_id != 0)
            {
                where_str += String.Format(" and u.Group_Id = '{0}' ", group_id);
            }

            if (start_date != null && end_date != null)
            {
                where_str += String.Format(" and CAST(a.Registration_Dttm as DATE) between '{0}' and '{1}' ", String.Format("{0:yyyy/MM/dd}", start_date), String.Format("{0:yyyy/MM/dd}", end_date));
            }

            if (!user_no.Equals("0"))
            {
                where_str += String.Format(" and u.User_No = '{0}' ", user_no);
            }
            else
            {
                if (role_cd.Equals("ST"))
                {
                    where_str += String.Format(" and u.User_Id = '{0}' ", current_user.User_Id);
                }
            }
            string sql_str = @"
                select 
	                u.User_No as user_no,
	                CAST(a.Registration_Dttm as DATE) as reg_date,
	                sum(case when a.Status_Cd = 'AC' and a.First_Quota_Cd = 'Q0001'
		                then 1
		                else 0
	                end) as active_low,
	                sum(case when a.Status_Cd = 'AC' and a.First_Quota_Cd = 'Q0002'
		                then 1
		                else 0
	                end) as active_mid,
	                sum(case when a.Status_Cd = 'AC' and a.First_Quota_Cd = 'Q0003'
		                then 1
		                else 0
	                end) as active_high,
	                sum(case when a.Status_Cd in ('AP','ACD') and a.First_Quota_Cd = 'Q0001'
		                then 1
		                else 0
	                end) as pending_low,
	                sum(case when a.Status_Cd in ('AP','ACD') and a.First_Quota_Cd = 'Q0002'
		                then 1
		                else 0
	                end) as pending_mid,
	                sum(case when a.Status_Cd in ('AP','ACD') and a.First_Quota_Cd = 'Q0003'
		                then 1
		                else 0
	                end) as pending_high,
	                sum(case when a.Status_Cd in ('AP','ACD', 'AC') and a.First_Quota_Cd in ('Q0001', 'Q0002', 'Q0003')
		                then 1
		                else 0
	                end)	as user_total
                from [User] as u
                Left join Account a on a.Staff_No = u.User_No
                ";

            sql_str += where_str;

            sql_str += @"
                group by u.User_No, CAST(a.Registration_Dttm as DATE)
                order by u.User_No, CAST(a.Registration_Dttm as DATE)

            ";



            var results = db.Database.SqlQuery <SalesPerf>(sql_str).ToList();

            init_dropdwon(dept, group_id, user_no);
            return(View(results));
        }
        public ActionResult ValidateUser()
        {
            using (var db = new EchoContext())
            {
                string username = Request.Form["UserName"];
                string password = Request.Form["Password"];
                string enc      = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1");


                if (username != "" && password != "")
                {
                    User u = db.Users.Where(x => x.User_Name.Equals(username)).Where(x => x.Password.Equals(enc)).SingleOrDefault();
                    if (u != null)
                    {
                        if (u.Status_Cd.Trim().Equals("IA"))
                        {
                            ViewBag.LoginError = System.Configuration.ConfigurationManager.AppSettings["Login002"];
                            return(View("Login"));
                        }
                        //if (System.Web.HttpContext.Current.Cache[u.User_No.Trim()] == null)
                        //{
                        FormsAuthentication.SetAuthCookie(username, true);
                        Session["User_No"]  = u.User_No;
                        Session["Role"]     = u.Role_Cd;
                        Session["Dept"]     = u.Dept_Cd;
                        Session["Group_Id"] = u.Group_Id;

                        //System.Web.HttpContext.Current.Cache[u.User_No.Trim()] = Session.SessionID;

                        //load permissions
                        IEnumerable <PageMap> page_maps   = db.PageMaps.Where(x => x.Role_Cd.Equals(u.Role_Cd)).Where(x => x.Dept_Cd.Equals(u.Dept_Cd)).ToList();
                        Hashtable             permissions = new Hashtable();

                        foreach (var p in page_maps)
                        {
                            string page_key = p.Page_Id.ToString();

                            Hashtable item = new Hashtable();
                            item["View_All"]     = (p.View_All_Flag.Equals("Y"));
                            item["Access_All"]   = (p.Full_Access_Flag.Equals("Y"));
                            item["Allow_Update"] = (p.Allow_Update_Flag.Equals("Y"));
                            permissions.Add(page_key, item);
                        }
                        Session["Permissions"] = permissions;
                        string dept_name = "-";
                        if (u.Dept != null)
                        {
                            dept_name = u.Dept.Dept_Name_En;
                        }
                        FreebieEvent.UserEvent(u, "A01", Permission.staff_home_page_id);
                        return(RedirectToAction("StaffProfile", "User"));

                        //}
                        //else
                        //{
                        //    ViewBag.LoginError = System.Configuration.ConfigurationManager.AppSettings["MULTIPLE_LOGIN"];
                        //}
                    }
                    else
                    {
                        ViewBag.LoginError = System.Configuration.ConfigurationManager.AppSettings["Login001"];
                    }
                }


                return(View("Login"));
            }
        }
Exemple #29
0
        public void ProcessRequest(HttpContext context)
        {
            string             reply_str      = "";
            var                db             = new EchoContext();
            SmsRegistrationLog sms_log        = new SmsRegistrationLog();
            string             sms_log_result = "";

            try
            {
                string keyword   = context.Request.Form["keyword"] == null ? string.Empty : context.Request.Form["keyword"];
                string content   = context.Request.Form["content"] == null ? string.Empty : context.Request.Form["content"];
                string mobile_no = context.Request.Form["mobile_no"] == null ? string.Empty : context.Request.Form["mobile_no"];
                //string msg = context.Request.Form["msg"] == null ? string.Empty : context.Request.Form["msg"];


                sms_log.Mobile_Number = mobile_no;
                sms_log.RQ_Msg        = "-";
                sms_log.RQ_Keyword    = keyword;
                sms_log.RQ_Content    = content;


                int  result = CustomValidate.ValidateNumber(mobile_no);
                bool flag   = true;

                if (result != 1 && result != 4)
                {
                    flag = false;
                    if (result == 2 || result == 3 || result == 5)
                    {
                        reply_str      = System.Configuration.ConfigurationManager.AppSettings["EXIST_NUMBER"];
                        sms_log_result = "Existing number";
                    }

                    if (result == 6)
                    {
                        reply_str      = System.Configuration.ConfigurationManager.AppSettings["NO_ACCTACTIVATION"];
                        sms_log_result = "Maintenance Period";
                    }
                }

                if (flag)
                {
                    if (IsValid(keyword, content))
                    {
                        string[] content_arrs = content.Split(' ');
                        string   gender       = content_arrs[0];
                        string   dob          = content_arrs[1];
                        string[] result_sp    = new string[2];

                        byte day   = Convert.ToByte(dob.Substring(0, 2));
                        byte month = Convert.ToByte(dob.Substring(2, 2));
                        int  year  = Convert.ToInt16(dob.Substring(4, 4));

                        year = year - 543;
                        #region transaction
                        var transactionOptions = new TransactionOptions();
                        transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
                        transactionOptions.Timeout        = TransactionManager.MaximumTimeout;
                        Account  account   = new Account();
                        DateTime timestamp = DateTime.Now;
                        using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOptions))
                        {
                            var db_transaction = new EchoContext();

                            account.Gender_Cd           = gender.ToUpper();
                            account.Day_Of_Birth        = day;
                            account.Month_Of_Birth      = month;
                            account.Year_Of_Birth       = year;
                            account.Channel_Cd          = "SMS";
                            account.Created_By          = System.Configuration.ConfigurationManager.AppSettings["CREATED_BY_SMS"];
                            account.Updated_By          = System.Configuration.ConfigurationManager.AppSettings["CREATED_BY_SMS"];
                            account.First_Mobile_Number = mobile_no;
                            account.Created_Dttm        = timestamp;
                            account.Updated_Dttm        = timestamp;
                            account.Registration_Dttm   = timestamp;

                            var   today = DateTime.Now.Date;
                            Quota q     = db_transaction.Quotas.Where(x => x.Quota_Type_Cd.Equals("B")).Where(x => x.Quota_Cd.Equals("Q0001")).SingleOrDefault();

                            #region account quota used cur
                            AccountQuotaUsedCur aquc = new AccountQuotaUsedCur();
                            aquc.Date                = today.Date;
                            aquc.Account             = account;
                            aquc.Quota_Freq_Used_Val = 0;
                            aquc.Quota_Avail_Flag    = true;
                            aquc.Quota_Dur_Val       = Convert.ToByte(q.Quota_Dur_Val);
                            aquc.Quota_Freq_Val      = Convert.ToByte(q.Quota_Freq_Val);
                            db_transaction.AccountQuotaUsedCurs.Add(aquc);
                            #endregion

                            #region account mobile
                            AccountMobile am = new AccountMobile();
                            am.Account       = account;
                            am.Mobile_Number = mobile_no;
                            am.Primary_Flag  = true;
                            am.Status_Cd     = "AC";
                            am.Updated_By    = System.Configuration.ConfigurationManager.AppSettings["CREATED_BY_SMS"];
                            am.Created_By    = System.Configuration.ConfigurationManager.AppSettings["CREATED_BY_SMS"];
                            db_transaction.AccountMobiles.Add(am);
                            #endregion

                            #region account interest
                            AccountInterest ai = new AccountInterest();
                            ai.Account = account;
                            db_transaction.AccountInterests.Add(ai);
                            #endregion

                            #region account quota
                            AccountQuota aq = new AccountQuota();
                            aq.Account  = account;
                            aq.Quota_Cd = q.Quota_Cd;
                            db_transaction.AccountQuotas.Add(aq);
                            #endregion

                            #region update account activation and set status_cd
                            SqlParameter output = new SqlParameter("acstatus", SqlDbType.Int);
                            output.Direction = ParameterDirection.Output;

                            SqlParameter date = new SqlParameter("today", SqlDbType.Date);
                            date.Value = DateTime.Now;

                            SqlParameter no_acct_total = new SqlParameter("no_acct_limit_total", SqlDbType.Int);

                            int no_acct_limit_total         = 0;
                            AdminConfiguration admin_config = db_transaction.AdminConfigurations.SingleOrDefault();

                            if (admin_config != null)
                            {
                                no_acct_limit_total = admin_config.No_Activation_Limit_Total;
                            }

                            no_acct_total.Value = no_acct_limit_total;
                            string sql_string =
                                "declare @tbt table (acstatus int)" +
                                "UPDATE Account_Activation " +
                                "SET No_Activation = CASE WHEN (No_Activation + 1 > No_Max_Activation or (No_Activation_Acc + 1 > @no_acct_limit_total)) THEN No_Activation ELSE No_Activation + 1 END, " +
                                "No_Activation_Acc = CASE WHEN (No_Activation + 1 > No_Max_Activation or (No_Activation_Acc + 1 > @no_acct_limit_total)) THEN No_Activation_Acc ELSE No_Activation_Acc + 1 END, " +
                                "No_Activation_Pending = CASE WHEN (No_Activation + 1 > No_Max_Activation or (No_Activation_Acc + 1 > @no_acct_limit_total)) THEN No_Activation_Pending + 1 ELSE No_Activation_Pending END, " +
                                "Updated_By = 'WEBSITE', " +
                                "Updated_Dttm = GETDATE() " +
                                "OUTPUT CASE WHEN (deleted.No_Activation + 1 > deleted.No_Max_Activation or deleted.No_Activation_Acc + 1 > @no_acct_limit_total) THEN 1 ELSE 0 END " +
                                " into @tbt " +
                                "WHERE [Date] = @today " +
                                "select @acstatus = acstatus from @tbt";

                            db_transaction.Database.ExecuteSqlCommand(sql_string, no_acct_total, date, output);

                            int sql_result = Convert.ToInt16(output.Value);

                            if (sql_result == 0)
                            {
                                account.Status_Cd       = FreebieStatus.AccountActivated();
                                account.Activation_Dttm = timestamp;
                                reply_str      = System.Configuration.ConfigurationManager.AppSettings["ACD"];
                                sms_log_result = "Register success";
                                string q_str = (Convert.ToByte(q.Quota_Freq_Val) * Convert.ToByte(q.Quota_Dur_Val) * 30).ToString();
                                reply_str = reply_str.Replace("{count}", q.Quota_Freq_Val.ToString());
                                reply_str = reply_str.Replace("{mins}", q.Quota_Dur_Val.ToString());
                                reply_str = reply_str.Replace("{num}", q_str);
                            }
                            else
                            {
                                account.Status_Cd = FreebieStatus.AccountPending();
                                reply_str         = System.Configuration.ConfigurationManager.AppSettings["AP"];
                                sms_log_result    = "Register Pending";
                            }

                            #endregion


                            account.First_Quota_Cd       = q.Quota_Cd;
                            account.First_Quota_Dur_Val  = q.Quota_Dur_Val;
                            account.First_Quota_Freq_Val = q.Quota_Freq_Val;
                            account.Dummy_Flag           = "0";

                            db_transaction.Accounts.Add(account);
                            db_transaction.SaveChanges();
                            scope.Complete();
                        }
                        #endregion
                        #region call_sp
                        result_sp = CallSP.SP_Insert_Interact_Profile(account.Account_Id);
                        if (!result_sp[0].Equals("0"))
                        {
                            using (var new_db = new EchoContext())
                            {
                                SqlParameter date = new SqlParameter("today", SqlDbType.Date);
                                date.Value = DateTime.Now;
                                Account remove_ac = new_db.Accounts.SingleOrDefault(x => x.Account_Id == account.Account_Id);
                                if (remove_ac != null)
                                {
                                    if (remove_ac.Status_Cd.Equals(FreebieStatus.AccountActivated()))
                                    {
                                        string sql_string =
                                            "UPDATE Account_Activation " +
                                            "SET No_Activation = CASE WHEN (No_Activation - 1 < 0 ) THEN 0 ELSE No_Activation - 1 END, " +
                                            "No_Activation_Acc = CASE WHEN (No_Activation_Acc - 1 < 0 ) THEN 0 ELSE No_Activation_Acc - 1 END, " +
                                            "Updated_By = 'WEBSITE', " +
                                            "Updated_Dttm = GETDATE() " +
                                            "WHERE [Date] = @today ";

                                        new_db.Database.ExecuteSqlCommand(sql_string, date);
                                    }
                                    else
                                    {
                                        if (remove_ac.Status_Cd.Equals(FreebieStatus.AccountPending()))
                                        {
                                            string sql_string =
                                                "UPDATE Account_Activation " +
                                                "SET No_Activation_Pending = CASE WHEN (No_Activation_Pending - 1 < 0 ) THEN 0 ELSE No_Activation_Pending - 1 END, " +
                                                "Updated_By = 'WEBSITE', " +
                                                "Updated_Dttm = GETDATE() " +
                                                "WHERE [Date] = @today ";

                                            new_db.Database.ExecuteSqlCommand(sql_string, date);
                                        }
                                    }
                                    AccountQuotaUsedCur remove_aquc = new_db.AccountQuotaUsedCurs.SingleOrDefault(x => x.Account_Id == account.Account_Id);
                                    if (remove_aquc != null)
                                    {
                                        new_db.AccountQuotaUsedCurs.Remove(remove_aquc);
                                    }
                                    new_db.Accounts.Remove(remove_ac);
                                    new_db.SaveChanges();
                                }
                            }
                            reply_str = System.Configuration.ConfigurationManager.AppSettings["NO_ACCTACTIVATION"];
                        }
                        else
                        {
                            FreebieEvent.AccountCreateEvent(account, account.First_Mobile_Number, Permission.f_cust_regis_page_id);
                        }
                        #endregion
                    }
                    else
                    {
                        reply_str      = System.Configuration.ConfigurationManager.AppSettings["WRONG_FORMAT"];
                        sms_log_result = "Wrong input Format";
                    }
                }
            }
            catch (Exception err)
            {
                reply_str      = System.Configuration.ConfigurationManager.AppSettings["NO_ACCTACTIVATION"];
                sms_log_result = "System Error";
                FreebieEvent.AddCustomError(err.Message, Permission.f_cust_regis_page_id);
            }

            Encoding encoding = Encoding.GetEncoding("tis-620");
            string   xml_str  = GetReplyXML(reply_str, encoding);

            sms_log.Result = sms_log_result;
            db.SmsRegistrationLogs.Add(sms_log);
            db.SaveChanges();

            context.Response.ContentType     = "text/xml";
            context.Response.ContentEncoding = encoding;
            context.Response.Write(xml_str);
        }
Exemple #30
0
        private static string fire(string phone_number, string msg, object log)
        {
            string result = string.Empty;

            System.Type type_of = log.GetType();                                       //ORIGIN

            System.Configuration.ConfigurationManager.AppSettings["SEND_SMS"] = "YES"; //dummy data for DEBUG

            if (System.Configuration.ConfigurationManager.AppSettings["SEND_SMS"].Equals("YES"))
            {
                string postData = "ACCOUNT=" + System.Configuration.ConfigurationManager.AppSettings["MOBILE_ACCOUNT"];
                postData += "&PASSWORD="******"MOBILE_PWD"];
                postData += "&MOBILE=" + phone_number;

                postData += "&MESSAGE=" + msg;

                postData += "&LANGUAGE=" + System.Configuration.ConfigurationManager.AppSettings["MESSAGE_LANGUAGE"];
                postData += "&SENDER=" + System.Configuration.ConfigurationManager.AppSettings["SENDER_NAME"];
                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                Encoding iso  = Encoding.GetEncoding("ISO-8859-11");
                Encoding utf8 = Encoding.UTF8;
                byte[]   data = encoding.GetBytes(postData);
                data = Encoding.Convert(utf8, iso, data);

                DateTime start_res = DateTime.Now;

                //result = "System.Configuration.ConfigurationManager.AppSettings['SEND_SMS'].Equals('Yes')"; //DEBUG

                try
                {
                    HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(System.Configuration.ConfigurationManager.AppSettings["SMS_GATEWAY"]);
                    httpRequest.Method        = "POST";
                    httpRequest.Host          = System.Configuration.ConfigurationManager.AppSettings["SMS_HOST"]; //"203.146.102.26";
                    httpRequest.ContentType   = "application/x-www-form-urlencoded";
                    httpRequest.ContentLength = data.Length;
                    MemoryStream Memstream = new MemoryStream(data);
                    Stream       stream    = httpRequest.GetRequestStream();
                    Memstream.WriteTo(stream);
                    stream.Close();

                    Callback(httpRequest, (response) =>
                    {
                        var res_stream      = new StreamReader(response.GetResponseStream());
                        DateTime end_res    = DateTime.Now;
                        int index           = 0;
                        string[] result_rsp = new string[] { "", "", "", "" };
                        string rsp_str      = "";
                        while (res_stream.Peek() >= 0)
                        {
                            result_rsp[index] = res_stream.ReadLine();
                            index++;
                        }
                        foreach (var txt in result_rsp)
                        {
                            rsp_str += txt + " ";
                        }

                        //saving
                        using (var db = new EchoContext())
                        {
                            if (type_of == typeof(OtpLog))
                            {
                                OtpLog logger        = new OtpLog();
                                logger.Mobile_Number = phone_number;
                                logger.Request_At    = start_res;
                                logger.Response_At   = end_res;
                                logger.Response_Text = rsp_str;
                                db.OtpLogs.Add(logger);
                                db.SaveChanges();
                            }
                            else
                            {
                                if (type_of == typeof(ActivationSmsLog))
                                {
                                    ActivationSmsLog logger = new ActivationSmsLog();
                                    logger.Mobile_Number    = phone_number;
                                    logger.Request_At       = start_res;
                                    logger.Response_At      = end_res;
                                    logger.Response_Text    = rsp_str;
                                    db.ActivationSmsLogs.Add(logger);
                                    db.SaveChanges();
                                }
                            }
                        }
                        res_stream.Close();
                    });
                }
                catch (WebException wex)
                {
                    using (var db = new EchoContext())
                    {
                        if (type_of == typeof(OtpLog))
                        {
                            OtpLog logger = new OtpLog();
                            logger.Mobile_Number = phone_number;
                            logger.Request_At    = start_res;
                            logger.Response_At   = DateTime.Now;
                            logger.Response_Text = wex.Message;
                            db.OtpLogs.Add(logger);
                            db.SaveChanges();
                        }
                        else
                        {
                            if (type_of == typeof(ActivationSmsLog))
                            {
                                ActivationSmsLog logger = new ActivationSmsLog();
                                logger.Mobile_Number = phone_number;
                                logger.Request_At    = start_res;
                                logger.Response_At   = DateTime.Now;
                                logger.Response_Text = wex.Message;
                                db.ActivationSmsLogs.Add(logger);
                                db.SaveChanges();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    FreebieEvent.AddError(ex, 0);
                }
            }
            else
            {
                result = ".AppSettings['SEND_SMS'].Equals('NO')"; //DEBUG
            }

            return(result);//ORIGIN
        }