public void btn_Edit(string email, string us, List <string> role, int id_site)
        {
            if (User.IsInRole("admin"))
            {
                user       = Membership.GetUser(us);
                user.Email = email;
                Membership.UpdateUser(user);
                var getRole = Roles.GetRolesForUser(us).ToList();
                foreach (var item in getRole)
                {
                    Roles.RemoveUserFromRole(us, item);
                }

                foreach (var item2 in role)
                {
                    Roles.AddUserToRole(us, item2);
                }

                if (role.Contains("shop"))
                {
                    //set mapping and save
                    var mapping = db.tb_mapping_store.Where(w => w.account_guid.ToString() == user.ProviderUserKey.ToString()).FirstOrDefault();
                    if (mapping != null)
                    {
                        mapping.account_guid = mapping.account_guid;
                        mapping.site_id      = id_site;
                        db.tb_mapping_store.AddOrUpdate(mapping);
                        db.SaveChanges();
                    }
                    // fix change error
                    else
                    {
                        Guid             convertGuid = new Guid(user.ProviderUserKey.ToString());
                        tb_mapping_store obj_new     = new tb_mapping_store();
                        obj_new.account_guid = convertGuid;
                        obj_new.site_id      = id_site;
                        db.tb_mapping_store.Add(obj_new);
                        db.SaveChanges();
                    }
                }
            }
        }
        public object Regis(string user, string email, string pass, string conpass, List <string> role, int id_site)
        {
            List <validate_all> validates = new List <validate_all>();
            Regex regex  = new Regex("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})");
            Match match  = regex.Match(pass);
            Match match2 = regex.Match(conpass);

            if (user != "" && user != null) //user
            {
                var checkUser = common.xss_input_string(user, user.Length);
                if (checkUser == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtName", text = "รูปแบบชื่อไม่ถูกต้อง"
                    });
                }
                else
                {
                    var getUser = Membership.GetUser(user);
                    if (getUser != null)
                    {
                        validates.Add(new validate_all {
                            name_div = "#txtName", text = "Username ซ้ำกับในระบบ"
                        });
                    }
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtName", text = "กรุณาระบุชื่อ"
                });
            }

            if (email != "" && email != null) //email
            {
                var checkEmail = common.isEmailFormat(email);
                if (checkEmail == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtEmail", text = "รูปแบบอีเมล์ไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtEmail", text = "กรุณาระบุอีเมล์"
                });
            }

            if (pass != "" && pass != null) //pass
            {
                var checkPassword = common.xss_input_string(pass, pass.Length);
                if (checkPassword == false || !match.Success)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtPassword", text = "รูปแบบรหัสผ่านไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtPassword", text = "กรุณาระบุรหัสผ่าน"
                });
            }

            if (conpass != "" && conpass != null) //conpass
            {
                var checkConfirmPassword = common.xss_input_string(conpass, conpass.Length);
                if (checkConfirmPassword == false || !match2.Success)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtConfirmPassword", text = "รูปแบบยืนยันรหัสผ่านไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtConfirmPassword", text = "กรุณาระบุยืนยันรหัสผ่าน"
                });
            }

            if (validates.Count() == 0 && User.IsInRole("admin"))
            {
                MembershipUser newUser = Membership.CreateUser(user, pass, email);
                Membership.UpdateUser(newUser);

                foreach (var item2 in role)
                {
                    Roles.AddUserToRole(user, item2);
                }

                if (role.Contains("shop"))
                {
                    //set mapping and save
                    var  CheckUser   = Membership.GetUser(user).ProviderUserKey;
                    Guid convertGuid = new Guid(CheckUser.ToString());

                    tb_mapping_store obj_new = new tb_mapping_store();
                    obj_new.account_guid = convertGuid;
                    obj_new.site_id      = id_site;
                    db.tb_mapping_store.Add(obj_new);
                    db.SaveChanges();
                }

                return(true);
            }
            else
            {
                string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(validates);
                return(new ContentResult()
                {
                    Content = jsonString,
                    ContentType = "application/json"
                });
            }
        }
        public object btn_save_store(tb_store data)
        {
            List <validate_all> validates = new List <validate_all>();
            var name = User.Identity.Name;

            //Check
            if (data.code_store != "" && data.code_store != null) //code
            {
                var checkCodeStore = common.xss_input_string(data.code_store, data.code_store.Length);
                if (checkCodeStore == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtSiteCode", text = "รูปแบบโค้ดศูนย์บริการไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtSiteCode", text = "กรุณาระบุโค้ดศูนย์บริการ"
                });
            }

            if (data.site_name != "" && data.site_name != null) //sitename
            {
                var checkSiteName = common.xss_input_string(data.site_name, data.site_name.Length);
                if (checkSiteName == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtSiteName", text = "รูปแบบชื่อศูนย์บริการไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtSiteName", text = "กรุณาระบุชื่อศูนย์บริการ"
                });
            }

            if (data.contact1 != "" && data.contact1 != null) //contact1
            {
                var checkContact1 = common.xss_input_string(data.contact1, data.contact1.Length);
                if (checkContact1 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtContactName1", text = "รูปแบบผู้ติดต่อไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtContactName1", text = "กรุณาระบุผู้ติดต่อ"
                });
            }

            if (data.contact2 != "" && data.contact2 != null) //contact2
            {
                var checkContact2 = common.xss_input_string(data.contact2, data.contact2.Length);
                if (checkContact2 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtContactName2", text = "รูปแบบผู้ติดต่อไม่ถูกต้อง"
                    });
                }
            }

            if (data.contact3 != "" && data.contact3 != null) //contact3
            {
                var checkContact3 = common.xss_input_string(data.contact3, data.contact3.Length);
                if (checkContact3 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtContactName3", text = "รูปแบบผู้ติดต่อไม่ถูกต้อง"
                    });
                }
            }

            if (data.tel1 != "" && data.tel1 != null) //tel1
            {
                var checkTel1 = common.IsNumeric(data.tel1);
                if (checkTel1 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtTel1", text = "รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtTel1", text = "กรุณาระบุหมายเลขโทรศัพท์"
                });
            }

            if (data.tel2 != "" && data.tel2 != null) //tel2
            {
                var checkTel2 = common.IsNumeric(data.tel2);
                if (checkTel2 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtTel2", text = "รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง"
                    });
                }
            }

            if (data.tel3 != "" && data.tel3 != null) //tel3
            {
                var checkTel3 = common.IsNumeric(data.tel3);
                if (checkTel3 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtTel3", text = "รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง"
                    });
                }
            }

            if (data.email1 != "" && data.email1 != null) //email1
            {
                var checkEmail1 = common.isEmailFormat(data.email1);
                if (checkEmail1 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtEmail1", text = "รูปแบบอีเมล์ไม่ถูกต้อง"
                    });
                }
            }
            else
            {
                validates.Add(new validate_all {
                    name_div = "#txtEmail1", text = "กรุณาระบุอีเมล์"
                });
            }

            if (data.email2 != "" && data.email2 != null) //email2
            {
                var checkEmail2 = common.isEmailFormat(data.email2);
                if (checkEmail2 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtEmail2", text = "รูปแบบอีเมล์ไม่ถูกต้อง"
                    });
                }
            }

            if (data.email3 != "" && data.email3 != null) //email3
            {
                var checkEmail3 = common.isEmailFormat(data.email3);
                if (checkEmail3 == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtEmail3", text = "รูปแบบอีเมล์ไม่ถูกต้อง"
                    });
                }
            }

            if (data.site_address != "" && data.site_address != null) //site_address
            {
                var checkSiteAddress = common.xss_input_string(data.site_address, data.site_address.Length);
                if (checkSiteAddress == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtSiteAddressNo", text = "รูปแบบเลขที่อยู่ไม่ถูกต้อง"
                    });
                }
            }

            if (data.village != "" && data.village != null) //village
            {
                var checkVillage = common.xss_input_string(data.village, data.village.Length);
                if (checkVillage == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtVillage", text = "รูปแบบหมู่บ้าน / ตึกไม่ถูกต้อง"
                    });
                }
            }

            if (data.moo != "" && data.moo != null) //moo
            {
                var checkMoo = common.xss_input_string(data.moo, data.moo.Length);
                if (checkMoo == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtMoo", text = "รูปแบบหมู่ / ซอยไม่ถูกต้อง"
                    });
                }
            }

            if (data.street != "" && data.street != null) //street
            {
                var checkStreet = common.xss_input_string(data.street, data.street.Length);
                if (checkStreet == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtStreet", text = "รูปแบบถนนไม่ถูกต้อง"
                    });
                }
            }

            if (data.sub_district != null) //sub_district
            {
                var checkSubDistrict = common.IsNumeric(data.sub_district);
                if (checkSubDistrict == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#selectSubDistrict", text = "รูปแบบอำเภอ / เขตไม่ถูกต้อง"
                    });
                }
            }

            if (data.district != null) //district
            {
                var checkDistrict = common.IsNumeric(data.district);
                if (checkDistrict == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#selectDistrict", text = "รูปแบบตำบล / แขวงไม่ถูกต้อง"
                    });
                }
            }

            if (data.province != null) //province
            {
                var checkProvince = common.IsNumeric(data.province);
                if (checkProvince == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#selectProvince", text = "รูปแบบจังหวัดไม่ถูกต้อง"
                    });
                }
            }

            if (data.postcode != null) //postcode
            {
                var checkPostcode = common.IsNumeric(data.postcode);
                if (checkPostcode == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtPostcode", text = "รูปแบบรหัสไปรษณีย์ไม่ถูกต้อง"
                    });
                }
            }

            if (data.store_lat != null) //store_lat
            {
                var checkStoreLat = common.xss_input_string(data.store_lat, data.store_lat.Length);
                if (checkStoreLat == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtstore_lat", text = "รูปแบบไม่ถูกต้อง"
                    });
                }
            }

            if (data.store_long != null) //store_long
            {
                var checkStoreLong = common.xss_input_string(data.store_long, data.store_long.Length);
                if (checkStoreLong == false)
                {
                    validates.Add(new validate_all {
                        name_div = "#txtstore_long", text = "รูปแบบไม่ถูกต้อง"
                    });
                }
            }

            //Check
            //var getName = User.Identity.Name;
            //var idStore = 0;
            //if (getName != "")
            //{
            //    Guid Checksite = (Guid)Membership.GetUser(getName).ProviderUserKey;
            //    idStore = db.tb_mapping_store.Where(w => w.account_guid == Checksite).Select(s => s.site_id).FirstOrDefault();
            //}

            if (validates.Count() == 0 && User.IsInRole("admin"))
            {
                var CheckUser = Membership.GetUser(data.code_store);
                if (CheckUser == null)
                {
                    MembershipUser newUser = Membership.CreateUser(data.code_store, "Pa@sswd2019", data.email1);
                    Membership.UpdateUser(newUser);
                    Roles.AddUserToRole(data.code_store, "shop");
                }

                var  getGuid     = Membership.GetUser(data.code_store).ProviderUserKey;
                Guid convertGuid = new Guid(getGuid.ToString());

                Guid     id      = Guid.NewGuid();
                tb_store obj_new = new tb_store();
                obj_new.store_guid         = id;
                obj_new.create_date        = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, zone);
                obj_new.update_date        = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, zone);
                obj_new.user_update        = name;
                obj_new.is_delete          = 0;
                obj_new.site_name          = data.site_name;
                obj_new.code_store         = data.code_store;
                obj_new.contact1           = data.contact1;
                obj_new.contact2           = data.contact2;
                obj_new.contact3           = data.contact3;
                obj_new.tel1               = data.tel1;
                obj_new.tel2               = data.tel2;
                obj_new.tel3               = data.tel3;
                obj_new.email1             = data.email1;
                obj_new.email2             = data.email2;
                obj_new.email3             = data.email3;
                obj_new.site_address       = data.site_address;
                obj_new.village            = data.village;
                obj_new.moo                = data.moo;
                obj_new.street             = data.street;
                obj_new.sub_district       = data.sub_district;
                obj_new.district           = data.district;
                obj_new.province           = data.province;
                obj_new.country            = data.country;
                obj_new.postcode           = data.postcode;
                obj_new.store_close        = data.store_close;
                obj_new.store_opendate1    = data.store_opendate1;
                obj_new.store_to_opendate1 = data.store_to_opendate1;
                obj_new.store_opentime1    = data.store_opentime1;
                obj_new.store_to_opentime1 = data.store_to_opentime1;
                obj_new.store_opendate2    = data.store_opendate2;
                obj_new.store_to_opendate2 = data.store_to_opendate2;
                obj_new.store_opentime2    = data.store_opentime2;
                obj_new.store_to_opentime2 = data.store_to_opentime2;
                obj_new.store_lat          = data.store_lat == "" ? null : data.store_lat;
                obj_new.store_long         = data.store_long == "" ? null : data.store_long;

                db.tb_store.Add(obj_new);
                db.SaveChanges();

                //set map
                tb_mapping_store obj_map = new tb_mapping_store();
                obj_map.account_guid = convertGuid;
                obj_map.site_id      = obj_new.id;
                db.tb_mapping_store.Add(obj_map);
                db.SaveChanges();

                return(true);
            }
            else
            {
                string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(validates);
                return(new ContentResult()
                {
                    Content = jsonString,
                    ContentType = "application/json"
                });
            }
        }