Пример #1
0
        public bool Insert(WisAppList wisAppList)
        {
            string sql = @"INSERT INTO [dbo].[WIS_AppList]
                                        ([AppID]
                                         ,[AppName]
                                         ,[AppNameEn]
                                         ,[Development]
                                         ,[Email]
                                         ,[Category]
                                         ,[DescriptionCh]
                                         ,[DescriptionEn]
                                         ,[LastUpdateUser]
                                         ,[LastUpdateDT]
                                         ,[CreateDT]
                                         ,[IsTop]
                                         ,[CompanyApp]
                                         ,[Delflag]
                                         ,[AppOpen]
                                         ,[AppUserGroup])
                                         VALUES
                                         (@AppID,
                                          @AppName,
                                          @AppNameEn,
                                          @Development,
                                          @Email,
                                          @Category,
                                          @DescriptionCh,
                                          @DescriptionEn,
                                          @LastUpdateUser,
                                          @LastUpdateDT,
                                          @CreateDT,
                                          @IsTop,
                                          @CompanyApp,
                                          @Delflag,
                                          @AppOpen,
                                          @AppUserGroup)";

            try
            {
                int inserted = _Connection.Execute(sql, wisAppList, _Transaction, commandType: CommandType.Text);

                if (inserted == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteException(ex, MethodBase.GetCurrentMethod(), wisAppList);
                var exception = new Exception("WisAppListTable:::Insert()", ex);
                throw exception;
            }
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="wisAppList"></param>
        /// <param name="wisAppUserList">更新授權名單 清單</param>
        /// <returns></returns>
        public bool ModifyAppName(WisAppList wisAppList, List <WisAppUserList> wisAppUserList)
        {
            bool isModified;

            using (IMcpDataBaseRepository Db = new McpDataBaseRepository(_connectionProvider))
            {
                isModified = Db.WisAppListTable.Update(wisAppList);
                Db.WisAppUserListTable.DeleteByAppID(wisAppList.AppID);
                Db.WisAppUserListTable.Insert(wisAppUserList);
                Db.Commit();
            }
            return(isModified);
        }
Пример #3
0
        public bool InsertAppName(WisAppList wisAppList, List <WisAppUserList> wisAppUserList)
        {
            bool inserted = false;

            using (IMcpDataBaseRepository Db = new McpDataBaseRepository(_connectionProvider))
            {
                inserted = Db.WisAppListTable.Insert(wisAppList);
                Db.WisAppUserListTable.DeleteByAppID(wisAppList.AppID);
                Db.WisAppUserListTable.Insert(wisAppUserList);
                Db.Commit();
                inserted = true;
            }
            return(inserted);
        }
Пример #4
0
        public bool AppNameisExisted(string appname)
        {
            string sql = @"SELECT * FROM WIS_AppList WHERE AppName = @AppName AND Delflag = 0";

            try
            {
                WisAppList wisAppList = _Connection.Query <WisAppList>(sql, new { AppName = appname }, _Transaction, commandType: CommandType.Text).FirstOrDefault();
                if (wisAppList != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #5
0
        public bool Update(WisAppList wisAppList)
        {
            string sql = @"UPDATE WIS_AppList
                                      SET AppName = @AppName
                                             ,AppNameEn = @AppNameEn
                                             ,Development = @Development
                                             ,Email = @Email
                                             ,Category = @Category
                                             ,DescriptionCh = @DescriptionCh
                                             ,DescriptionEn = @DescriptionEn
                                             ,LastUpdateUser = @LastUpdateUser
                                             ,LastUpdateDT = @LastUpdateDT                                             
                                             ,IsTop = @IsTop
                                             ,CompanyApp = @CompanyApp                                             
                                             ,AppOpen = @AppOpen
                                             ,AppUserGroup = @AppUserGroup                                            
                                             WHERE AppID = @AppID";

            try
            {
                int isupdated = _Connection.Execute(sql, wisAppList, _Transaction, commandType: CommandType.Text);

                if (isupdated == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteException(ex, MethodBase.GetCurrentMethod(), wisAppList);
                var exception = new Exception("WisAppListTable:::Update()", ex);
                throw exception;
            }
        }
Пример #6
0
        public bool AppNameisExisted(string appname)
        {
            string sql = @"SELECT * FROM WIS_AppList WHERE AppName = @AppName AND Delflag = 0";

            try
            {
                WisAppList wisAppList = _Connection.Query <WisAppList>(sql, new { AppName = appname }, _Transaction, commandType: CommandType.Text).FirstOrDefault();
                if (wisAppList != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteException(ex, MethodBase.GetCurrentMethod(), appname);
                var exception = new Exception("WisAppListTable:::AppNameisExisted()", ex);
                throw exception;
            }
        }
Пример #7
0
        public bool Update(WisAppList wisAppList)
        {
            string sql = @"UPDATE WIS_AppList
                                      SET AppName = @AppName
                                             ,AppNameEn = @AppNameEn
                                             ,Development = @Development
                                             ,Email = @Email
                                             ,Category = @Category
                                             ,DescriptionCh = @DescriptionCh
                                             ,DescriptionEn = @DescriptionEn
                                             ,LastUpdateUser = @LastUpdateUser
                                             ,LastUpdateDT = @LastUpdateDT                                             
                                             ,IsTop = @IsTop
                                             ,CompanyApp = @CompanyApp                                             
                                             ,AppOpen = @AppOpen
                                             ,AppUserGroup = @AppUserGroup
                                             WHERE AppID = @AppID";

            try
            {
                int isupdated = _Connection.Execute(sql, wisAppList, _Transaction, commandType: CommandType.Text);

                if (isupdated == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #8
0
        public void SetUp()
        {
            #region Initial fake data of constructor

            _configContext = new ConfigContext
            {
                McpDb              = "Data Source=10.37.36.195;Initial Catalog=MCPDev;uid=gary;pwd=Unsoul418!;",
                UploadPath         = "C:/AppOs",
                ImageEndPoint      = "http://*****:*****@gmail.com",
                Category         = "wistron_app",
                DescriptionCh    = "Test",
                DescriptionEn    = "Test",
                AppOpen          = true,
                AppUserGroup     = "",
                AppUserGroupName = ""
            };

            _inSideOrOutSideApp = new List <InSideOrOutSideApp>
            {
                new InSideOrOutSideApp
                {
                    AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc1",
                    AppName    = "Test AppName1",
                    CompanyApp = "Inside App",
                    IsTopCount = 1
                },
                new InSideOrOutSideApp
                {
                    AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc2",
                    AppName    = "Test AppName2",
                    CompanyApp = "Inside App",
                    IsTopCount = 1
                },
                new InSideOrOutSideApp
                {
                    AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc3",
                    AppName    = "Test AppName3",
                    CompanyApp = "Outside App",
                    IsTopCount = 1
                },
                new InSideOrOutSideApp
                {
                    AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc4",
                    AppName    = "Test AppName4",
                    CompanyApp = "Outside App",
                    IsTopCount = 1
                },
            };

            _wisApp = new WisAppList
            {
                AppName       = "Test AppName",
                AppNameEn     = "Test AppName",
                Development   = "MCP Developer",
                Email         = "*****@*****.**",
                Category      = "wistron_app",
                DescriptionCh = "Test",
                DescriptionEn = "Test",
                AppUserGroup  = "1,2"
            };

            _wisDefineGroups = new List <WisDefineGroup>
            {
                new WisDefineGroup
                {
                    GroupID        = "1",
                    GroupName      = "ePaper",
                    SelectGroup    = "1",
                    GroupInclude   = "",
                    SelectAccount  = "2",
                    AccountInclude = "9012016,9303064"
                },
                new WisDefineGroup
                {
                    GroupID        = "2",
                    GroupName      = "WistronArk",
                    SelectGroup    = "1",
                    GroupInclude   = "8177818",
                    SelectAccount  = "1",
                    AccountInclude = "10610056,10704054"
                }
            };

            #endregion

            //fake service
            _appListService    = Substitute.For <IAppListService>();
            _uploadFileService = Substitute.For <IUploadFileService>();
            _authService       = Substitute.For <IAuthService>();

            _targetObj = new AppBiz(_configContext, _appListService, _uploadFileService, _mapper, _authService);
        }
Пример #9
0
        public void SetUp()
        {
            #region Initial fake data of constructor

            _configContext = new ConfigContext
            {
                McpDb              = "Data Source=10.37.36.195;Initial Catalog=MCPDev;uid=gary;pwd=Unsoul418!;",
                UploadPath         = "C:/AppOs",
                ImageEndPoint      = "http://*****:*****@gmail.com",
                Category       = "wistron App",
                DescriptionCh  = "App說明-中文",
                DescriptionEn  = "App說明-英文",
                LastUpdateUser = "******",
                LastUpdateDT   = DateTime.Now,
                CreateDT       = DateTime.Now,
                IsTop          = true,
                CompanyApp     = true,
                Delflag        = false,
                AppOpen        = true,
                AppUserGroup   = "1, 2"
            };

            _wisAppOs = new List <WisAppOs>
            {
                //以下為 IOS
                // Status 為啟用
                new WisAppOs
                {
                    AppOSID        = 2,
                    AppID          = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    OSType         = 1,
                    Version        = "1.0.1",
                    PackageName    = "com.wistron.portalapp.dev",
                    FileName       = "PortalApp2.0/IOS/Install/0.2.1-ef04db152ccd4d1893998ec1f07fcc06.ipa",
                    Status         = true,
                    DescriptionCh  = "版本更新 1.0.1",
                    DescriptionEn  = "The version is update 1.0.1",
                    LastUpdateUser = "******",
                    LastUpdateDT   = DateTime.Now,
                    CreateDT       = DateTime.Now,
                    DelFlag        = false,
                    FilePath       = "PortalApp2.0/IOS/Install/b2fcbfb55f5e4aa4a75a40e5ea09b514.plist",
                    WebDownFlag    = true,
                },
                // Status 為不啟用
                new WisAppOs
                {
                    AppOSID        = 3,
                    AppID          = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    OSType         = 1,
                    Version        = "1.0.0",
                    PackageName    = "com.wistron.portalapp.dev",
                    FileName       = "PortalApp2.0/IOS/Install/0.2.1-ef04db152ccd4d1893998ec1f07fcc06.ipa",
                    Status         = false,
                    DescriptionCh  = "版本更新 1.0.0",
                    DescriptionEn  = "The version is update 1.0.0",
                    LastUpdateUser = "******",
                    LastUpdateDT   = DateTime.Now,
                    CreateDT       = DateTime.Now,
                    DelFlag        = false,
                    FilePath       = "PortalApp2.0/IOS/Install/b2fcbfb55f5e4aa4a75a40e5ea09b514.plist",
                    WebDownFlag    = true,
                },

                //以下為 Android
                //Status 為啟用
                new WisAppOs
                {
                    AppOSID        = 8,
                    AppID          = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    OSType         = 2,
                    Version        = "1.0.1",
                    PackageName    = "com.wistron.portalapp.dev",
                    FileName       = "Portal 2.0_20201021(Dev 0.2.2).apk",
                    Status         = true,
                    DescriptionCh  = "版本更新 1.0.1",
                    DescriptionEn  = "The version is update 1.0.1",
                    LastUpdateUser = "******",
                    LastUpdateDT   = DateTime.Now,
                    CreateDT       = DateTime.Now,
                    DelFlag        = false,
                    FilePath       = "PortalApp2.0/Android/Install/0.2.2-9e5f0b8dd1bf467096272cb1c41cca1d.apk",
                    WebDownFlag    = true,
                },
                //Status 為不啟用
                new WisAppOs
                {
                    AppOSID        = 9,
                    AppID          = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    OSType         = 2,
                    Version        = "1.0.0",
                    PackageName    = "com.wistron.portalapp.dev",
                    FileName       = "Portal 2.0_20201021(Dev 0.2.2).apk",
                    Status         = false,
                    DescriptionCh  = "版本更新 1.0.0",
                    DescriptionEn  = "The version is update 1.0.0",
                    LastUpdateUser = "******",
                    LastUpdateDT   = DateTime.Now,
                    CreateDT       = DateTime.Now,
                    DelFlag        = false,
                    FilePath       = "PortalApp2.0/Android/Install/0.2.2-9e5f0b8dd1bf467096272cb1c41cca1d.apk",
                    WebDownFlag    = true,
                }
            };

            _wisAppPhoto = new List <WisAppPhoto>
            {
                new WisAppPhoto
                {
                    AppPhotoID = 22,
                    AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    AppOS      = 1,
                    FileNumber = 5,
                    FileName   = "024abd90fb4c49149156aff2d5fd99ac.png",
                    FilePath   = "PortalApp2.0/Android/Images/024abd90fb4c49149156aff2d5fd99ac.png",
                    PhotoType  = 1 // 1= Icon 圖片 2 = 一般圖片
                },
                new WisAppPhoto
                {
                    AppPhotoID = 23,
                    AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    AppOS      = 2,
                    FileNumber = 5,
                    FileName   = "398ce584d4304c518c0cf17128fd2001.png",
                    FilePath   = "PortalApp2.0/IOS/Images/398ce584d4304c518c0cf17128fd2001.png",
                    PhotoType  = 1
                }
            };

            _wisDefineGroup = new List <WisDefineGroup>
            {
                new WisDefineGroup
                {
                    GroupID        = "1",
                    GroupName      = "WZS All users",
                    SelectGroup    = "1",
                    GroupInclude   = "A33,A13,A10",
                    SelectAccount  = "1",
                    AccountInclude = "10609123,200503036,2008L0323"
                },
                new WisDefineGroup
                {
                    GroupID        = "2",
                    GroupName      = "ML10-Dept",
                    SelectGroup    = "2",
                    GroupInclude   = "ML1500,ML1400,ML1100",
                    SelectAccount  = "1",
                    AccountInclude = ""
                }
            };

            _wisAppOsOthers = new List <WisAppOsOther>
            {
                new WisAppOsOther
                {
                    AppOtherID     = 88,
                    AppID          = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                    AppOsID        = 2,
                    Site           = "WKS",
                    OSType         = 1,
                    Version        = "1.0.1",
                    FileName       = "PortalApp2.0/IOS/Install/0.2.1-ef04db152ccd4d1893998ec1f07fcc06.ipa",
                    FilePath       = "PortalApp2.0/IOS/Install/b2fcbfb55f5e4aa4a75a40e5ea09b514.plist",
                    LastUpdateUser = "******",
                    LastUpdateDT   = DateTime.Now,
                    CreateDT       = DateTime.Now
                }
            };

            _iosWisAppOsOthers = new List <WisAppOsOther>();

            _androidWisAppOsOthers = new List <WisAppOsOther>();

            _appOsInfo = new AppOsInfo
            {
                AppID         = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                AppOSID       = 2,
                OSType        = DeviceType.Ios,
                AppName       = "Test AppName",
                AppNameEn     = "Test AppName",
                PackageName   = "com.wistron.portalapp.dev",
                Version       = "1,0.1",
                FileName      = "PortalApp2.0/IOS/Install/0.2.1-ef04db152ccd4d1893998ec1f07fcc06.ipa",
                FilePath      = "PortalApp2.0/IOS/Install/b2fcbfb55f5e4aa4a75a40e5ea09b514.plist",
                Status        = true,
                WebDownFlag   = true,
                DescriptionCh = "版本更新 1.0.1",
                DescriptionEn = "The version is update 1.0.1",
                CreateDT      = DateTime.Now,
                LastUpdateDT  = DateTime.Now,
                AppOsHistory  = new List <AppOsInfo>
                {
                    new AppOsInfo
                    {
                        AppID         = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                        AppOSID       = 3,
                        OSType        = 1,
                        AppName       = "Test AppName",
                        AppNameEn     = "Test AppName",
                        PackageName   = "com.wistron.portalapp.dev",
                        Version       = "1,0.0",
                        FileName      = "PortalApp2.0/IOS/Install/0.2.1-ef04db152ccd4d1893998ec1f07fcc06.ipa",
                        FilePath      = "PortalApp2.0/IOS/Install/b2fcbfb55f5e4aa4a75a40e5ea09b514.plist",
                        Status        = false,
                        WebDownFlag   = true,
                        DescriptionCh = "版本更新 1.0.0",
                        DescriptionEn = "The version is update 1.0.0",
                        CreateDT      = DateTime.Now,
                        LastUpdateDT  = DateTime.Now,
                    },
                    new AppOsInfo
                    {
                        AppID         = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                        AppOSID       = 2,
                        OSType        = 1,
                        AppName       = "Test AppName",
                        AppNameEn     = "Test AppName",
                        PackageName   = "com.wistron.portalapp.dev",
                        Version       = "1,0.1",
                        FileName      = "PortalApp2.0/IOS/Install/0.2.1-ef04db152ccd4d1893998ec1f07fcc06.ipa",
                        FilePath      = "PortalApp2.0/IOS/Install/b2fcbfb55f5e4aa4a75a40e5ea09b514.plist",
                        Status        = true,
                        WebDownFlag   = true,
                        DescriptionCh = "版本更新 1.0.1",
                        DescriptionEn = "The version is update 1.0.1",
                        CreateDT      = DateTime.Now,
                        LastUpdateDT  = DateTime.Now,
                    }
                },
                Photo = new List <AppPhotoContent>
                {
                    new AppPhotoContent
                    {
                        AppID      = "4beedc78-0d31-496e-bb9c-81a79c9c6bc6",
                        AppOS      = 1,
                        FileNumber = 5,
                        FileName   = "024abd90fb4c49149156aff2d5fd99ac.png",
                        FilePath   = "PortalApp2.0/Android/Images/024abd90fb4c49149156aff2d5fd99ac.png",
                        PhotoType  = 1  // 1= Icon 圖片 2 = 一般圖片
                    }
                }
            };

            #endregion

            //fake service
            _appListService    = Substitute.For <IAppListService>();
            _uploadFileService = Substitute.For <IUploadFileService>();
            _authService       = Substitute.For <IAuthService>();

            _targetObj = new AppBiz(_configContext, _appListService, _uploadFileService, _mapper, _authService);
        }
Пример #10
0
        /// <summary>
        /// 更新 Wis App name
        /// </summary>
        /// <param name="appNameCreate"></param>
        /// <returns></returns>
        public TResult <bool> ModifyAppName(AppNameCreate appNameCreate)
        {
            List <WisAppUserList> wisAppUserList = new List <WisAppUserList>();

            //撈出置頂總合資料
            List <InSideOrOutSideApp> inSideOrOutSideApps = _appListService.GetIsTopAppList();

            #region Check 置頂

            //如果要頂置 需檢查頂置規則 企業APP 2筆 外部 App 2筆
            if (appNameCreate.IsTop)
            {
                //企業專用	true:企業APP , false:外部APP
                if (appNameCreate.CompanyApp)
                {
                    //內部 app得要排除 自己的部分
                    int inSideTop = inSideOrOutSideApps.Where(p => p.CompanyApp.Equals("Inside App") && p.AppID != appNameCreate.AppID).Count();

                    if (inSideTop >= 2)
                    {
                        return(TResult <bool> .Fail(false, FaultInfoRcConstants.ERR_CODE_FAIL, "企業內部 App 置頂最多為2筆"));
                    }
                }
                else
                {
                    //外部 app 得要排除 自己的部分
                    int outSideTop = inSideOrOutSideApps.Where(p => p.CompanyApp.Equals("Outside App") && p.AppID != appNameCreate.AppID).Count();

                    if (outSideTop >= 2)
                    {
                        return(TResult <bool> .Fail(false, FaultInfoRcConstants.ERR_CODE_FAIL, "外部 App 置頂最多為2筆"));
                    }
                }
            }

            #endregion

            //DTO
            WisAppList wisApp = _mapper.Map <AppNameCreate, WisAppList>(appNameCreate);
            DateTime   date   = DateTime.Now;
            wisApp.LastUpdateUser = "******";
            wisApp.LastUpdateDT   = date;

            #region 授權群組 設定 AppOen  1:開放,0:有授權名單

            List <string> groupID = wisApp.AppUserGroup?.Split(',').ToList();

            List <WisDefineGroup> wisDefineGroups = _appListService.GetDefineGroup(groupID);

            foreach (var item in wisDefineGroups)
            {
                //新增群組
                if (!string.IsNullOrEmpty(item.GroupInclude))
                {
                    List <MdsHrEmpData> mdsHrEmpData = new List <MdsHrEmpData>();
                    List <string>       findGroup    = item.GroupInclude.Split(',').ToList();
                    if (item.SelectGroup == "1") // 找Site
                    {
                        mdsHrEmpData = _appListService.GetHrEmpByLocation(findGroup);
                    }
                    else // 找 DeptID
                    {
                        mdsHrEmpData = _appListService.GetHrEmpByDept(findGroup);
                    }

                    List <WisAppUserList> findAppUser = mdsHrEmpData.Select(p => new WisAppUserList {
                        AppID = appNameCreate.AppID, UserID = p.Uid
                    }).ToList();

                    wisAppUserList.AddRange(findAppUser);
                }

                //新增 自定義的user
                if (!string.IsNullOrEmpty(item.AccountInclude))
                {
                    List <MdsAdUserData> mdsAdUserDatas = new List <MdsAdUserData>();
                    List <MdsHrEmpData>  mdsHrEmpData   = new List <MdsHrEmpData>();
                    List <string>        findUId        = item.AccountInclude.Split(',').ToList();
                    if (item.SelectAccount == "1") // 找 AD Data
                    {
                        mdsAdUserDatas = _appListService.GetMdsAdUser(findUId);
                    }
                    else // 找 HR Data
                    {
                        mdsHrEmpData = _appListService.GetHrEmpByUId(findUId);
                    }

                    List <WisAppUserList> findAppUser = mdsAdUserDatas.Select(p => new WisAppUserList {
                        AppID = appNameCreate.AppID, UserID = p.Uid
                    }).ToList();
                    List <WisAppUserList> findAppUserByHr = mdsHrEmpData.Select(p => new WisAppUserList {
                        AppID = appNameCreate.AppID, UserID = p.Uid
                    }).ToList();

                    wisAppUserList.AddRange(findAppUser);
                    wisAppUserList.AddRange(findAppUserByHr);
                }
            }

            #endregion

            bool isModified = _appListService.ModifyAppName(wisApp, wisAppUserList);

            if (isModified)
            {
                return(TResult <bool> .OK(true, appNameCreate.AppName));
            }
            else
            {
                return(TResult <bool> .Fail(false, FaultInfoRcConstants.ERR_CODE_FAIL, "Modify App name fail!"));
            }
        }