示例#1
0
        //-------------------------------------------------------------------------------------------------------------------------------
        public void UpdateAllExports()
        {
            try
            {
                ITimosServiceForAspectize serviceClientAspectize = (ITimosServiceForAspectize)C2iFactory.GetNewObject(typeof(ITimosServiceForAspectize));
                CResultAErreur            result = serviceClientAspectize.GetExportsForUser(0, "");

                if (result && result.Data != null)
                {
                    DataSet ds = result.Data as DataSet;

                    if (ds != null && ds.Tables.Contains(CExportWeb.c_nomTable))
                    {
                        DataTable dt = ds.Tables[CExportWeb.c_nomTable];
                        foreach (DataRow row in dt.Rows)
                        {
                            string keyExport        = (string)row[CExportWeb.c_champId];
                            string strLibelleExport = (string)row[CExportWeb.c_champLibelle];
                            int    nUpdatePeriod    = (int)row[CExportWeb.c_champPeriode];

                            try
                            {
                                // On vérifie la période de rafraichissement (en heures)
                                var    fs           = ExecutingContext.GetService <IFileService>("TimosFileService");
                                string relativePath = keyExport + ".json";
                                string fullPath     = fs.GetFileUrl(relativePath);
                                fullPath = fullPath.Substring(16);
                                if (File.Exists(fullPath))
                                {
                                    DateTime lastDataDate = File.GetLastWriteTime(fullPath);
                                    TimeSpan span         = DateTime.Now - lastDataDate;
                                    if (span.TotalHours < nUpdatePeriod)
                                    {
                                        continue;
                                    }
                                }

                                result = serviceClientAspectize.GetDataSetExport(0, keyExport);
                                if (!result)
                                {
                                    Context.Log(InfoType.Warning, "Erreur GetDataSetExport(" + keyExport + ")" + Environment.NewLine + "Export label : " + strLibelleExport + Environment.NewLine + result.MessageErreur);
                                }

                                if (result && result.Data != null)
                                {
                                    DataSet dsExport = result.Data as DataSet;
                                    if (dsExport != null && dsExport.Tables.Count > 0)
                                    {
                                        DataTable    dtExport = dsExport.Tables[0];
                                        string       json     = JsonConvert.SerializeObject(dsExport, Formatting.None);
                                        MemoryStream stream   = new MemoryStream(Encoding.ASCII.GetBytes(json));
                                        fs.Write(relativePath, stream);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                Context.Log(InfoType.Warning, "Erreur GetDataSetExport(" + keyExport + ")" + Environment.NewLine + "Export label : " + strLibelleExport + Environment.NewLine + ex.Message);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Context.Log(InfoType.Warning, ex.Message);
            }
        }
示例#2
0
        //-------------------------------------------------------------------------------------------------------------------------------
        public DataSet GetListeExportsForCurrentUser()
        {
            AspectizeUser  aspectizeUser = ExecutingContext.CurrentUser;
            IEntityManager em            = EntityManager.FromDataSet(DataSetHelper.Create());

            if (aspectizeUser.IsAuthenticated)
            {
                int    nTimosSessionId = (int)aspectizeUser[CUserTimosWebApp.c_champSessionId];
                string keyUser         = (string)aspectizeUser[CUserTimosWebApp.c_champUserKey];

                ITimosServiceForAspectize serviceClientAspectize = (ITimosServiceForAspectize)C2iFactory.GetNewObject(typeof(ITimosServiceForAspectize));
                CResultAErreur            result = serviceClientAspectize.GetSession(nTimosSessionId);
                if (!result)
                {
                    throw new SmartException(1100, "Votre session a expiré, veuillez vous reconnecter");
                }

                try
                {
                    result = serviceClientAspectize.GetExportsForUser(nTimosSessionId, keyUser);
                    if (!result)
                    {
                        throw new SmartException(1010, "Erreur GetExportsForUser(nTimosSessionId = " + nTimosSessionId + ", keyUser = "******")" +
                                                 Environment.NewLine +
                                                 result.MessageErreur);
                    }

                    if (result && result.Data != null)
                    {
                        DataSet ds = result.Data as DataSet;

                        if (ds != null && ds.Tables.Contains(CExportWeb.c_nomTable))
                        {
                            DataTable dt = ds.Tables[CExportWeb.c_nomTable];

                            foreach (DataRow row in dt.Rows)
                            {
                                var export = em.CreateInstance <Export>();
                                export.Id           = (string)row[CExportWeb.c_champId];
                                export.Libelle      = (string)row[CExportWeb.c_champLibelle];
                                export.Description  = (string)row[CExportWeb.c_champDescription];
                                export.UpdatePeriod = (int)row[CExportWeb.c_champPeriode];

                                var    fs           = ExecutingContext.GetService <IFileService>("TimosFileService");
                                string relativePath = export.Id + ".json";
                                string fullPath     = fs.GetFileUrl(relativePath);
                                fullPath = fullPath.Substring(16);
                                if (File.Exists(fullPath))
                                {
                                    export.DataDate = File.GetLastWriteTime(fullPath);
                                }
                                else
                                {
                                    export.DataDate = null;
                                }
                            }
                        }


                        em.Data.AcceptChanges();
                        return(em.Data);
                    }
                }
                catch (Exception ex)
                {
                    throw new SmartException(1010,
                                             "Erreur GetExportsForUser(nTimosSessionId = " + nTimosSessionId + ", keyUser = "******")" +
                                             Environment.NewLine +
                                             ex.Message);
                }
            }
            else
            {
                throw new SmartException(1100, "Votre session a expiré, veuillez vous reconnecter");
            }
            return(null);
        }