예제 #1
0
        private async Task <ResponseVoid> SendFailedMail(Event model)
        {
            var response = new ResponseVoid();

            var mailModel = new MailModel
            {
                Body        = model.Data.Description,
                FromAddress = Settings.Instance.Email.FromAddress,
                FromName    = Settings.Instance.Email.FromName,
                Subject     = model.State + " " + model.Data.Status,
                ToAddress   = Settings.Instance.Source[Session.CurrentSource].MailSettings.SourceMail
            };

            if (model.State == "data validation")
            {
                var zipedBlobs = await _azureService.GetBlobZip(true);

                var zipName    = Settings.Instance.Source[Session.CurrentSource].DirectoriesSettings.OutName + ".zip";
                var attachment = new Attachment(zipedBlobs, zipName, "application/x-gzip");

                mailModel.Attachments.Add(attachment);
            }

            _mailService.Send(mailModel);

            return(response);
        }
예제 #2
0
        public async Task <ResponseVoid> SendMail(Event model)
        {
            ResponseVoid response;

            using (var work = await _session.BeginWork(model.Data.SourceName))
            {
                switch (model.Data.Status)
                {
                case EventStatus.Critical:
                    response = SendCriticalMail(model);
                    break;

                case EventStatus.Failed:
                    response = await SendFailedMail(model);

                    break;

                case EventStatus.Success:
                    response = SendSuccessMail(model);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }


            return(response);
        }
예제 #3
0
        public async Task <ResponseVoid> SaveEvent(Event model)
        {
            var response = new ResponseVoid();

            using (var work = await _session.BeginWork(model.Data.SourceName))
            {
                var db = work.Database;

                var _event = new Data.Event
                {
                    State       = model.State,
                    Status      = model.Data.Status.ToString().ToLower(),
                    Uuid        = model.Id,
                    Action      = model.Action,
                    Description = model.Data.Description,
                    Bank        = model.Data.SourceName.ToString()
                };


                db.InsertWithIdentity(_event);

                db.CommitTransaction();
            }


            return(response);
        }
예제 #4
0
        private ResponseVoid SendCriticalMail(Event model)
        {
            var response  = new ResponseVoid();
            var mailModel = new MailModel
            {
                Body        = model.Data.Description,
                FromAddress = Settings.Instance.Email.FromAddress,
                FromName    = Settings.Instance.Email.FromName,
                Subject     = model.Data.Status.ToString(),
                ToAddress   = Settings.Instance.Source[Session.CurrentSource].MailSettings.CriticalMail
            };

            _mailService.Send(mailModel);


            return(response);
        }