Esempio n. 1
0
        public IActionResult PatchUpdateSupervisor([FromRoute][Required] int id, [FromBody][Required] PatchBOSupervisorsRequestDto data)
        {
            try
            {
                /// <summary>
                /// Método para guardar request en logs
                /// </summary>
                _securityService.RequestLog("api/bo/supervisors/PatchUpdateSupervisor: {id: " + JsonConvert.SerializeObject(id) + ", data: " + JsonConvert.SerializeObject(data) + "}");

                if (!ModelState.IsValid || id != data.Id)
                {
                    return(BadRequest("The payload is invalid or check the supervisor id on route and payload"));
                }

                PatchBOSupervisorsRequestModel request          = _mapper.Map <PatchBOSupervisorsRequestModel>(data);
                StatusResponseModel            businessResponse = _boSupervisorService.ApproveSupervisor(request);
                switch (businessResponse.Status)
                {
                case ResultStatus.SUCCESS:
                    _notifier.Notify(new EmailData(EmailType.SupervisorState, request));
                    return(Ok());

                case ResultStatus.BAD_REQUEST:
                    return(BadRequest());

                case ResultStatus.ACCESS_DENIED:
                    return(StatusCode(StatusCodes.Status401Unauthorized));

                case ResultStatus.NOT_AUTHORIZED:
                    return(StatusCode(StatusCodes.Status403Forbidden));

                case ResultStatus.NOT_FOUND:
                    return(StatusCode(StatusCodes.Status404NotFound));

                default:
                    return(StatusCode(StatusCodes.Status500InternalServerError, businessResponse.Message));
                }
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Consrtructor de EmailData.
        /// </summary>
        /// <param name="inEmailType">Enumerado indicando tipo de mail a crear.</param>
        /// <param name="inData">Objeto (segun el tipo de email) con los datos a usar en el asunto/cuerpo del mail.</param>
        public EmailData(EmailType inEmailType, object inData)
        {
            #region ImageHeaderAttachment
            string pathImageHeader = Path.Combine(Path.GetTempPath(), "BestBankEmailHeader.png");
            if (!File.Exists(pathImageHeader))
            {
                File.WriteAllBytes(pathImageHeader, Resources.BestBank_EmailHeader);
            }

            Guid            imageHeaderId    = Guid.NewGuid();
            EmailAttachment attachmentHeader = new EmailAttachment
            {
                ContentId = imageHeaderId.ToString(),
                Inline    = true,
                MediaType = new System.Net.Mime.ContentType("image/png"),
                Path      = pathImageHeader,
            };
            #endregion

            switch (inEmailType)
            {
            case EmailType.CommercialNew:
                // Image AppLogin Attachment
                string pathImageAppLogin = Path.Combine(Path.GetTempPath(), "BestBankAppLogin.jpg");
                if (!File.Exists(pathImageAppLogin))
                {
                    File.WriteAllBytes(pathImageAppLogin, Resources.BestBank_AppLogin);
                }

                Guid            imageAppLoginId    = Guid.NewGuid();
                EmailAttachment attachmentAppLogin = new EmailAttachment
                {
                    ContentId = imageAppLoginId.ToString(),
                    Inline    = true,
                    MediaType = new System.Net.Mime.ContentType("image/jpg"),
                    Path      = pathImageAppLogin,
                };

                PostBOCommercialsResponseModel objCommercial = ((PostBOCommercialsResponseModel)inData);
                this.To          = objCommercial.Email;
                this.Subject     = "Registo na Contact APP do Best Bank";
                this.Attachments = new List <EmailAttachment> {
                    attachmentHeader, attachmentAppLogin
                };

                this.Body = Resources.BestBank_EmailTemplate_CommercialNew
                            .Replace("{USER_EMAIL}", objCommercial.Email)
                            .Replace("{USER_NAME}", objCommercial.Name)
                            .Replace("{USER_PASSWORD}", objCommercial.Password)
                            .Replace("{USER_PEER}", objCommercial.Peer.ToString())
                            .Replace("{LINK_DOWNLOAD_APP}", objCommercial.LinkAppAndroid)
                            .Replace("{IMAGE_APPLOGIN_SRC}", $"cid:{imageAppLoginId.ToString()}")
                            .Replace("{IMAGE_SRC}", $"cid:{imageHeaderId.ToString()}");
                break;

            case EmailType.CommercialPasswordNew:
                ForgotPasswordResponseModel objForgotPass = ((ForgotPasswordResponseModel)inData);

                this.To          = objForgotPass.CommercialEmail;
                this.Subject     = "Alteração de Password da Contact App do Banco Best.";
                this.Attachments = new List <EmailAttachment> {
                    attachmentHeader
                };

                this.Body = Resources.BestBank_EmailTemplate_CommercialNewPassword
                            .Replace("{USER_NAME}", objForgotPass.CommercialName)
                            .Replace("{USER_PASSWORD}", objForgotPass.CommercialPassword)
                            .Replace("{IMAGE_SRC}", $"cid:{imageHeaderId.ToString()}");
                break;

            case EmailType.SupervisorState:
                PatchBOSupervisorsRequestModel objSupervisor = ((PatchBOSupervisorsRequestModel)inData);

                this.To          = objSupervisor.Email;
                this.Subject     = "Supervisor de Aplicação";
                this.Attachments = new List <EmailAttachment> {
                    attachmentHeader
                };

                this.Body = Resources.BestBank_EmailTemplate_SupervisorState
                            .Replace("{SUPERVISOR_STATE}", objSupervisor.Approve ? "aprovado" : "rejeitado")
                            .Replace("{IMAGE_SRC}", $"cid:{imageHeaderId.ToString()}");
                break;
            }
        }