/*<ControllerActionImplementation:InterestedInInvestor:1/>*/
        public ActionResult ExecuteInterestedInInvestor()
        {
            ActionResult _result = null;

            DSS5_SupplyChainFinancialsOptimisation.BO.Agreement       newAgreement = new DSS5_SupplyChainFinancialsOptimisation.BO.Agreement();
            DSS5_SupplyChainFinancialsOptimisation.BO.AgreementStatus newStatus    = new DSS5_SupplyChainFinancialsOptimisation.BO.AgreementStatus();
            newStatus.Status      = "Interested";
            newStatus.ProvidedBy  = "Supplier";
            newStatus.DateOccured = DateTime.UtcNow;
            newAgreement?.AddAgreementStatus(newStatus);
            if ((zAppDev.DotNet.Framework.Identity.IdentityHelper.GetCurrentApplicationUser()?.IsInRole("ValidatedSupplier") ?? false) || (zAppDev.DotNet.Framework.Identity.IdentityHelper.GetCurrentApplicationUser()?.IsInRole("ActiveSupplier") ?? false))
            {
                DSS5_SupplyChainFinancialsOptimisation.BO.Supplier newSup = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetById <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(zAppDev.DotNet.Framework.Identity.IdentityHelper.GetCurrentUserName());
                newAgreement.Supplier = newSup;
            }
            newAgreement.Investor = new DSS5_SupplyChainFinancialsOptimisation.BO.Investor();
            newAgreement.Investor = @model.Investor;
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Agreement>(newAgreement);
            System.Collections.Generic.List <string> recipients = new System.Collections.Generic.List <string>();
            recipients.Add((@model.Investor?.Email ?? ""));
            zAppDev.DotNet.Framework.Utilities.EMailMessage em = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            em.Subject = "New Agreement";
            em.Body    = "A new Agreement is created" + "Please edit the Agreement.";
            em.To      = recipients.Distinct().ToList().ToList();
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(em, true);
            ClientCommand(ClientCommands.SHOW_MESSAGE, "New Agreement created.");
            return(_result);
        }
Example #2
0
        /*<ControllerActionImplementation:SendErrorToAdministrator:1/>*/
        public ActionResult ExecuteSendErrorToAdministrator()
        {
            ActionResult _result        = null;
            string       developerEmail = zAppDev.DotNet.Framework.Utilities.Common.GetConfigurationKey("AdministratorEmail");

            if (((developerEmail == null || developerEmail.Trim() == "")))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ErrorPage", "RES_CUSTOM_Invalid_AdminEmail_Message").ToString(), MessageType.Error);
                return(null);
            }
            @model.StackTrace           = zAppDev.DotNet.Framework.Utilities.Common.GetLastError().StackTrace;
            @model.ErrorMessage         = zAppDev.DotNet.Framework.Utilities.Common.GetLastError().Message;
            @model.FriendlyErrorMessage = zAppDev.DotNet.Framework.Utilities.Common.GetLastError().GetFriendlyMessage();
            zAppDev.DotNet.Framework.Utilities.EMailMessage mail       = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            System.Collections.Generic.List <string>        recipients = new System.Collections.Generic.List <string>();
            recipients.Add(developerEmail);
            mail.To      = recipients.ToList();
            mail.Subject = "DSS2_SynchromodalityCapacityOptimisation" + " threw an Exception";
            mail.Body    = "<b>Error Message:</b> " + @model.ErrorMessage + "<br /><br />";
            mail.Body    = mail.Body + "<b>Friendly Error Message:</b> <span style='white-space: pre-line;'>" + @model.FriendlyErrorMessage + "</span><br /><br />";
            mail.Body    = mail.Body + "<b>StackTrace:</b> " + @model.StackTrace + "<br />";
            if (((((@model.AdditionalErrorInformation == null || @model.AdditionalErrorInformation.Trim() == "")) == false)))
            {
                mail.Body = mail.Body + "<br /><b>Additional Information:</b> " + @model.AdditionalErrorInformation;
            }
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(mail);
            ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ErrorPage", "RES_CUSTOM_Successful_EMail_Message").ToString());
            return(_result);
        }
Example #3
0
        /*<ControllerActionImplementation:ResetPassword:1/>*/
        public ActionResult ExecuteResetPassword()
        {
            ActionResult _result = null;

            zAppDev.DotNet.Framework.Identity.Model.ApplicationUser user = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>((u) => u.Email == @model.txtEmail)?.FirstOrDefault();
            if ((user == null))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_NotFound").ToString(), MessageType.Error);
                return(null);
            }
            if ((((user?.Email ?? "") == null || (user?.Email ?? "").Trim() == "") || ((((user?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((user?.Email ?? "")))) == false)))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_NoMail").ToString(), MessageType.Error);
                return(null);
            }
            string code = zAppDev.DotNet.Framework.Identity.IdentityHelper.GetUserManager().GeneratePasswordResetTokenAsync(user.UserName).Result;
            string link = (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                           System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                          "/ResetPassword/Render" + "?code=" + System.Web.HttpUtility.UrlEncode(code);

            zAppDev.DotNet.Framework.Utilities.EMailMessage emailMessage = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            emailMessage.To = new List <string> {
                (user?.Email ?? "")
            }.ToList();
            emailMessage.Subject    = "Password Reset";
            emailMessage.Body       = "Please click <a href='" + link + "'>here</a> to reset your password";
            emailMessage.IsBodyHtml = true;
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(emailMessage, true);
            _result = CloseForm();
            return(_result);
        }
Example #4
0
        /*<ControllerActionImplementation:ResetPassword:1/>*/
        public ActionResult ExecuteResetPassword()
        {
            ActionResult _result = null;

            zAppDev.DotNet.Framework.Identity.Model.ApplicationUser user = new DSS1_RetailerDriverStockOptimisation.DAL.Repository().GetAsQueryable <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>((u) => u.UserName == @model.txtUsername)?.FirstOrDefault();
            if ((user == null))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_NotFound").ToString(), MessageType.Error);
                return(null);
            }
            if ((((user?.Email ?? "") == null || (user?.Email ?? "").Trim() == "") || ((((user?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((user?.Email ?? "")))) == false)))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_NoMail").ToString(), MessageType.Error);
                return(null);
            }
            string newPassword = Guid.NewGuid().ToString().ToLower().Replace("-", "").Substring(0, 10);
            string result      = zAppDev.DotNet.Framework.Identity.IdentityHelper.ResetPassword(user, newPassword);

            if (((((result == null || result == "")) == false)))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, result, MessageType.Error);
                return(null);
            }
            zAppDev.DotNet.Framework.Utilities.EMailMessage mail       = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            System.Collections.Generic.List <string>        recipients = new System.Collections.Generic.List <string>();
            recipients.Add((user?.Email ?? ""));
            mail.To      = recipients.ToList();
            mail.Subject = "Your new password for " + "DSS1_RetailerDriverStockOptimisation";
            mail.Body    = "-> Password: " + newPassword;
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(mail);
            _result = CloseForm();
            return(_result);
        }
        /*<ControllerActionImplementation:HandlePayment:1/>*/
        public ActionResult ExecuteHandlePayment(string username, bool approved)
        {
            ActionResult _result = null;

            DSS5_SupplyChainFinancialsOptimisation.BO.Supplier supplier = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>((a) => a.UserName == username)?.FirstOrDefault();
            zAppDev.DotNet.Framework.Utilities.EMailMessage    email    = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            email.To = new List <string> {
                (supplier?.Email ?? "")
            }.ToList();
            email.IsBodyHtml = true;
            if ((approved))
            {
                supplier.Roles = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "RegisteredSupplier").ToList();
                zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "PendingRegisteredSuppliersList", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Supplier Roles " + (supplier?.Roles?.FirstOrDefault()?.Name ?? ""));
                supplier.SupplierStatus = "RegisteredSupplier";
                new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(supplier);
                ClientCommand(ClientCommands.DATALIST_REFRESH, "SupplierListNoDT");
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Supplier " + (supplier?.UserName ?? "") + " is now Registered.");
                email.Subject = "Payment Approval";
                email.Body    = "Your payment has been approved from TOME FINANCE ® Administrator. " + "Please return to your profile and proceed to request validation.";
            }
            else
            {
                supplier.Roles          = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "RejectedSupplier").ToList();
                supplier.SupplierStatus = "RejectedSupplier";
                new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(supplier);
                ClientCommand(ClientCommands.DATALIST_REFRESH, "SupplierListNoDT");
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Supplier " + (supplier?.UserName ?? "") + "is now Rejected.", MessageType.Warning);
                email.Subject = "Payment Rejection";
                email.Body    = "Your payment has been rejected from TOME FINANCE ® Administrator. Please provide us your company details and " + "your account details, in order to proceed with the return of the fee.";
            }
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(email, true);
            return(_result);
        }
 /*<ControllerActionImplementation:SendConfirmationMail:1/>*/
 public ActionResult ExecuteSendConfirmationMail()
 {
     ActionResult _result = null;
     zAppDev.DotNet.Framework.Identity.Model.ApplicationUser appUser = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable<zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>((ap) => ap.UserName == @model.UserNameTextBox)?.FirstOrDefault();
     string code = zAppDev.DotNet.Framework.Identity.IdentityHelper.GetUserManager().GenerateEmailConfirmationTokenAsync(appUser.UserName).Result;
     string link = (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                    System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                   "/EmailConfirmation/Confirm"+ "?email=" + System.Web.HttpUtility.UrlEncode((appUser?.Email ?? ""))+ "&code=" + System.Web.HttpUtility.UrlEncode(code);
     zAppDev.DotNet.Framework.Utilities.EMailMessage emailMessage = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
     emailMessage.To = new List<string> { (appUser?.Email ?? "") } .ToList();
     emailMessage.Subject = "Acount Activation";
     emailMessage.Body = "Please click <a href='" + link + "'>here</a> to activate your account";
     emailMessage.IsBodyHtml = true;
     zAppDev.DotNet.Framework.Utilities.Email.SendMail(emailMessage, true);
     return _result;
 }
 public static DSS5_SupplyChainFinancialsOptimisation.BO.Contact HomePageContactImplementation(string last_name, string email, string message)
 {
     DSS5_SupplyChainFinancialsOptimisation.BO.Contact contact = new DSS5_SupplyChainFinancialsOptimisation.BO.Contact();
     contact.LastName = last_name;
     contact.Email    = email;
     contact.Message  = message;
     System.Collections.Generic.List <string> recipients = new System.Collections.Generic.List <string>();
     recipients.Add("*****@*****.**");
     zAppDev.DotNet.Framework.Utilities.EMailMessage em = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
     em.Subject    = "Tome Finance User Contact";
     em.IsBodyHtml = true;
     em.Body       = "<p>New message from</p> <p>Last Name: " + (contact?.LastName ?? "") + "</p> <p>E-mail: " + (contact?.Email ?? "") + "</p> <p>Message: " + (contact?.Message ?? "") + "</p> <p>&nbsp;</p>";
     em.To         = recipients.Distinct().ToList().ToList();
     zAppDev.DotNet.Framework.Utilities.Email.SendMail(em, true);
     return(contact);
 }
Example #8
0
        public static void SendMail(EMailMessage message, bool sendAsync = false)
        {
#if NETFRAMEWORK
            var appConfiguration = ConfigurationManager.AppSettings;
#else
            var appConfiguration = ConfigurationHandler.GetAppConfiguration();
#endif
            if (string.IsNullOrEmpty(message.From))
            {
                var settings = FetchSmtpSettings();

                if (settings == null)
                {
                    throw new ArgumentNullException(nameof(message), "No valid mail settings were found in the configuration.");
                }

                message.From = settings.Smtp.From;
            }

            bool.TryParse(appConfiguration["TestMode"], out var testMode);

            if (testMode)
            {
                var originalRecipients = "";
                foreach (var i in message.To)
                {
                    originalRecipients += $"<br/>{i}";
                }

                message.To.Clear();
                message.To.Add(appConfiguration["TestModeEmail"]);
                message.Body = "<b>TEST MODE</b> Original Recipients:" + originalRecipients + "<br/><br/>" + message.Body;
            }

            var mailSeparatorCharacter = appConfiguration["EmailSeparatorCharacter"];
            mailSeparatorCharacter = !string.IsNullOrWhiteSpace(mailSeparatorCharacter) ? mailSeparatorCharacter : ",";

            SendMail(message.Subject,
                     message.Body,
                     message.To == null ? "" : string.Join(mailSeparatorCharacter, message.To.Where(a => !string.IsNullOrWhiteSpace(a))),
                     message.CC == null ? "" : string.Join(mailSeparatorCharacter, message.CC.Where(a => !string.IsNullOrWhiteSpace(a))),
                     message.Bcc == null ? "" : string.Join(mailSeparatorCharacter, message.Bcc.Where(a => !string.IsNullOrWhiteSpace(a))),
                     message.From,
                     message.Attachments?.Select(a => a.Attachment).ToList(),
                     sendAsync);
        }
 public static void CreateNotifications(DSS1_RetailerDriverStockOptimisation.BO.OrderForecast orderForecast)
 {
     using (new zAppDev.DotNet.Framework.Profiling.Profiler("Notification", zAppDev.DotNet.Framework.Profiling.AppDevSymbolType.ClassOperation, "CreateNotifications")) {
         zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "Notification", DSS1_RetailerDriverStockOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Creating Alerts for Order Forecast: " + (orderForecast?.Id ?? 0));
         System.Collections.Generic.List <DSS1_RetailerDriverStockOptimisation.BO.OrderForecastDetails> forecastOrderDetails = orderForecast?.OrderForecastDetails;
         foreach (var order in forecastOrderDetails ?? Enumerable.Empty <DSS1_RetailerDriverStockOptimisation.BO.OrderForecastDetails>())
         {
             if ((order?.Notification != null))
             {
                 zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "Notification", DSS1_RetailerDriverStockOptimisation.Hubs.EventsHub.RaiseDebugMessage, "---- Deleting " + (order?.Notification?.Id ?? 0) + "----");
                 new DSS1_RetailerDriverStockOptimisation.DAL.Repository().DeleteNotification(order?.Notification);
             }
             DSS1_RetailerDriverStockOptimisation.BO.Item currItem = order?.Item;
             var _var0 = currItem?.SKU; var _var1 = order?.RecommendedOrderDate?.Date; DSS1_RetailerDriverStockOptimisation.BO.SupplierCapacity supplierCapacity = new DSS1_RetailerDriverStockOptimisation.DAL.Repository().GetAsQueryable <DSS1_RetailerDriverStockOptimisation.BO.SupplierCapacity>((a) => a.Item.SKU == _var0 && a.DateOfStockUpdate.GetValueOrDefault(System.Data.SqlTypes.SqlDateTime.MinValue.Value).Date == _var1)?.FirstOrDefault();
             if ((supplierCapacity == null || supplierCapacity?.Stock == 0))
             {
                 zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Warning, "Notification", DSS1_RetailerDriverStockOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Don't have supplier capacity for item : " + (currItem?.SKU ?? ""));
                 continue;
             }
             int?totalStock    = (supplierCapacity?.Stock ?? 0);
             int?orderQuantity = (int)((order?.Quantity ?? 0));
             zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Warning, "Notification", DSS1_RetailerDriverStockOptimisation.Hubs.EventsHub.RaiseDebugMessage, "totalStock " + (totalStock?.ToString() ?? "") + " : orderQuantity" + (orderQuantity?.ToString() ?? ""));
             if ((totalStock < orderQuantity))
             {
                 DSS1_RetailerDriverStockOptimisation.BO.Notification notification = new DSS1_RetailerDriverStockOptimisation.BO.Notification();
                 notification.Message = "Low Stock"; notification.Item = currItem; notification.Warehouse = order?.Warehouse; notification.TotalSupplierStock = totalStock; notification.SalesForecastDate = (order?.RecommendedOrderDate ?? System.Data.SqlTypes.SqlDateTime.MinValue.Value); notification.OrderForecastQuantity = orderQuantity; notification.Diff = orderQuantity.GetValueOrDefault(0) - totalStock.GetValueOrDefault(0); notification.OrderForecastDetails = order; notification.CreatedBy = "System"; new DSS1_RetailerDriverStockOptimisation.DAL.Repository().Save <DSS1_RetailerDriverStockOptimisation.BO.Notification>(notification);
                 zAppDev.DotNet.Framework.Utilities.EMailMessage em = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
                 em.To = new List <string> {
                     "*****@*****.**"
                 }.ToList(); em.Subject = "New Alert"; em.IsBodyHtml = true; em.Body = "A new alert is created due to low stock " + "for the Item: " + (notification?.Item?.SKU ?? ""); zAppDev.DotNet.Framework.Utilities.Email.SendMail(em, true);
             }
             string recommendationThresholdPercentString = zAppDev.DotNet.Framework.Identity.Model.ApplicationSetting.GetValue("RecommendationThresholdPercent");
             if (((recommendationThresholdPercentString == null || recommendationThresholdPercentString.Trim() == "")))
             {
                 continue;
             }
             int?recommendationThresholdPercent = int.Parse(recommendationThresholdPercentString);
             if ((100 * (totalStock.GetValueOrDefault(0) - orderQuantity.GetValueOrDefault(0)) / totalStock.GetValueOrDefault(0) >= recommendationThresholdPercent))
             {
                 DSS1_RetailerDriverStockOptimisation.BO.Notification notification = new DSS1_RetailerDriverStockOptimisation.BO.Notification();
                 notification.Message = "Excess of Stock"; notification.Item = currItem; notification.Warehouse = order?.Warehouse; notification.TotalSupplierStock = totalStock; notification.SalesForecastDate = (order?.RecommendedOrderDate ?? System.Data.SqlTypes.SqlDateTime.MinValue.Value); notification.OrderForecastQuantity = orderQuantity; notification.Diff = totalStock.GetValueOrDefault(0) - orderQuantity.GetValueOrDefault(0); notification.OrderForecastDetails = order; notification.CreatedBy = "System"; new DSS1_RetailerDriverStockOptimisation.DAL.Repository().Save <DSS1_RetailerDriverStockOptimisation.BO.Notification>(notification);
             }
         }
     }
 }
        /*<ControllerActionImplementation:RequestValidation:1/>*/
        public ActionResult ExecuteRequestValidation()
        {
            ActionResult _result = null;

            @model.Investor                = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Investor>((a) => a.UserName == zAppDev.DotNet.Framework.Identity.IdentityHelper.GetCurrentUserName())?.FirstOrDefault();
            @model.Investor.Roles          = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((b) => b.Name == "PendingInvestor").ToList();
            @model.Investor.InvestorStatus = "PendingInvestor";
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Investor>(@model.Investor);
            ClientCommand(ClientCommands.SHOW_MESSAGE, "Wait for Validation from the Administrator");
            zAppDev.DotNet.Framework.Identity.Model.ApplicationUser administrator = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>((a) => a.UserName == "Administrator")?.FirstOrDefault();
            zAppDev.DotNet.Framework.Utilities.EMailMessage         email         = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            email.To = new List <string> {
                (administrator?.Email ?? "")
            }.ToList();
            email.Subject = "Account Validation";
            email.Body    = "An Investor has requested Validation";
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(email, true);
            return(_result);
        }
Example #11
0
        private EMailMessage Convert(MailMessage message, uint id, bool readAll)
        {
            var emailMessage = new EMailMessage
            {
                From    = message.From.Address,
                Subject = message.Subject
            };


            if (!readAll)
            {
                return(emailMessage);
            }

            emailMessage.Id         = (int)id;
            emailMessage.Body       = message.Body;
            emailMessage.IsBodyHtml = message.IsBodyHtml;
            emailMessage.To         = message.To.Select(x => x.Address).ToList();
            emailMessage.CC         = message.CC.Select(x => x.Address).ToList();
            emailMessage.Bcc        = message.Bcc.Select(x => x.Address).ToList();

            foreach (var attachment in message.Attachments)
            {
                if (attachment.ContentStream?.CanRead == true)
                {
                    using (var stream = new MemoryStream())
                    {
                        var attachmentBytes = new List <byte>();
                        while (true)
                        {
                            var nextByte = stream.ReadByte();
                            if (nextByte == -1)
                            {
                                break;
                            }
                            attachmentBytes.Add((byte)nextByte);
                        }
                        emailMessage.Attachments.Add(EmailAttachment.CreateFromBytes(attachment.Name, attachmentBytes.ToArray(), attachment.ContentType.MediaType));
                    }
                }
            }
            return(emailMessage);
        }
Example #12
0
        /*<ControllerActionImplementation:ValidateInvestor:1/>*/
        public ActionResult ExecuteValidateInvestor(string username)
        {
            ActionResult _result = null;

            DSS5_SupplyChainFinancialsOptimisation.BO.Investor investor = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Investor>((a) => a.UserName == username)?.FirstOrDefault();
            investor.Roles = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "Investor").ToList();
            zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "PendingInvestorsList", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Investor Roles " + (investor?.Roles?.FirstOrDefault()?.Name ?? ""));
            investor.InvestorStatus = "Investor";
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Investor>(investor);
            ClientCommand(ClientCommands.DATALIST_REFRESH, "InvestorListNoDT");
            ClientCommand(ClientCommands.SHOW_MESSAGE, "Investor " + (investor?.UserName ?? "") + " is now Validated");
            zAppDev.DotNet.Framework.Utilities.EMailMessage email = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            email.To = new List <string> {
                (investor?.Email ?? "")
            }.ToList();
            email.Subject = "Account Validation";
            email.Body    = "Your account has been validated from TomeFinance administrator";
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(email, true);
            return(_result);
        }
Example #13
0
        /*<ControllerActionImplementation:ValidateSupplier:1/>*/
        public ActionResult ExecuteValidateSupplier(string username)
        {
            ActionResult _result = null;

            DSS5_SupplyChainFinancialsOptimisation.BO.Supplier supplier = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>((a) => a.UserName == username)?.FirstOrDefault();
            supplier.Roles = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "ValidatedSupplier").ToList();
            zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "PendingValidatedSuppliersList", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Supplier Role: " + (supplier?.Roles?.FirstOrDefault()?.Name ?? ""));
            supplier.SupplierStatus = "ValidatedSupplier";
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(supplier);
            ClientCommand(ClientCommands.DATALIST_REFRESH, "SupplierListNoDT");
            ClientCommand(ClientCommands.SHOW_MESSAGE, "Supplier " + (supplier?.UserName ?? "") + " is now Validated");
            zAppDev.DotNet.Framework.Utilities.EMailMessage email = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            email.To = new List <string> {
                (supplier?.Email ?? "")
            }.ToList();
            email.Subject    = "Account Validation";
            email.IsBodyHtml = true;
            email.Body       = "Your account has been validated from the TOME FINANCE ® Administrator. " + "Please continue to see, which Investor is available for you to collaborate with, check their profiles and contact them.";
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(email, true);
            return(_result);
        }
Example #14
0
        /*<ControllerActionImplementation:SavePayment:1/>*/
        public ActionResult ExecuteSavePayment()
        {
            ActionResult _result = null;

            DSS5_SupplyChainFinancialsOptimisation.BO.Supplier supplier = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>((a) => a.UserName == zAppDev.DotNet.Framework.Identity.IdentityHelper.GetCurrentUserName())?.FirstOrDefault();
            supplier.Roles          = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "PendingRegistered").ToList();
            supplier.SupplierStatus = "PendingRegistered";
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Supplier>(supplier);
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Payment>(@model.Payment);
            @model.Title = "";
            ClientCommand(ClientCommands.SHOW_MESSAGE, "Thank you for buying registration. Please wait for Administrator's approval.", MessageType.Success, (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                                                                                                                                                             System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                          "/HomePage/Render");
            zAppDev.DotNet.Framework.Identity.Model.ApplicationUser administrator = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().GetAsQueryable <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>((a) => a.UserName == "Administrator")?.FirstOrDefault();
            zAppDev.DotNet.Framework.Utilities.EMailMessage         email         = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            email.To = new List <string> {
                (administrator?.Email ?? "")
            }.ToList();
            email.Subject = "PAYMENTS";
            email.Body    = "A payment has been placed";
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(email, true);
            return(_result);
        }
Example #15
0
        /*<ControllerActionImplementation:ResetPasswordRequest:1/>*/
        public ActionResult ExecuteResetPasswordRequest()
        {
            ActionResult _result = null;

            zAppDev.DotNet.Framework.Identity.Model.ApplicationUser user = new DSS3_LogisticsPoolingForUrbanDistribution.DAL.Repository().GetById <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>(@model.txtUsername);
            if (user == null)
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_NotFound").ToString(), MessageType.Error);
                return(null);
            }
            if (((user?.Email ?? "") == null || (user?.Email ?? "").Trim() == "") || ((((user?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((user?.Email ?? "")))) == false))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_NoMail").ToString(), MessageType.Error);
                return(null);
            }
            string key      = zAppDev.DotNet.Framework.Identity.IdentityHelper.GetUserManager().GeneratePasswordResetTokenAsync(user.UserName).Result;
            string resetUrl = (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                               System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                              "/ForgotPassword/ResetPassword" + "?username="******"")) + "&key=" + System.Web.HttpUtility.UrlEncode(System.Web.HttpUtility.UrlEncode(key));

            zAppDev.DotNet.Framework.Utilities.EMailMessage mail       = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            System.Collections.Generic.List <string>        recipients = new System.Collections.Generic.List <string>();
            recipients.Add((user?.Email ?? ""));
            mail.To         = recipients.ToList();
            mail.IsBodyHtml = true;
            mail.Subject    = BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_ResetPasswordLink").ToString() + " " + "DSS3_LogisticsPoolingForUrbanDistribution";

            mail.Body = "<h3>" + BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_ClickToReset").ToString() + "</h3>" + "<a href='" + resetUrl + "'>" + BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_ResetPassword").ToString() + "</a>" + "<h3>" + BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_CopyPaste").ToString() + "</h3><p>" + resetUrl + "</p>";

            zAppDev.DotNet.Framework.Utilities.Email.SendMail(mail);
            string signInUrl = (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                                System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                               "/SignInPage/Load";

            ClientCommand(ClientCommands.SHOW_MESSAGE, BaseViewPage <string> .GetResourceValue("ForgotPassword", "RES_CUSTOM_MailSoon").ToString(), MessageType.Success, signInUrl);
            return(_result);
        }
Example #16
0
        /*<ControllerActionImplementation:SignUp:1/>*/
        public ActionResult ExecuteSignUp()
        {
            ActionResult _result = null;

            if ((@model.PasswordTextBox != @model.RetypePass))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Passwords do not match", MessageType.Warning);
                return(null);
            }
            zAppDev.DotNet.Framework.Identity.Model.ApplicationUser userToRegister = new zAppDev.DotNet.Framework.Identity.Model.ApplicationUser();
            System.Collections.Generic.List <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole> roleToAdd = new System.Collections.Generic.List <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>();
            if ((@model.ChoosenRole == null))
            {
                zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Warning, "SignUp", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, "User did not select a Role.");
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Please choose a role you wish to sign up as.", MessageType.Warning);
                return(null);
            }
            if (@model.ChoosenRole == "Supplier")
            {
                DSS5_SupplyChainFinancialsOptimisation.BO.Supplier newSupplier = new DSS5_SupplyChainFinancialsOptimisation.BO.Supplier();
                newSupplier.UserName = @model.UserName;
                newSupplier.Email    = @model.Email;
                if ((((((newSupplier?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((newSupplier?.Email ?? "")))) == false)))
                {
                    ClientCommand(ClientCommands.SHOW_MESSAGE, "Please enter a valid e-mail address", MessageType.Warning);
                    return(null);
                }
                newSupplier.Company = @model.CompanyName;
                userToRegister      = newSupplier;
                roleToAdd           = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "GuestSupplier").ToList();
            }
            if (@model.ChoosenRole == "Buyer")
            {
                DSS5_SupplyChainFinancialsOptimisation.BO.Buyer newBuyer = new DSS5_SupplyChainFinancialsOptimisation.BO.Buyer();
                newBuyer.UserName = @model.UserName;
                newBuyer.Email    = @model.Email;
                if ((((((newBuyer?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((newBuyer?.Email ?? "")))) == false)))
                {
                    ClientCommand(ClientCommands.SHOW_MESSAGE, "Please enter a valid e-mail address", MessageType.Warning);
                    return(null);
                }
                newBuyer.Company = @model.CompanyName;
                userToRegister   = newBuyer;
                roleToAdd        = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "Buyer").ToList();
            }
            if (@model.ChoosenRole == "Investor")
            {
                DSS5_SupplyChainFinancialsOptimisation.BO.Investor newInvestor = new DSS5_SupplyChainFinancialsOptimisation.BO.Investor();
                newInvestor.UserName = @model.UserName;
                newInvestor.Email    = @model.Email;
                if ((((((newInvestor?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((newInvestor?.Email ?? "")))) == false)))
                {
                    ClientCommand(ClientCommands.SHOW_MESSAGE, "Please enter a valid e-mail address", MessageType.Warning);
                    return(null);
                }
                newInvestor.Company        = @model.CompanyName;
                newInvestor.InvestorStatus = "GuestInvestor";
                userToRegister             = newInvestor;
                roleToAdd = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "GuestInvestor").ToList();
            }
            if ((@model.ChoosenRole == "Intermediary"))
            {
                DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryUser newIntermediaryUser = new DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryUser();
                newIntermediaryUser.UserName = @model.UserName;
                newIntermediaryUser.Email    = @model.Email;
                if ((((((newIntermediaryUser?.Email ?? "") == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test((newIntermediaryUser?.Email ?? "")))) == false)))
                {
                    ClientCommand(ClientCommands.SHOW_MESSAGE, "Please enter a valid e-mail address", MessageType.Warning);
                    return(null);
                }
                newIntermediaryUser.Intermediary = @model.Intermediary;
                userToRegister = newIntermediaryUser;
                roleToAdd      = new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationRole>((a) => a.Name == "Intermediary").ToList();
            }
            if ((new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Get <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>((a) => a.UserName == @model.UserName)).Count() > 0)
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Please choose a different Username", MessageType.Warning);
                return(null);
            }
            string error = zAppDev.DotNet.Framework.Identity.IdentityHelper.CreateUser(userToRegister, @model.PasswordTextBox);

            if ((((error == null || error == "")) == false))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, error, MessageType.Warning);
                return(null);
            }
            string code = zAppDev.DotNet.Framework.Identity.IdentityHelper.GetUserManager().GenerateEmailConfirmationTokenAsync(userToRegister.UserName).Result;
            string link = (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                           System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                          "/EmailConfirmation/Confirm" + "?email=" + System.Web.HttpUtility.UrlEncode((userToRegister?.Email ?? "")) + "&code=" + System.Web.HttpUtility.UrlEncode(code);

            zAppDev.DotNet.Framework.Utilities.EMailMessage emailMessage = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            emailMessage.To = new List <string> {
                (userToRegister?.Email ?? "")
            }.ToList();
            emailMessage.Subject    = "Account Activation";
            emailMessage.Body       = "Please click <a href='" + link + "'>here</a> to activate your account";
            emailMessage.IsBodyHtml = true;
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(emailMessage, true);
            userToRegister.Roles = roleToAdd.ToList();
            new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <zAppDev.DotNet.Framework.Identity.Model.ApplicationUser>(userToRegister);
            ClientCommand(ClientCommands.SHOW_MESSAGE, "Please activate your account using the link sent to your email.", MessageType.Success, (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                                                                                                                                                System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                          "/HomePage/Render");
            return(_result);
        }
        /*<ControllerActionImplementation:Save:1/>*/
        public ActionResult ExecuteSave()
        {
            ActionResult _result = null;

            DSS5_SupplyChainFinancialsOptimisation.BO.Intermediary newIntermediary = new DSS5_SupplyChainFinancialsOptimisation.BO.Intermediary();
            newIntermediary.Company = @model.Company;
            if (((((@model.EMail == null ? false : CSharpVerbalExpressions.VerbalExpressions.DefaultExpression.Add(CSharpVerbalExpressions.CommonRegex.Email).Test(@model.EMail))) == false)))
            {
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Please give a valid e-mail address.", MessageType.Error);
                return(null);
            }
            newIntermediary.EMail = @model.EMail;
            switch (@model.ChosenIntermediaryType)
            {
            case "ThirdPartyLogisticsProvider":
            {
                newIntermediary.IntermediaryType = DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryType.ThirdPartyLogisticsProviders;
                break;
            }

            case "TransportationCompany":
            {
                newIntermediary.IntermediaryType = DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryType.TransportationCompanies;
                break;
            }

            case "CustomsAgent":
            {
                newIntermediary.IntermediaryType = DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryType.CustomsAgents;
                break;
            }

            case "ShippingAgent":
            {
                newIntermediary.IntermediaryType = DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryType.ShippingAgent;
                break;
            }

            case "Other":
            {
                newIntermediary.IntermediaryType = DSS5_SupplyChainFinancialsOptimisation.BO.IntermediaryType.Other;
                break;
            }
            }
            if ((@model.ChosenIntermediaryType == "Other"))
            {
                newIntermediary.OtherDescription = @model.Description;
            }
            try
            {
                new DSS5_SupplyChainFinancialsOptimisation.DAL.Repository().Save <DSS5_SupplyChainFinancialsOptimisation.BO.Intermediary>(newIntermediary);
            }
            catch (System.Exception x)
            {
                zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Error, "SlideIntermidiary", DSS5_SupplyChainFinancialsOptimisation.Hubs.EventsHub.RaiseDebugMessage, x);
                ClientCommand(ClientCommands.SHOW_MESSAGE, "Something went wrong.", MessageType.Error);
            }
            Guid?  verificationGuid = Guid.NewGuid();
            string code             = (verificationGuid?.ToString() ?? "");

            newIntermediary.GUID = code;
            string link = (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"]) ?
                           System.Configuration.ConfigurationManager.AppSettings["ServerExternalPath"] : zAppDev.DotNet.Framework.Utilities.Web.GetApplicationPathUri(false)) +
                          "/SignUp/IntermediaryRender" + "?id=" + System.Web.HttpUtility.UrlEncode(code);

            zAppDev.DotNet.Framework.Utilities.EMailMessage emailMessage = new zAppDev.DotNet.Framework.Utilities.EMailMessage();
            emailMessage.To = new List <string> {
                @model.EMail
            }.ToList();
            emailMessage.Subject    = "TOME Finance Invitation";
            emailMessage.Body       = "You have been added to TOME Finance Platform as intermediary. Click <a href='" + link + "'>here</a> to sign up.";
            emailMessage.IsBodyHtml = true;
            zAppDev.DotNet.Framework.Utilities.Email.SendMail(emailMessage, true);
            _result = CloseForm();
            return(_result);
        }