Ejemplo n.º 1
0
        public async Task InvokeAsync(HttpContext httpContext)
        {
            try
            {
                await _next(httpContext);
            }
            catch (Exception ex)
            {
                LogHelper.AddError(httpContext.GetCorrelationId(), ex);

                var statusCode = GetStatusCode(ex);

                var data = new ApiReturn <object>()
                {
                    Code            = (int)statusCode,
                    Success         = false,
                    Message         = ex.Message,
                    InternalMessage = statusCode == HttpStatusCode.InternalServerError ? ex.StackTrace : string.Empty
                };

                httpContext.Response.StatusCode  = (int)statusCode;
                httpContext.Response.ContentType = "application/json";

                await httpContext.Response.WriteAsync(data.ToJson());
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="error"></param>
 /// <returns></returns>
 public bool HandleError(Exception error)
 {
     if (Enabled && !(error is BusinessException))
     {
         //LOG ERROR
         logHelper.AddError(Messages.Message_error, _identificador, error);
     }
     return(true);
 }
Ejemplo n.º 3
0
        public static void FetchSqlDataFile(string uploadPath, bool isNxs, Guid campaignId, string orderNumber,
                                            string zipCodeFile, long dataQuantity)
        {
            using (var db = new WfpictContext())
            {
                LogHelper.AddLog(db, LogType.DataProcessing, orderNumber, $"SQL Data files processing started at {DateTime.Now}");
                try
                {
                    // Zip file processing
                    List <string> list = ProcessZipFile(db, uploadPath, zipCodeFile, orderNumber);

                    // SQL Data file
                    try
                    {
                        var data = SegmentDataManager.FetchSegmentsData(db, new SegmentParameters
                        {
                            OrderNumber  = orderNumber,
                            DataQuantity = dataQuantity,
                            CustomerCode = SegmentDataManager.CustomerCode,
                            ZipCodes     = list
                        });

                        LogHelper.AddLog(db, LogType.DataProcessing, orderNumber, $"{data.Count} records feteched sucessfully.");

                        // write data file
                        WriteAndUploadDataFile(data, db, uploadPath, orderNumber, campaignId);

                        if (isNxs)
                        {
                            // write opener data file
                            WriteAndUploadDataFileOpener(data, db, uploadPath, orderNumber, campaignId);
                        }

                        // Generating Segment data files
                        Campaign campaign =
                            db.Campaigns.Include(x => x.Segments).FirstOrDefault(x => x.OrderNumber == orderNumber);

                        foreach (var segment in campaign.Segments.OrderBy(x => x.SegmentNumber))
                        {
                            WriteAndUploadSegmentDataFile(data, db, segment, uploadPath, orderNumber, campaignId);
                        }
                        db.SaveChanges();

                        LogHelper.AddLog(db, LogType.DataProcessing, orderNumber, $"SQL Data files generated sucessfully at {DateTime.Now}");
                    }
                    catch (Exception ex)
                    {
                        LogHelper.AddError(db, LogType.DataProcessing, orderNumber, "Error fetching data from SQL Server " + ex.Message);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.AddError(db, LogType.DataProcessing, orderNumber, "Error processing " + zipCodeFile + " " + ex.Message);
                }
            }
        }
Ejemplo n.º 4
0
        public override void Run()
        {
            List <tb_node_model> models = new List <tb_node_model>();

            SqlHelper.ExcuteSql(Config.TaskConnectString, (c) => {
                Domain.Dal.tb_node_dal dal = new tb_node_dal();
                models = dal.GetAllStopNodesWithNeedCheckState(c);
            });
            foreach (var m in models)
            {
                LogHelper.AddError(new tb_error_model()
                {
                    errorcreatetime = DateTime.Now, errortype = (int)XXF.BaseService.TaskManager.SystemRuntime.EnumTaskLogType.SystemError,
                    msg             = string.Format("当前节点:{0}【{1}】运行已经停止,请及时检查!", m.nodename, m.id),
                    nodeid          = m.id, taskid = 0
                });
            }
        }
Ejemplo n.º 5
0
        public static void ProcessAssetUpdateUrls(string uploadPath, string orderNumber)
        {
            using (var db = new WfpictContext())
            {
                var campaign = db.Campaigns.Include(x => x.Assets).FirstOrDefault(x => x.OrderNumber == orderNumber);

                var directory = $"{uploadPath}\\{campaign.OrderNumber}";
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                // HtmlImagesURL
                try
                {
                    if (!string.IsNullOrEmpty(campaign.Assets.CreativeFiles))
                    {
                        string filePath = Path.Combine(uploadPath, campaign.Assets.CreativeFiles);
                        S3FileManager.Download(campaign.Assets.CreativeFiles, filePath);
                        var result = FileManager.ProcessHtmlZip(uploadPath, filePath, campaign.OrderNumber, campaign.IsAddOptOut, campaign.IsAddViewInBrowser);
                        campaign.Assets.CreativeUrl    = result.FilePathLive;
                        campaign.Assets.CreativeStatus = (int)result.Status;
                        LogHelper.AddLog(db, LogType.FileProcessing, orderNumber, "CreativeFiles processed: " + campaign.Assets.CreativeUrl + ", Status: " + System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.CreativeStatus));
                    }
                }
                catch (Exception ex)
                {
                    campaign.Assets.CreativeStatus = (int)UploadFileStatus.Failed;
                    LogHelper.AddError(db, LogType.FileProcessing, orderNumber, "CreativeFiles processing failed, " + ex.Message + ", Status: " + System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.CreativeStatus));
                }
                db.SaveChanges();

                if (!string.IsNullOrEmpty(campaign.Assets.ZipCodeFile))
                {
                    campaign.Assets.ZipCodeUrl = FileManager.GetFilePathLive(UploadFileType.ZipFile,
                                                                             campaign.OrderNumber);
                    campaign.Assets.ZipCodeStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "ZipCodeFile processed: " + campaign.Assets.ZipCodeUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.ZipCodeStatus));
                }

                // TestSeedList
                if (!string.IsNullOrEmpty(campaign.Assets.TestSeedFile))
                {
                    campaign.Assets.TestSeedUrl = FileManager.GetFilePathLive(UploadFileType.TestSeedFile,
                                                                              campaign.OrderNumber);
                    campaign.Assets.TestSeedStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "TestSeedFile processed: " + campaign.Assets.TestSeedUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.TestSeedStatus));
                }

                // Final SeedList
                if (!string.IsNullOrEmpty(campaign.Assets.LiveSeedFile))
                {
                    campaign.Assets.LiveSeedUrl = FileManager.GetFilePathLive(UploadFileType.LiveSeedFile,
                                                                              campaign.OrderNumber);
                    campaign.Assets.LiveSeedStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "LiveSeedFile processed: " + campaign.Assets.LiveSeedUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.LiveSeedStatus));
                }

                // Suppression
                if (!string.IsNullOrEmpty(campaign.Assets.SuppressionFile))
                {
                    campaign.Assets.SuppressionUrl = FileManager.GetFilePathLive(UploadFileType.SuppressionFile,
                                                                                 campaign.OrderNumber);
                    campaign.Assets.SuppressionStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "SuppressionFile processed: " + campaign.Assets.SuppressionUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.SuppressionStatus));
                }
                db.SaveChanges();

                // Banner
                if (!string.IsNullOrEmpty(campaign.Assets.BannersFile))
                {
                    campaign.Assets.BannersUrl = FileManager.GetFilePathLive(UploadFileType.BannersFile,
                                                                             campaign.OrderNumber, Path.GetExtension(campaign.Assets.BannersFile));
                    campaign.Assets.BannersStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "BannersFile processed: " + campaign.Assets.BannersUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.BannersStatus));
                }

                // Banner Links
                if (!string.IsNullOrEmpty(campaign.Assets.BannerLinksFile))
                {
                    campaign.Assets.BannerLinksUrl = FileManager.GetFilePathLive(UploadFileType.BannersLinksFile,
                                                                                 campaign.OrderNumber, Path.GetExtension(campaign.Assets.BannerLinksFile));
                    campaign.Assets.BannerLinksStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "BannerLinksFile processed: " + campaign.Assets.BannerLinksUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.BannerLinksStatus));
                }

                // Misc
                if (!string.IsNullOrEmpty(campaign.Assets.MiscFile))
                {
                    campaign.Assets.MiscUrl = FileManager.GetFilePathLive(UploadFileType.MiscFile,
                                                                          campaign.OrderNumber, Path.GetExtension(campaign.Assets.MiscFile));
                    campaign.Assets.MiscStatus = (int)UploadFileStatus.Completed;
                    LogHelper.AddLog(db, LogType.FileProcessing, orderNumber,
                                     "MiscFile processed: " + campaign.Assets.MiscUrl + ", Status: " +
                                     System.Enum.GetName(typeof(UploadFileStatus), campaign.Assets.MiscStatus));
                }
            }
        }