Esempio n. 1
0
 private void CheckUserData(MemberDataModel member, string operation, ref ApiResult apiResult)
 {
     List<string> errors = new List<string>();
     Regex rgx4Email = new Regex(@"^(([^<>()[\]\\.,;:\s@\']+(\.[^<>()[\]\\.,;:\s@\']+)*)|(\'.+\'))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$");
     Regex rgx4Phone = new Regex(@"^[0-9]*$");
     switch (operation)
     {
         case "create":
             if (string.IsNullOrEmpty(member.Account)) { errors.Add("請輸入帳號"); }
             if (string.IsNullOrEmpty(member.Password)) { errors.Add("請輸入密碼"); }
             if (string.IsNullOrEmpty(member.Phone)) { errors.Add("請輸入電話"); }
             if (string.IsNullOrEmpty(member.CName)) { errors.Add("請輸入中文名字"); }
             if (string.IsNullOrEmpty(member.EName)) { errors.Add("請輸入英文名字"); }
             if (string.IsNullOrEmpty(member.TitleCode)){ errors.Add("請選擇職位"); }
             if(!rgx4Email.IsMatch(member.Email)) { errors.Add("信箱格式錯誤"); }
             if (!rgx4Phone.IsMatch(member.Phone)) { errors.Add("聯絡電話格式錯誤"); }
             break;
         case "update":
             if (string.IsNullOrEmpty(member.Account)) { errors.Add("請輸入帳號"); }
             if (string.IsNullOrEmpty(member.Password)) { errors.Add("請輸入密碼"); }
             if (string.IsNullOrEmpty(member.Phone)) { errors.Add("請輸入電話"); }
             if (string.IsNullOrEmpty(member.CName)) { errors.Add("請輸入中文名字"); }
             if (string.IsNullOrEmpty(member.EName)) { errors.Add("請輸入英文名字"); }
             if (string.IsNullOrEmpty(member.TitleCode)) { errors.Add("請選擇職位"); }
             if (!rgx4Email.IsMatch(member.Email)) { errors.Add("信箱格式錯誤"); }
             if (!rgx4Phone.IsMatch(member.Phone)) { errors.Add("聯絡電話格式錯誤"); }
             break;
     }
     if(errors.Count() > 0)
     {
         apiResult.Message = String.Join(", ", errors.ToArray());
         apiResult.Status = Models.Enum.ApiStatus.CustomerError;
         return;
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 取得一筆使用者資料
        /// </summary>
        /// <returns></returns>
        public MemberDataModel GetMemberDataByID(string empID)
        {
            MemberDataModel member        = new MemberDataModel();
            AccountModule   accountModule = new AccountModule();
            var             empProtoModel = accountModule.GetPrototypeEmployeeByID(empID);

            if (empProtoModel == null)
            {
                throw new Exception("無法取得帳號訊息");
            }
            member.EmpID       = empProtoModel.EmployeeID;
            member.EmpName     = empProtoModel.EmployeeName;
            member.ADAccount   = empProtoModel.ADAccount;
            member.CostDepID   = empProtoModel.CostDepartmentID;
            member.DepID       = empProtoModel.DepartmentID_FK;
            member.Disable     = empProtoModel.Disabled;
            member.DisableDate = empProtoModel.Disabled == true?empProtoModel.DisabledDate.To10CharString() : string.Empty;

            member.Nationality         = empProtoModel.NationalType;
            member.Gender              = empProtoModel.SexType;
            member.UpdateUserADAccount = empProtoModel.Modifier;
            member.UpdateDate          = empProtoModel.ModifyDate;
            member.Role = this.GetUserRoleByUserID(empID);
            return(member);
        }
Esempio n. 3
0
        public IHttpActionResult Login(MemberDataModel member) {

            if (!string.IsNullOrEmpty(member.FbToken))
            {
                var client = new FacebookClient(member.FbToken);
                dynamic fbResult = client.Get("me", new { fields = "name,id,email" });
                member.FbId = fbResult.id;
            }

            if(!string.IsNullOrEmpty(member.Password)) member.Password = WD.Common.Utility.SecurityUtility.AESEnCrypt(member.Password);
            ApiResult apiResult = new ApiResult();
            MemberDataModel result = this.MemberService.Login(member);
            if (result == null)
            {
                apiResult.Message = string.IsNullOrEmpty(member.FbId) ? "登入失敗" : "請先註冊帳號唷";
                apiResult.Status = Models.Enum.ApiStatus.CustomerError;
            }
            else
            {
                this.CreateCookie(result);
                
                apiResult.Data = result;
                apiResult.Message = "登入成功";
            }
            
            return Ok(apiResult);
        }
Esempio n. 4
0
        private void Start()
        {
            LoadResources resources = new LoadResources();

            resources.Initialize();

            //アクターの作成とメンバーの追加
            ActorDataModel  actorData  = ActorDataModel.Instance;
            MemberDataModel memberData = MemberDataModel.Instance;

            memberData.Add(ActorLogic.Create("Mandrake", 3));
            memberData.Add(ActorLogic.Create("Slime", 3));
            memberData.Add(ActorLogic.Create("MechanicSoldier", 3));
            memberData.Add(ActorLogic.Create("Kyubi", 3));

            //エネミーの作成
            EnemyDataModel enemyData = EnemyDataModel.Instance;

            enemyData.Initialize();
            enemyData.Add(EnemyLogic.Create("Goblin", 3));
            enemyData.Add(EnemyLogic.Create("GreenDragon", 3));
            enemyData.Add(EnemyLogic.Create("Goblin", 4));

            //アイテム
            InventoryDataModel.GetInstance().StartUp();

            var manager = gameObject.GetComponent <BattleManager>();

            manager.Initialize();
        }
Esempio n. 5
0
        public ActionResult MemberAdd(MemberDataModel model)
        {
            Exception       error  = null;
            MemberDataModel result = new MemberDataModel();

            try
            {
                result = this.Repository.MemberSave(model, Enums.DataSaveMode.Add);
                if (result == null)
                {
                    throw new Exception("新增使用者失敗");
                }
            }
            catch (Exception ex)
            {
                error = ex;
            }

            if (error != null)
            {
                ViewBag.AddFail = error.Message;
                return(View());
            }
            return(RedirectToAction("MemBerEdit", new { empID = result.EmpID }));
        }
Esempio n. 6
0
 public IHttpActionResult DeleteUserData(MemberDataModel member)
 {
     ApiResult apiResult = new ApiResult();
     MemberDataModel user = this.GetUser();
     if (user == null || !MemberService.IsAdmin(user)) {
         apiResult.Message = "非法使用";
         apiResult.Status = Models.Enum.ApiStatus.CustomerError;
         return Ok(apiResult);
     }
     try
     {
         SqlResult sqlResult = this.MemberService.DeleteUserData(member.PerSerilNo);
         if (sqlResult.Status == "success")
         {
             apiResult.Data = this.MemberService.QueryUserData(new MemberFilterModel());
             apiResult.Message = sqlResult.Message;
             apiResult.Status = Models.Enum.ApiStatus.Success;
         }
         else
         {
             apiResult.Message = sqlResult.Message;
             apiResult.Status = Models.Enum.ApiStatus.CustomerError;
         }
     }
     catch
     {
         apiResult.Message = "系統錯誤,請聯絡系統管理員";
         apiResult.Status = Models.Enum.ApiStatus.CustomerError;
     }
     return Ok(apiResult);
 }
Esempio n. 7
0
        public bool Register(MemberDataModel member)
        {
            string sql = @"EXEC sp_user_register @Account,@Password,@Email,@TitleCode,@UserId,@EName,@CName,@FbId,@GenderCode,@Phone,@Birthday";

            object parameters = new
            {
                Account    = member.Account == null ? string.Empty : member.Account,
                Password   = member.Password == null ? string.Empty : member.Password,
                Email      = member.Email == null ? string.Empty : member.Email,
                TitleCode  = member.TitleCode == null ? "1" : member.TitleCode,
                UserId     = member.EName == null ? string.Empty : member.EName.Replace(" ", "_"),
                EName      = member.EName == null ? string.Empty : member.EName,
                CName      = member.CName == null ? string.Empty : member.CName,
                FbId       = member.FbId == null ? string.Empty :member.FbId,
                GenderCode = member.GenderCode == null ? "0" : member.GenderCode,
                Phone      = member.Phone == null ? string.Empty : member.Phone,
                Birthday   = member.Birthday == null ? string.Empty : member.Birthday
            };

            using (var connection = new SqlConnection(this.GetDbConnectionString()))
            {
                string result = connection.ExecuteScalar(sql, parameters).ToString();
                if (result == "true")
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Esempio n. 8
0
        public IHttpActionResult DeleteCourse(CourseDataModel course)
        {
            MemberDataModel member    = this.GetUser();
            ApiResult       apiResult = new ApiResult();

            if (member != null && MemberService.IsAdmin(member))
            {
                apiResult.Data    = this.CourseService.DeleteCourse(course.CourseSerilNo);
                apiResult.Status  = Models.Enum.ApiStatus.Success;
                apiResult.Message = "刪除成功";
            }
            else
            {
                apiResult.Status  = Models.Enum.ApiStatus.Fail;
                apiResult.Message = "不要亂改";
            }

            return(Ok(apiResult));

            //ApiResult apiResult = new ApiResult();
            //apiResult.Data = this.CourseService.DeleteCourse(course.CourseSerilNo);
            //apiResult.Status = Models.Enum.ApiStatus.Success;
            //apiResult.Message = "刪除成功";
            //return Ok(apiResult);
        }
Esempio n. 9
0
        public MemberDataModel Login(MemberDataModel member)
        {
            if (!string.IsNullOrEmpty(member.FbId))
            {
                return(this.FbLogin(member));
            }
            string sql        = @"SELECT ACCOUNT as Account,
	                               EMAIL as Email,
                                   usr.TITLE_CODE as TitleCode,
								   titcode.TITLE_NAME as TitleName,
	                               PER_SERIL_NO as PerSerilNo,
                                   E_NAME as EName,
                                   C_NAME as CName
                            FROM USERS(NOLOCK) as usr JOIN TITLE_CODE as titcode
							ON usr.TITLE_CODE = titcode.TITLE_CODE 
                            WHERE ACCOUNT = @Account AND PASSWORD = @Password";
            object parameters = new
            {
                Account  = member.Account == null ? string.Empty : member.Account,
                Password = member.Password == null ? string.Empty : member.Password
            };

            using (var connection = new SqlConnection(this.GetDbConnectionString()))
            {
                MemberDataModel result = connection.Query <MemberDataModel>(sql, parameters).FirstOrDefault();
                return(result);
            }
        }
Esempio n. 10
0
        public IHttpActionResult AddMember([FromBody] MemberModel member)
        {
            MemberModel memberDetail = new MemberModel();
            var         memberModel  = new MemberDataModel();

            memberDetail = memberModel.AddMember(member);
            return(Ok(memberDetail));
        }
Esempio n. 11
0
        /// <summary>
        /// 儲存一筆會員使用者資料
        /// </summary>
        /// <param name="member"></param>
        public MemberDataModel MemberSave(MemberDataModel member, DataSaveMode mode)
        {
            Employee      empProtoModel = new Employee();
            string        empID         = member.EmpID;
            AccountModule accountModule = new AccountModule();

            try
            {
                if (mode == DataSaveMode.Add)
                {
                    var protoEmp = accountModule.GetSmartManEmployeeProtoDataByID(empID);
                    if (protoEmp == null)
                    {
                        throw new Exception("志元資料庫中查無員工編號:" + member.EmpID + " 相關資訊");
                    }
                    var portalEmp = accountModule.GetPrototypeEmployeeByID(member.EmpID);
                    if (portalEmp != null)
                    {
                        throw new Exception("Portal資料庫中已有員工編號:" + member.EmpID + " 的資料");
                    }
                    empProtoModel            = new Employee();
                    empProtoModel.CreateDate = DateTime.UtcNow.AddHours(8);
                    empProtoModel.Creator    = SignInProvider.Instance.User.ADAccount;
                }
                else
                {
                    empProtoModel = accountModule.GetPrototypeEmployeeByAccountID(member.ADAccount, this.PorDB);
                }
                empProtoModel.EmployeeID       = member.EmpID;
                empProtoModel.EmployeeName     = member.EmpName;
                empProtoModel.ADAccount        = member.ADAccount;
                empProtoModel.CostDepartmentID = member.CostDepID;
                empProtoModel.DepartmentID_FK  = member.DepID;
                empProtoModel.Disabled         = member.Disable;
                empProtoModel.DisabledDate     = member.Disable ? (DateTime?)Convert.ToDateTime(member.DisableDate) : null;
                empProtoModel.NationalType     = member.Nationality;
                empProtoModel.SexType          = member.Gender;
                empProtoModel.Modifier         = SignInProvider.Instance.User.ADAccount;
                empProtoModel.ModifyDate       = DateTime.UtcNow.AddHours(8);
                this.ProcessRoleSave(empID, member.Role);
                if (mode == DataSaveMode.Edit)
                {
                    this.PorDB.Entry(empProtoModel).State = EntityState.Modified;
                }
                else
                {
                    this.PorDB.Employee.Add(empProtoModel);
                }
                this.PorDB.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            MemberDataModel result = this.GetMemberDataByID(empID);

            return(result);
        }
Esempio n. 12
0
    /// <summary>
    /// Callbacks the www success.
    /// </summary>
    /// <param name="response">Response.</param>
    private void CallbackWebRequestSuccess(string response)
    {
        //Json の内容を MemberData型のリストとしてデコードする。
        _memberList = MemberDataModel.DeserializeFromJson(response);

        //memberList ここにデコードされたメンバーリストが格納される。
        //成功
        _displayField.text = "";
    }
Esempio n. 13
0
        /// <summary>
        /// 提供view下拉選單觸發事件 取得忘刷檢視頁所需資料
        /// </summary>
        /// <param name="empID"></param>
        /// <returns></returns>
        public ForgetPunchViewModel GetForgetPunchViewDataByEmpID(string empID, string date)
        {
            if (!string.IsNullOrEmpty(date))
            {
                #region 判斷假日

                bool isHasRecord = QueryHasDailyOnOff(date);
                if (!isHasRecord)
                {
                    throw new Exception(date + " 卡鐘資料尚未轉入資料庫,無法申請忘刷.");
                }

                #endregion 判斷假日

                #region 判斷假日

                bool isHoliday = CheckDateIsHolidayByEmpID(empID, date);
                if (isHoliday)
                {
                    throw new Exception(date + " 為例假日,無法申請忘刷.");
                }

                #endregion 判斷假日
            }

            ForgetPunchViewModel result       = new ForgetPunchViewModel();
            WorkTypeModel        tempWorkType = GetEmployeWorkTypeByEmpID(empID);
            result.WorkType = new WorkTypeModel()
            {
                DefaultWorkBeginTIme = string.Format("{0}:{1}", tempWorkType.DefaultWorkBeginTIme.Substring(0, 2), tempWorkType.DefaultWorkBeginTIme.Substring(2, 2)),
                DefaultWorkEndTIme   = string.Format("{0}:{1}", tempWorkType.DefaultWorkEndTIme.Substring(0, 2), tempWorkType.DefaultWorkEndTIme.Substring(2, 2))
            };
            MemberRepository MemRepository = new MemberRepository();
            MemberDataModel  member        = MemRepository.GetMemberDataByID(empID);
            var dep = PorDB.Department.Where(o => o.DepartmentID == member.DepID).FirstOrDefault();
            result.DepartmantName = dep.DepartmentName;

            if (!string.IsNullOrEmpty(date))
            {
                date = date.Replace("-", string.Empty);
                decimal filterDate = Convert.ToDecimal(date);
                var     data       = SmartManDB.DAILYONOFF.Where(o => o.EMPLOYECD == empID && o.DUTYDATE == filterDate).FirstOrDefault();
                if (data != null)
                {
                    var dutyDateStr = data.DUTYDATE.ToString();
                    result.WorkBeginTime = string.IsNullOrEmpty(data.BEGINTIME) ? "查無打卡記錄" : ToDateTimeString(dutyDateStr, data.BEGINTIME);
                    result.WorkEndTime   = string.IsNullOrEmpty(data.ENDTIME) ? "查無打卡記錄" : ToDateTimeString(dutyDateStr, data.ENDTIME);
                }
                else
                {
                    result.WorkBeginTime = "查無打卡記錄";
                    result.WorkEndTime   = "查無打卡記錄";
                }
            }
            return(result);
        }
Esempio n. 14
0
 public IHttpActionResult ValidateToken() {
     MemberDataModel member = this.GetUser();
     ApiResult apiResult = new ApiResult();
     if (member!=null && MemberService.IsAdmin(member))
     {
         apiResult.Status = Models.Enum.ApiStatus.Success;
         apiResult.Message = "驗證成功";
     }
     else
     {
         apiResult.Status = Models.Enum.ApiStatus.Fail;
         apiResult.Message = "不要亂改";
     }
     return Ok(apiResult);
 }
Esempio n. 15
0
        private void CreateCookie(MemberDataModel member) {
            var cookies = HttpContext.Current.Response.Cookies;

            //新增表單驗證用的票證
            var ticket = new FormsAuthenticationTicket(1,
                member.Account,                             //使用者名稱
                DateTime.Now,                               //發行時間
                DateTime.Now.AddMinutes(120),               //有效期限
                false,                                      //是否將 Cookie 設定成 Session Cookie,如果是則 Cookie 會在瀏覽器關閉後移除
                JsonConvert.SerializeObject(member),        //將要記錄的使用者資訊轉換為 JSON 字串
                FormsAuthentication.FormsCookiePath);       //儲存 Cookie 的路徑

            //將票證加密
            var encryptTicket = FormsAuthentication.Encrypt(ticket);

            //將票證寫入 Cookie
            cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encryptTicket));
            
        }
Esempio n. 16
0
        public IHttpActionResult CreateUserByAdmin(MemberDataModel member)
        {
            ApiResult apiResult = new ApiResult();
            MemberDataModel user = this.GetUser();
            if (user == null || !MemberService.IsAdmin(user))
            {
                apiResult.Message = "非法使用";
                apiResult.Status = Models.Enum.ApiStatus.CustomerError;
                return Ok(apiResult);
            }

            member.Password = WD.Common.Utility.SecurityUtility.AESEnCrypt(member.Password);

            this.CheckUserData(member, "create", ref apiResult);
            
            if(apiResult.Status == Models.Enum.ApiStatus.CustomerError)
            {
                return Ok(apiResult);
            }

            try
            {
                bool isFinishRegister = this.MemberService.Register(member);
                if (isFinishRegister)
                {
                    apiResult.Data = this.MemberService.QueryUserData(new MemberFilterModel());
                    apiResult.Message = "新增成功";
                    apiResult.Status = Models.Enum.ApiStatus.Success;
                }
                else
                {
                    apiResult.Message = "新增失敗,已有相同帳號";
                    apiResult.Status = Models.Enum.ApiStatus.CustomerError;
                }
            }
            catch (Exception e)
            {
                apiResult.Message = "系統錯誤,請聯絡系統管理員";
                apiResult.Status = Models.Enum.ApiStatus.Fail;
            }
            return Ok(apiResult);
        }
Esempio n. 17
0
        public static bool IsValid(this Member member)
        {
            bool retVal = true;

            retVal |= !String.IsNullOrWhiteSpace(member.Name);
            retVal |= !String.IsNullOrWhiteSpace(member.LastName);
            retVal |= DateTime.Now.Year - member.Birth.Year < 150;

            var x         = new MemberDataModel();
            var ISTATCode = x.GetISTATCode(member.BirthLocality);

            if (retVal |= !string.IsNullOrWhiteSpace(ISTATCode))
            {
                retVal |= CodiceFiscale.ControlloFormaleOK(member.FiscalCode, member.Name, member.LastName, member.Birth, member.Gender.ToString("G")[0], ISTATCode);
            }
            if (member.Address != null)
            {
                if (!string.IsNullOrWhiteSpace(member.Address.FormattedAddress))
                {
                    if (!member.Address.IsServiceValidated())
                    {
                        member.Address.GoogleMapValidate(@"AIzaSyCLTiM7knDkCFqBIbafAlL_96ONIROU-Eo");
                    }
                }
                else
                {
                    retVal |= false;
                }
            }
            var mailAttrib = new System.ComponentModel.DataAnnotations.EmailAddressAttribute();


            retVal |= String.IsNullOrEmpty(member.Mail) || mailAttrib.IsValid(member.Mail);
            retVal |= !String.IsNullOrWhiteSpace(member.Phone);

            // no check HealthCertificate
            retVal |= member.Status != null;
            // no check Affiliations

            return(retVal);
        }
Esempio n. 18
0
        public bool IsAdmin(MemberDataModel member)
        {
            string sql        = @"SELECT * FROM USERS WHERE TITLE_CODE = '0' AND ACCOUNT=@Account";
            object parameters = new
            {
                Account = member.Account
            };

            using (var connection = new SqlConnection(this.GetDbConnectionString()))
            {
                List <MemberDataModel> result = connection.Query <MemberDataModel>(sql, parameters).ToList();
                if (result.Count == 0)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
Esempio n. 19
0
        private void Start()
        {
            LoadResources resources = new LoadResources();

            resources.Initialize();

            //アクターの作成とメンバーの追加
            ActorDataModel  actorData  = ActorDataModel.Instance;
            MemberDataModel memberData = MemberDataModel.Instance;

            memberData.Add(ActorLogic.Create("Mandrake", "植物", 1));
            memberData.Add(ActorLogic.Create("Slime", "すらりん", 1));
            memberData.Add(ActorLogic.Create("MechanicSoldier", "ろぼ兵士", 100));
            //memberData.Add(ActorLogic.Create("Kyubi", 1));

            //アイテム
            InventoryDataModel.GetInstance().StartUp();

            //ダンジョン
            DungeonPresenter.GetInstance().Initialize("FirstForest");
        }
Esempio n. 20
0
        public void Initialize()
        {
            _timelineSchedule = new List <int>();
            _timelineData     = new List <TimelineSerializableData>();
            MemberDataModel memberData = MemberDataModel.Instance;
            ActorDataModel  actorData  = ActorDataModel.Instance;

            memberData.Data.ForEach(x =>
            {
                BattlerSerializable battler = actorData.ByIndex(x.index);
                _timelineData.Add(new TimelineSerializableData
                {
                    id          = _timelineData.Count,
                    uniqId      = battler.uniqId,
                    battlerType = BattlerEnum.BattlerType.Actor,
                    timeLine    = Random.Range(battler.parameter.spd / 2,
                                               battler.parameter.spd)
                });
            });
            EnemyDataModel enemyData = EnemyDataModel.Instance;

            enemyData.Data.ForEach(x =>
            {
                _timelineData.Add(new TimelineSerializableData
                {
                    id          = _timelineData.Count,
                    uniqId      = x.uniqId,
                    battlerType = BattlerEnum.BattlerType.Enemy,
                    timeLine    = Random.Range(x.parameter.spd / 2, x.parameter.spd)
                });
            });
            TimelineCalc();
            for (int i = 0; i < SCHEDULE_SIZE; i++)
            {
                TimeLineForward();
            }

            _timelineView = new TimelineView();
            _timelineView.Initialize(this);
        }
Esempio n. 21
0
 public IHttpActionResult QueryUserData(MemberFilterModel arg) 
 {
     ApiResult apiResult = new ApiResult();
     MemberDataModel user = this.GetUser();
     if (user == null || !MemberService.IsAdmin(user))
     {
         apiResult.Message = "非法使用";
         apiResult.Status = Models.Enum.ApiStatus.CustomerError;
         return Ok(apiResult);
     }
     try
     {
         apiResult.Data = this.MemberService.QueryUserData(arg);
         apiResult.Message = "查詢成功";
         apiResult.Status = Models.Enum.ApiStatus.Success;
     }
     catch (Exception e)
     {
         apiResult.Message = "系統錯誤,請聯絡系統管理員";
         apiResult.Status = Models.Enum.ApiStatus.Fail;
     }
     return Ok(apiResult);
 }
Esempio n. 22
0
        public ActionResult MemberEdit(string empID)
        {
            MemberDataModel model = new MemberDataModel();

            try
            {
                if (string.IsNullOrEmpty(empID))
                {
                    empID = SignInProvider.Instance.User.ID;
                }
                model = this.Repository.GetMemberDataByID(empID);
            }
            catch (Exception ex)
            {
                ViewBag.AddFail = ex.Message;
            }
            finally
            {
                ViewBag.depList  = this.Repository.GetProtoDepartmentDataToSelectList();
                ViewBag.roleList = this.Repository.GetProtoRoleDataToSelectList();
            }
            return(View(model));
        }
Esempio n. 23
0
        public MemberDataModel FbLogin(MemberDataModel member)
        {
            string sql        = @"SELECT ACCOUNT as Account,
	                               EMAIL as Email,
                                   usr.TITLE_CODE as TitleCode,
								   titcode.TITLE_NAME as TitleName,
	                               PER_SERIL_NO as PerSerilNo,
                                   E_NAME as EName,
                                   C_NAME as CName
                            FROM USERS(NOLOCK) as usr JOIN TITLE_CODE as titcode
							ON usr.TITLE_CODE = titcode.TITLE_CODE 
                            WHERE FB_ID = @FbId";
            object parameters = new
            {
                FbId = member.FbId == null ? string.Empty : member.FbId
            };

            using (var connection = new SqlConnection(this.GetDbConnectionString()))
            {
                MemberDataModel result = connection.Query <MemberDataModel>(sql, parameters).FirstOrDefault();
                return(result);
            }
        }
Esempio n. 24
0
 public IHttpActionResult UpdateUserData(MemberDataModel member)
 {
     ApiResult apiResult = new ApiResult();
     MemberDataModel user = this.GetUser();
     if (user == null || !MemberService.IsAdmin(user))
     {
         apiResult.Message = "非法使用";
         apiResult.Status = Models.Enum.ApiStatus.CustomerError;
         return Ok(apiResult);
     }
     try
     {
         if (member.IsModifyPassword)
         {
             member.Password = WD.Common.Utility.SecurityUtility.AESEnCrypt(member.Password);
         }
         bool isSuccesful = this.MemberService.UpdateUserData(member);
         if (isSuccesful)
         {
             apiResult.Data = this.MemberService.QueryUserData(new MemberFilterModel());
             apiResult.Message = "更新成功";
             apiResult.Status = Models.Enum.ApiStatus.Success;
         }
         else
         {
             apiResult.Message = "更新失敗";
             apiResult.Status = Models.Enum.ApiStatus.CustomerError;
         }
     }
     catch
     {
         apiResult.Message = "系統錯誤,請聯絡系統管理員";
         apiResult.Status = Models.Enum.ApiStatus.CustomerError;
     }
     return Ok(apiResult);
 }
Esempio n. 25
0
        public IHttpActionResult Register(MemberDataModel member) {
            if(!string.IsNullOrEmpty(member.FbToken))
            {
                var client = new FacebookClient(member.FbToken);
                dynamic fbResult = client.Get("me", new { fields = "name,id,email" });
                member.FbId = fbResult.id;
            }
            

            member.Password = WD.Common.Utility.SecurityUtility.AESEnCrypt(member.Password);
            ApiResult apiResult = new ApiResult();
            bool isFinishRegister = this.MemberService.Register(member);
            if (isFinishRegister)
            {
                apiResult.Status = Models.Enum.ApiStatus.Success;
                apiResult.Message = "註冊成功";
            }
            else
            {
                apiResult.Status = Models.Enum.ApiStatus.CustomerError;
                apiResult.Message = "註冊失敗,已有相同帳號";
            }
            return Ok(apiResult);
        }
Esempio n. 26
0
        public IHttpActionResult CreateCourse(CourseDataModel newCourse)
        {
            MemberDataModel member    = this.GetUser();
            ApiResult       apiResult = new ApiResult();

            if (member != null && MemberService.IsAdmin(member))
            {
                apiResult.Data    = CourseService.CreateCourse(newCourse);
                apiResult.Status  = Models.Enum.ApiStatus.Success;
                apiResult.Message = "新增成功";
            }
            else
            {
                apiResult.Status  = Models.Enum.ApiStatus.Fail;
                apiResult.Message = "不要亂改";
            }

            return(Ok(apiResult));


            //ApiResult result = new ApiResult();
            //result.Data = CourseService.CreateCourse(newCourse);
            //return Ok(result);
        }
Esempio n. 27
0
        public ActionResult MemberEdit(MemberDataModel model)
        {
            MemberDataModel result = new MemberDataModel();

            try
            {
                result = this.Repository.MemberSave(model, Enums.DataSaveMode.Edit);
                if (result == null)
                {
                    throw new Exception("更新使用者失敗");
                }
            }
            catch (Exception ex)
            {
                ViewBag.AddFail = ex.Message;
            }
            finally
            {
                ViewBag.depList  = this.Repository.GetProtoDepartmentDataToSelectList();
                ViewBag.roleList = this.Repository.GetProtoRoleDataToSelectList();
            }
            ViewBag.AddSuccess = "Success";
            return(View(model));
        }
Esempio n. 28
0
        public bool UpdateUserData(MemberDataModel member)
        {
            string sql        = @"UPDATE [dbo].[USERS]
                           SET [EMAIL] = @Email
                              ,[TITLE_CODE] = @TitleCode
                              ,[MOD_DATE] = GETDATE()
                              ,[E_NAME] = @EName
                              ,[C_NAME] = @CName
                              ,[USER_ID] = @UserId
                              ,[PHONE] = @Phone
                              ,[BIRTHDAY] = @Birthday
                              ,[GENDER_CODE] = @GenderCode
                              ,[IS_OUT] = @IsOut
                              ,[PASSWORD] = @Password
                         WHERE USERS.PER_SERIL_NO = @PerSerilNo";
            object parameters = new
            {
                Email      = member.Email == null ? string.Empty : member.Email,
                TitleCode  = member.TitleCode,
                EName      = member.EName,
                CName      = member.CName,
                UserId     = member.EName.Replace(" ", "_"),
                Phone      = member.Phone,
                Birthday   = member.Birthday == null ? string.Empty : member.Birthday,
                GenderCode = member.GenderCode == null ? string.Empty : member.GenderCode,
                IsOut      = member.IsOut,
                PerSerilNo = member.PerSerilNo,
                Password   = member.Password
            };

            using (var connection = new SqlConnection(this.GetDbConnectionString()))
            {
                int affectedRows = connection.Execute(sql, parameters);
                return(affectedRows != 0);
            }
        }
Esempio n. 29
0
        public static bool IsValid(this Member member, string property)
        {
            bool retVal = true;

            switch (property)
            {
            case "Name":
                retVal |= !String.IsNullOrWhiteSpace(member.Name);
                break;

            case "LastName":
                retVal |= !String.IsNullOrWhiteSpace(member.LastName);
                break;

            case "Birth":
                retVal |= DateTime.Now.Year - member.Birth.Year < 150 && DateTime.Now.Year - member.Birth.Year > 0;
                break;

            case "BirthLocality":
                var    bmdm      = new MemberDataModel();
                string ISTATCode = bmdm.GetISTATCode(member.BirthLocality);
                retVal |= !string.IsNullOrWhiteSpace(ISTATCode);
                break;

            case "FiscalCode":
                var fmdm       = new MemberDataModel();
                var ISTATCode2 = fmdm.GetISTATCode(member.BirthLocality);
                if (retVal |= !string.IsNullOrWhiteSpace(ISTATCode2))
                {
                    retVal |= CodiceFiscale.ControlloFormaleOK(member.FiscalCode, member.Name, member.LastName, member.Birth, member.Gender.ToString("G")[0], ISTATCode2);
                }
                break;

            case "Address":
                if (member.Address != null)
                {
                    if (!string.IsNullOrWhiteSpace(member.Address.FormattedAddress))
                    {
                        if (!member.Address.IsServiceValidated())
                        {
                            member.Address.GoogleMapValidate(@"AIzaSyCLTiM7knDkCFqBIbafAlL_96ONIROU-Eo");
                        }
                    }
                    else
                    {
                        retVal |= false;
                    }
                }
                break;

            case "Mail":
                var mailAttrib = new System.ComponentModel.DataAnnotations.EmailAddressAttribute();
                retVal |= String.IsNullOrEmpty(member.Mail) || mailAttrib.IsValid(member.Mail);
                break;

            case "Phone":
                retVal |= !String.IsNullOrWhiteSpace(member.Phone);
                break;

            case "Status":
                // no check HealthCertificate
                retVal |= member.Status != null;
                break;
            }
            return(retVal);
        }
Esempio n. 30
0
 public bool UpdateUserData(MemberDataModel membr)
 {
     return(this.MemberDao.UpdateUserData(membr));
 }