Esempio n. 1
0
        public async Task OnCommandClicked(CommandClickEventArgs <MyUserAdapterModel> args)
        {
            MyUserAdapterModel item = args.RowData as MyUserAdapterModel;

            if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdEdit)
            {
                CurrentRecord         = item.Clone();
                EditRecordDialogTitle = "修改紀錄";
                IsShowEditRecord      = true;
                isNewRecordMode       = false;
            }
            else if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdDelete)
            {
                CurrentNeedDeleteRecord = item;

                #region 檢查關聯資料是否存在
                var checkedResult = await CurrentService
                                    .BeforeDeleteCheckAsync(CurrentNeedDeleteRecord);

                await Task.Delay(100);

                if (checkedResult.Success == false)
                {
                    MessageBox.Show("400px", "200px", "警告",
                                    ErrorMessageMappingHelper.Instance.GetErrorMessage(checkedResult.MessageId));
                    await Task.Yield();

                    thisRazorComponent.NeedRefresh();
                    return;
                }
                #endregion

                ConfirmMessageBox.Show("400px", "200px", "警告", "確認要刪除這筆紀錄嗎?");
            }
        }
Esempio n. 2
0
        public async Task <string> CheckWetherCanChangePassword(MyUserAdapterModel myUserAdapterModel, string newPassword)
        {
            string result = "";

            CleanTrackingHelper.Clean <SystemEnvironment>(context);
            CleanTrackingHelper.Clean <MyUserPasswordHistory>(context);
            SystemEnvironment systemEnvironment = await context.SystemEnvironment
                                                  .OrderBy(x => x.Id)
                                                  .FirstOrDefaultAsync();

            string encodePassword = PasswordHelper.GetPasswordSHA(myUserAdapterModel.Salt, newPassword);

            if (encodePassword == myUserAdapterModel.Password)
            {
                result = "不可以變更成為現在正在使用的密碼";
            }
            else
            {
                if (systemEnvironment.EnablePasswordHistory)
                {
                    var history = await context.MyUserPasswordHistory
                                  .FirstOrDefaultAsync(x => x.MyUserId == myUserAdapterModel.Id &&
                                                       x.Password == encodePassword);

                    if (history != null)
                    {
                        result = "不可以變更成為之前用過的密碼";
                    }
                }
            }
            return(result);
        }
        public async Task <VerifyRecordResult> BeforeDeleteCheckAsync(MyUserAdapterModel paraObject)
        {
            if (paraObject.Account.ToLower() == MagicHelper.開發者帳號)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.開發者帳號不可以被刪除));
            }

            CleanTrackingHelper.Clean <MyUser>(context);
            var searchItem = await context.MyUser
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (searchItem == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄_要刪除的紀錄已經不存在資料庫上));
            }

            searchItem = await context.MyUser
                         .AsNoTracking()
                         .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (searchItem != null)
            {
                if (searchItem.Account.ToLower() == MagicHelper.開發者帳號)
                {
                    return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.開發者帳號不可以被刪除));
                }
            }
            else
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄_要刪除的紀錄已經不存在資料庫上));
            }
            return(VerifyRecordResultFactory.Build(true));
        }
        public async Task <VerifyRecordResult> UpdateAsync(MyUserAdapterModel paraObject)
        {
            try
            {
                MyUser itemData = Mapper.Map <MyUser>(paraObject);
                CleanTrackingHelper.Clean <MyUser>(context);
                MyUser item = await context.MyUser
                              .AsNoTracking()
                              .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

                if (item == null)
                {
                    return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法修改紀錄));
                }
                else
                {
                    CleanTrackingHelper.Clean <MyUser>(context);
                    context.Entry(itemData).State = EntityState.Modified;
                    await context.SaveChangesAsync();

                    CleanTrackingHelper.Clean <MyUser>(context);
                    return(VerifyRecordResultFactory.Build(true));
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, "修改記錄發生例外異常");
                return(VerifyRecordResultFactory.Build(false, "修改記錄發生例外異常", ex));
            }
        }
        public async Task <VerifyRecordResult> BeforeAddCheckAsync(MyUserAdapterModel paraObject)
        {
            if (paraObject.Account.ToLower() == MagicHelper.開發者帳號)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.開發者帳號不可以被新增));
            }

            var searchItem = await context.MyUser
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Account == paraObject.Account);

            if (searchItem != null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要新增的紀錄已經存在無法新增));
            }
            var searchMenuRoleItem = await context.MenuRole
                                     .AsNoTracking()
                                     .FirstOrDefaultAsync(x => x.Id == paraObject.MenuRoleId);

            if (searchMenuRoleItem == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.沒有指定功能表角色項目));
            }

            return(VerifyRecordResultFactory.Build(true));
        }
Esempio n. 6
0
        string GenerateRefreshToken(MyUserAdapterModel user)
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Account),
                new Claim(ClaimTypes.Name, user.Name),
                new Claim(ClaimTypes.Sid, user.Id.ToString()),
                new Claim(ClaimTypes.Role, $"RefreshToken"),
            };

            var token = new JwtSecurityToken
                        (
                issuer: tokenConfiguration.ValidIssuer,
                audience: tokenConfiguration.ValidAudience,
                claims: claims,
                expires: DateTime.Now.AddDays(tokenConfiguration.JwtRefreshExpireDays),
                //expires: DateTime.Now.AddMinutes(1),
                //notBefore: DateTime.Now.AddMinutes(-5),
                signingCredentials: new SigningCredentials(new SymmetricSecurityKey
                                                               (Encoding.UTF8.GetBytes(tokenConfiguration.IssuerSigningKey)),
                                                           SecurityAlgorithms.HmacSha512)
                        );
            string tokenString = new JwtSecurityTokenHandler().WriteToken(token);

            return(tokenString);
        }
Esempio n. 7
0
        string GenerateToken(MyUserAdapterModel user)
        {
            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Role, "User"),
                new Claim(ClaimTypes.NameIdentifier, user.Account),
                new Claim(ClaimTypes.Name, user.Name),
                new Claim(ClaimTypes.Sid, user.Id.ToString()),
            };

            if (user.IsManager == true)
            {
                claims.Add(new Claim(ClaimTypes.Role, "Administrator"));
            }

            var token = new JwtSecurityToken
                        (
                issuer: tokenConfiguration.ValidIssuer,
                audience: tokenConfiguration.ValidAudience,
                claims: claims,
                expires: DateTime.Now.AddMinutes(tokenConfiguration.JwtExpireMinutes),
                //notBefore: DateTime.Now.AddMinutes(-5),
                signingCredentials: new SigningCredentials(new SymmetricSecurityKey
                                                               (Encoding.UTF8.GetBytes(tokenConfiguration.IssuerSigningKey)),
                                                           SecurityAlgorithms.HmacSha512)
                        );
            string tokenString = new JwtSecurityTokenHandler().WriteToken(token);

            return(tokenString);
        }
Esempio n. 8
0
 public void OnPickerCompletion(MyUserAdapterModel e)
 {
     if (e != null)
     {
         CurrentRecord.ManagerId   = e.Id;
         CurrentRecord.ManagerName = e.Name;
     }
     ShowAontherRecordPicker = false;
 }
 public void OnPickerUserCompletion(MyUserAdapterModel e)
 {
     if (e != null)
     {
         CurrentRecord.EngineerId   = e.Id;
         CurrentRecord.EngineerName = e.Name;
     }
     ShowUserPicker = false;
 }
        public async Task <VerifyRecordResult> BeforeAddCheckAsync(MyUserAdapterModel paraObject)
        {
            var searchItem = await context.MyUser
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Account == paraObject.Account);

            if (searchItem != null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要新增的紀錄已經存在無法新增));
            }
            return(VerifyRecordResultFactory.Build(true));
        }
Esempio n. 11
0
        public async Task DisableIt(MyUserAdapterModel item)
        {
            if (item.Account.ToLower() == MagicHelper.開發者帳號)
            {
                MessageBox.Show("400px", "200px", "警告",
                                "開發者帳號不可以被停用", MessageBox.HiddenAsync);
                return;
            }
            await CurrentService.DisableIt(item);

            dataGrid.RefreshGrid();
        }
Esempio n. 12
0
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] MyUserDto data)
        {
            APIResult apiResult;

            #region 驗證 DTO 物件的資料一致性
            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
                return(Ok(apiResult));
            }
            #endregion

            var record = await myUserService.GetAsync(id);

            if (record != null && record.Id != 0)
            {
                MyUserAdapterModel recordTarget = mapper.Map <MyUserAdapterModel>(data);
                recordTarget.Id = id;
                var result = mapper.Map <MyUserDto>(recordTarget);

                #region 修改記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await myUserService.BeforeUpdateCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await myUserService.UpdateAsync(recordTarget);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted,
                                                       ErrorMessageEnum.None, payload: null);
                }
                else
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       verifyRecordResult.MessageId, payload: result);
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.沒有任何符合資料存在, payload: data);
            }
            return(Ok(apiResult));
        }
Esempio n. 13
0
        public async Task OnCommandClicked(CommandClickEventArgs <MyUserAdapterModel> args)
        {
            MyUserAdapterModel item = args.RowData as MyUserAdapterModel;

            if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdEdit)
            {
                CurrentRecord         = item.Clone();
                EditRecordDialogTitle = "修改紀錄";
                IsShowEditRecord      = true;
                isNewRecordMode       = false;
            }
            else if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdDelete)
            {
                CurrentNeedDeleteRecord = item;

                #region 檢查關聯資料是否存在
                var checkedResult = await CurrentService
                                    .BeforeDeleteCheckAsync(CurrentNeedDeleteRecord);

                await Task.Delay(100);

                if (checkedResult.Success == false)
                {
                    MessageBox.Show("400px", "200px", "警告",
                                    ErrorMessageMappingHelper.Instance.GetErrorMessage(checkedResult.MessageId),
                                    MessageBox.HiddenAsync);
                    await Task.Yield();

                    await thisView.NeedRefreshAsync();

                    return;
                }
                #endregion

                #region 刪除這筆紀錄
                await Task.Yield();

                var checkTask = ConfirmMessageBox.ShowAsync("400px", "200px", "警告",
                                                            "確認要刪除這筆紀錄嗎?", ConfirmMessageBox.HiddenAsync);
                await thisView.NeedRefreshAsync();

                var checkAgain = await checkTask;
                if (checkAgain == true)
                {
                    var verifyRecordResult = await CurrentService.DeleteAsync(CurrentNeedDeleteRecord.Id);

                    await TranscationResultHelper.CheckDatabaseResult(MessageBox, verifyRecordResult);

                    dataGrid.RefreshGrid();
                }
                #endregion
            }
        }
        public async Task <VerifyRecordResult> AddAsync(MyUserAdapterModel paraObject)
        {
            MyUser itemParameter = Mapper.Map <MyUser>(paraObject);

            CleanTrackingHelper.Clean <MyUser>(context);
            await context.MyUser
            .AddAsync(itemParameter);

            await context.SaveChangesAsync();

            CleanTrackingHelper.Clean <MyUser>(context);
            return(VerifyRecordResultFactory.Build(true));
        }
Esempio n. 15
0
        public async Task ChangePassword(MyUserAdapterModel myUserAdapterModel, string newPassword)
        {
            string encodePassword =
                PasswordHelper.GetPasswordSHA(myUserAdapterModel.Salt, newPassword);

            myUserAdapterModel.Password = encodePassword;
            var myUser = Mapper.Map <MyUser>(myUserAdapterModel);

            CleanTrackingHelper.Clean <MyUser>(context);
            context.Entry(myUser).State = EntityState.Modified;
            await context.SaveChangesAsync();

            CleanTrackingHelper.Clean <MyUser>(context);
        }
Esempio n. 16
0
        public async Task <IActionResult> Post([FromBody] MyUserDto data)
        {
            APIResult apiResult;

            #region 驗證 DTO 物件的資料一致性
            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
                return(Ok(apiResult));
            }
            #endregion

            MyUserAdapterModel record = mapper.Map <MyUserAdapterModel>(data);
            if (record != null)
            {
                var result = mapper.Map <MyUserDto>(record);

                #region 新增記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await myUserService.BeforeAddCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await myUserService.AddAsync(record);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK,
                                                       ErrorMessageEnum.None, payload: null);
                }
                else
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       verifyRecordResult.MessageId, payload: result);
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
            }
            return(Ok(apiResult));
        }
Esempio n. 17
0
        public async Task OnSaveAsync()
        {
            Relogin = false;

            MyUserAdapterModel myUserAdapterModel = new MyUserAdapterModel();

            #region 進行 Form Validation 檢查驗證作業
            if (LocalEditContext.Validate() == false)
            {
                return;
            }
            #endregion

            #region 其他資料完整性驗證
            if (ChangePasswordModel.NewPasswordAgain != ChangePasswordModel.NewPassword)
            {
                MessageBox.Show("400px", "200px",
                                ErrorMessageMappingHelper.Instance.GetErrorMessage(ErrorMessageEnum.警告),
                                ErrorMessageMappingHelper.Instance.GetErrorMessage(ErrorMessageEnum.新密碼2次輸入須相同),
                                CloseMessageBox);
                return;
            }
            else
            {
                myUserAdapterModel = await ChangePasswordService.GetCurrentUser();

                if (myUserAdapterModel == null)
                {
                    MessageBox.Show("400px", "200px",
                                    ErrorMessageMappingHelper.Instance.GetErrorMessage(ErrorMessageEnum.警告),
                                    ErrorMessageMappingHelper.Instance.GetErrorMessage(ErrorMessageEnum.使用者不存在),
                                    CloseMessageBox);
                    return;
                }
            }
            #endregion

            #region 進行密碼變更
            await ChangePasswordService.ChangePassword(myUserAdapterModel, ChangePasswordModel.NewPassword,
                                                       HttpContextAccessor.GetConnectionIP());

            Relogin = true;
            MessageBox.Show("400px", "200px",
                            ErrorMessageMappingHelper.Instance.GetErrorMessage(ErrorMessageEnum.警告),
                            ErrorMessageMappingHelper.Instance.GetErrorMessage(ErrorMessageEnum.密碼已經變更成功),
                            CloseMessageBox);

            #endregion
        }
Esempio n. 18
0
 public void ToolbarClickHandler(Syncfusion.Blazor.Navigations.ClickEventArgs args)
 {
     if (args.Item.Id == ButtonIdHelper.ButtonIdAdd)
     {
         CurrentRecord = new MyUserAdapterModel();
         #region 針對新增的紀錄所要做的初始值設定商業邏輯
         #endregion
         EditRecordDialogTitle = "新增紀錄";
         isNewRecordMode       = true;
         IsShowEditRecord      = true;
     }
     else if (args.Item.Id == ButtonIdHelper.ButtonIdRefresh)
     {
         dataGrid.RefreshGrid();
     }
 }
        public async Task AddHistoryRecord(MyUserAdapterModel myUserAdapterModel,
                                           FlowMasterAdapterModel flowMasterAdapterModel, string Summary, string Comment,
                                           bool approve)
        {
            FlowHistory history = new FlowHistory()
            {
                Comment      = Comment,
                Summary      = Summary,
                Updatetime   = DateTime.Now,
                FlowMasterId = flowMasterAdapterModel.Id,
                MyUserId     = myUserAdapterModel.Id,
                Approve      = approve,
            };
            await context.FlowHistory.AddAsync(history);

            await context.SaveChangesAsync();
        }
 public void OnPickerCompletion(MyUserAdapterModel e)
 {
     if (e != null)
     {
         if (UserMode == MagicHelper.MyUserUserMode)
         {
             CurrentRecord.MyUserId   = e.Id;
             CurrentRecord.MyUserName = e.Name;
         }
         else
         {
             CurrentRecord.AgentId   = e.Id;
             CurrentRecord.AgentName = e.Name;
         }
     }
     ShowAontherRecordPicker = false;
 }
        public async Task <VerifyRecordResult> BeforeUpdateCheckAsync(MyUserAdapterModel paraObject)
        {
            //if (paraObject.Account.ToLower() == MagicHelper.開發者帳號)
            //{
            //    return VerifyRecordResultFactory.Build(false, ErrorMessageEnum.開發者帳號不可以被修改);
            //}

            CleanTrackingHelper.Clean <MyUser>(context);
            var searchItem = await context.MyUser
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (searchItem == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上));
            }

            searchItem = await context.MyUser
                         .AsNoTracking()
                         .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (searchItem != null)
            {
                //if (searchItem.Account.ToLower() == MagicHelper.開發者帳號)
                //{
                //    return VerifyRecordResultFactory.Build(false, ErrorMessageEnum.開發者帳號不可以被修改);
                //}
            }
            else
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上));
            }

            searchItem = await context.MyUser
                         .AsNoTracking()
                         .FirstOrDefaultAsync(x => x.Account == paraObject.Account &&
                                              x.Id != paraObject.Id);

            if (searchItem != null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要修改的紀錄已經存在無法修改));
            }

            return(VerifyRecordResultFactory.Build(true));
        }
        async Task OhterDependencyData(MyUserAdapterModel data)
        {
            if (data.IsManager == true)
            {
                data.IsManagerString = "是";
            }
            else
            {
                data.IsManagerString = "否";
            }

            var user = await context.MyUser
                       .FirstOrDefaultAsync(x => x.Id == data.ManagerId);

            if (user != null)
            {
                data.ManagerName = user.Name;
            }
        }
        public async Task <(MyUserAdapterModel, string)> CheckUser(string account, string password)
        {
            MyUser user = await context.MyUser.AsNoTracking().FirstOrDefaultAsync(x => x.Account == account);

            if (user == null)
            {
                return(null, ErrorMessageMappingHelper.Instance
                       .GetErrorMessage(ErrorMessageEnum.使用者帳號不存在));
            }

            if (user.Password != password)
            {
                return(null, ErrorMessageMappingHelper.Instance
                       .GetErrorMessage(ErrorMessageEnum.密碼不正確));
            }
            MyUserAdapterModel userAdapterModel = Mapper.Map <MyUserAdapterModel>(user);

            return(userAdapterModel, "");
        }
Esempio n. 24
0
 public void OnPickerSimulatorUserCompletion(MyUserAdapterModel e)
 {
     if (e != null)
     {
         CurrentUserHelper.CustomUserId          = e.Id;
         CurrentUserHelper.CustomUserName        = e.Name;
         CurrentUser.CurrentMyUserId             = e.Id;
         CurrentUser.SimulatorMyUserAdapterModel = e;
         dataGrid.RefreshGrid();
     }
     else
     {
         CurrentUserHelper.CustomUserId          = 0;
         CurrentUserHelper.CustomUserName        = "";
         CurrentUser.CurrentMyUserId             = 0;
         CurrentUser.SimulatorMyUserAdapterModel = null;
     }
     ShowSimulatorUserPicker = false;
 }
        public async Task <MyUserAdapterModel> GetAsync(int id)

        {
            MyUser item = await context.MyUser
                          .AsNoTracking()
                          .FirstOrDefaultAsync(x => x.Id == id);

            if (item != null)
            {
                MyUserAdapterModel result = Mapper.Map <MyUserAdapterModel>(item);
                await OhterDependencyData(result);

                return(result);
            }
            else
            {
                return(new MyUserAdapterModel());
            }
        }
        public async Task <VerifyRecordResult> AddAsync(MyUserAdapterModel paraObject)
        {
            try
            {
                MyUser itemParameter = Mapper.Map <MyUser>(paraObject);
                CleanTrackingHelper.Clean <MyUser>(context);
                await context.MyUser
                .AddAsync(itemParameter);

                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <MyUser>(context);
                return(VerifyRecordResultFactory.Build(true));
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, "新增記錄發生例外異常");
                return(VerifyRecordResultFactory.Build(false, "新增記錄發生例外異常", ex));
            }
        }
        public async Task EnableIt(MyUserAdapterModel paraObject)
        {
            MyUser itemData = Mapper.Map <MyUser>(paraObject);

            CleanTrackingHelper.Clean <MyUser>(context);
            MyUser item = await context.MyUser
                          .AsNoTracking()
                          .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (item == null)
            {
            }
            else
            {
                item.Status = true;
                context.Entry(item).State = EntityState.Modified;
                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <MenuData>(context);
            }
        }
        public async Task AddInboxRecord(FlowMasterAdapterModel paraObject,
                                         MyUserAdapterModel myUser, bool isCC)
        {
            string CCMessage = isCC ? "[知會]" : "";

            CleanTrackingHelper.Clean <FlowInbox>(context);
            FlowInbox inbox = new FlowInbox()
            {
                FlowMasterId = paraObject.Id,
                MyUserId     = myUser.Id,
                IsRead       = false,
                ReceiveTime  = DateTime.Now,
                Title        = $"{CCMessage} {paraObject.Title}",
                Body         = paraObject.Content,
            };
            await context.FlowInbox.AddAsync(inbox);

            await context.SaveChangesAsync();

            CleanTrackingHelper.Clean <FlowInbox>(context);
        }
        public bool CheckCurrentActionUser(List <FlowUser> flowUsers,
                                           MyUserAdapterModel myUserAdapterModel, FlowMasterAdapterModel flowMasterAdapterModel)
        {
            var flowUserCurrent = flowUsers.Where(x => x.Level == flowMasterAdapterModel.ProcessLevel &&
                                                  x.OnlyCC == false && x.Completion == false).ToList();

            if (flowUserCurrent.Count() == 0)
            {
                return(false);;
            }
            else
            {
                var findUser = flowUserCurrent.FirstOrDefault(x => x.MyUserId == myUserAdapterModel.Id);
                if (findUser == null)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
Esempio n. 30
0
 public void ToolbarClickHandler(Syncfusion.Blazor.Navigations.ClickEventArgs args)
 {
     if (args.Item.Id == ButtonIdHelper.ButtonIdAdd)
     {
         CurrentRecord = new MyUserAdapterModel();
         #region 針對新增的紀錄所要做的初始值設定商業邏輯
         CurrentRecord.Status = true;
         #endregion
         EditRecordDialogTitle                     = "新增紀錄";
         isNewRecordMode                           = true;
         IsShowEditRecord                          = true;
         CurrentRecord.ForceLogoutDatetime         = DateTime.Now;
         CurrentRecord.ForceChangePassword         = true;
         CurrentRecord.ForceChangePasswordDatetime = DateTime.Now;
         CurrentRecord.LoginFailUnlockDatetime     = DateTime.Now;
         CurrentRecord.LoginFailTimes              = 0;
         CurrentRecord.LastLoginDatetime           = DateTime.Now;
     }
     else if (args.Item.Id == ButtonIdHelper.ButtonIdRefresh)
     {
         dataGrid.RefreshGrid();
     }
 }