예제 #1
0
        /// <summary>
        /// Méthode asynchrone qui vérifie si l'utilisateur a une session enregistrée
        /// </summary>
        /// <returns>
        /// true Si une session enregistrée existe et le token de la session est le même que celui de l'utilisateur
        /// dans le contexte. false Dans le cas contraire
        /// </returns>
        public async Task UserIsConnected()
        {
            if (File.Exists(GlobalInfos.USER_SESSION_PATH))
            {
                CurrentSession = await LocalFileHelper.ReadJsonFile <UserSessionModel>(GlobalInfos.USER_SESSION_PATH);

                if (CurrentSession is not null)
                {
                    if (!await m_Repository.UserTokenHasChanged(CurrentSession.Id, CurrentSession.Token))
                    {
                        IsConnected = true;
                    }
                    else
                    {
                        File.Delete(GlobalInfos.USER_SESSION_PATH);
                    }

                    var role = await m_Repository.GetUserRole(CurrentSession.Id);

                    if (role >= RolesEnum.Moderator)
                    {
                        Administration = 150;
                    }
                }
            }
        }
예제 #2
0
        public static LocalSettings GetLocalSettings()
        {
            LocalSettings localSettings = null;

            localSettings = JsonHelper.ParseJson <LocalSettings>(LocalFileHelper.GetLocalJson(LocalFileHelper._localSettings));
            return(localSettings);
        }
예제 #3
0
        /// <summary>
        /// "Demande" la connexion grâce aux identifiants fournis en paramètre.
        /// </summary>
        /// <param name="login">
        /// Record utilisé pour que l'utilisateur puisse se connecter
        /// </param>
        /// <returns>
        /// true Si la connexion est réussie. false Dans le cas contraire
        /// </returns>
        public async Task <bool> LoginRequest()
        {
            var  response       = m_UserService.Login(m_Mapper.Map <LoginRequest>(UserConnection));
            bool responseResult = response is null ? false : true;

            CheckError("Reponse", "Les informations de connexions sont incorrects !", responseResult);

            if (responseResult == false)
            {
                return(false);
            }
            bool blackListed = await m_Repository.UserIsBlackListed(response.Id);

            CheckError("Black listé", "Vous êtes actuellement sur la liste noire !", blackListed);
            if (blackListed)
            {
                return(false);
            }
            bool writeFile = await LocalFileHelper.WriteJsonFile(GlobalInfos.USER_SESSION_PATH, response);

            CheckError("Session", "Une erreur inconnue est survenue lors de la connexion !", writeFile);
            if (writeFile == false)
            {
                return(false);
            }
            return(true);
        }
예제 #4
0
        public override bool Business()
        {
            try
            {
                SFTPHelper fTPHelper = new SFTPHelper(SFTPIP, SFTPort, SFTPUser, SFTPPwd);
                //读取文件列表
                string[] receivefiles = Directory.GetFiles(SFTPConstants.ReceiveFilePath);
                LogHelper.WriteLog(typeof(string), "开始处理文件", LogHelper.LogLevel.INFO);

                if (receivefiles.Length > 0)
                {
                    //TextHelper txthelper = new TextHelper();
                    for (int i = 0; i < receivefiles.Length; i++)
                    {
                        LogModel log = new LogModel();
                        log.SourceFileName = receivefiles[i];

                        FileInfo file        = new FileInfo(receivefiles[i]);
                        string   filename    = file.Name;
                        string   result      = "";//解析的错误提示
                        string   externumber = "";
                        try
                        {
                            List <string> txtlists = TextHelper.ReadTextFileToList(receivefiles[i]);//读取成list

                            //没有数据
                            if (txtlists.Count() > 0)
                            {
                                //可以处理多个接口文件
                                switch (txtlists[0].ToString().Substring(0, 9).Trim())
                                {
                                case "WMSSKU":    //PUMA推给我们的
                                    log.Type = "WMSSKU";
                                    result   = new ProductAccessor().AddProduct(txtlists, out externumber);
                                    break;

                                case "WMSASN":    //PUMA推给我们的 入库单
                                    log.Type = "WMSASN";
                                    result   = new ASNAccessor().GetInbound_ASNHD(txtlists, out externumber);
                                    break;

                                case "WMSORD":    //PUMA推给我们的 出库单
                                    log.Type = "WMSORD";
                                    result   = new ASNAccessor().GetInbound_ORDHD(txtlists, out externumber);
                                    break;

                                default:
                                    log.Type = "";
                                    result   = "未能从文件中识别出对应的接口";
                                    break;
                                }

                                if (result == "200")
                                {
                                    //解析成功,移动到success文件夹
                                    log.ToFileName  = SFTPConstants.SuccessFilePath + @"\" + log.Type + @"\" + filename;
                                    log.ResultDesc  = "解析成功";
                                    log.Externumber = externumber;
                                    log.Flag        = "Y";

                                    if (log.Type == "WMSSKU")
                                    {
                                        fTPHelper.Delete(OUT_MASTER + "//" + filename);
                                    }
                                    else
                                    {
                                        fTPHelper.Delete(OUT_TRANSACTION + "//" + filename);
                                    }
                                }
                                else
                                {
                                    if (log.Type != "")
                                    {
                                        if (result.Contains("数据库插入失败"))
                                        {
                                            log.ToFileName  = "";// SFTPConstants.SuccessFilePath + @"\" + log.Type + @"\" + filename;
                                            log.ResultDesc  = "解析失败:" + result;
                                            log.Externumber = externumber;
                                            log.Flag        = "E";
                                        }
                                        else
                                        {
                                            log.ToFileName  = SFTPConstants.FaildFilePath + @"\" + log.Type + @"\" + filename;//移动到解析失败文件夹
                                            log.ResultDesc  = "解析失败:" + result;
                                            log.Externumber = externumber;
                                            log.Flag        = "N";
                                        }
                                    }
                                    else
                                    {
                                        log.ToFileName  = SFTPConstants.ErrorFilePath + @"\" + filename;
                                        log.ResultDesc  = "解析失败:" + result;
                                        log.Externumber = externumber;
                                        log.Flag        = "N";
                                    }
                                }
                            }
                            else
                            {
                                log.ToFileName = SFTPConstants.ErrorFilePath + @"\" + filename;
                                log.Flag       = "N";
                                log.ResultDesc = "解析失败:文档中无数据";
                            }
                        }
                        catch (Exception ex)
                        {
                            //报错了放到error文件
                            log.ToFileName = SFTPConstants.ErrorFilePath + @"\" + filename;
                            log.Flag       = "N";
                            log.ResultDesc = "解析报错:" + ex.Message.ToString();
                        }
                        if (log.Flag == "E")
                        {//数据库失败再解析一次
                        }
                        else
                        {
                            LocalFileHelper.MoveToCover(log.SourceFileName, log.ToFileName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(string), "处理文件错误" + ex.ToString(), LogHelper.LogLevel.INFO);

                //throw;
            }
            return(true);
        }